Rules for 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".