Rules for document-type shells

This topic collects the rules that concern DITA document-type shells.

  • While the DITA specification only defines coding requirements for DTD, RELAX NG, and XML Schema documents, conforming DITA documents MAY use other document-type constraint languages, such as Schematron.

  • With two exceptions, a document-type shell MUST NOT directly define element or attribute types; it only includes and configures vocabulary and constraint modules. The exceptions to this rule are the following:

    • The ditabase document-type shell directly defines the <dita> element.
    • RNG- and XML Schema-based shells directly specify values for the @domains attribute; these values reflect the details of the domains and structural types that are integrated by the document-type shell.
  • Document type shells that are not provided by OASIS MUST have a unique public identifier, if public identifiers are used.
  • Document type shells that are not provided by OASIS MUST NOT indicate OASIS as the owner; the public identifier or URN for such document-type shells SHOULD reflect the owner or creator of the document-type shell.

    For example, if example.com creates a copy of the document type shell for topic, an appropriate public identifier would be "-//example.com//DTD DITA Topic//EN", where "example.com" is the owner identifier component of the public identifier. An appropriate URN would be "urn:example.com:names:dita:rng:topic.rng".