Conformance

An implementation is a conforming implementation of DITA if the implementation meets the conditions that are described in Section 10.1. A document is a conforming DITA document if the document meets the conditions in that are described in Section 10.2.

Conformance to the DITA specification allows documents and document types that are used with different processors to produce the same or similar results with little or no reimplementation or modification. Conformance also allows DITA specializations to work with any conforming DITA application, with at least the same level of support available to unspecialized documents.

10.1 Conformance of DITA implementations

The DITA specification defines several core features, as summarized in the following list. Any implementation that supports a feature MUST conform to all rules laid out in the section that describes the feature.

  1. Specialization-based processing, as described in The class attribute rules and syntax.
  2. Resolving indirect key-based references using the @keyref attribute, as defined in Processing key references, Processing key references for navigation links and images, Processing key references on topicref elements, and Processing key references to generate text or link text.
  3. Referencing content for reuse within a document, as described in Direct URI-based content reuse, Indirect key-based content reuse, Reusing a range of elements, Processing conrefs, Processing attributes when resolving conrefs, and Processing xrefs and conrefs within a conref
  4. Referencing a location to push reused content into another location, as described in Pushing reusable content to a new location.
  5. Resolving conditional processing based on DITAVAL documents, as described in Expectations for conditional processing, Conditional processing attribute values, Conditional processing attribute values with groups, Filtering based on metadata attributes, and Flagging based on metadata attributes.
  6. Resolving branch filtering markup, as described in Overview of branch filtering, How filtering rules interact, Branch filtering: Single referenced DITAVAL document for a branch, Branch filtering: Multiple referenced DITAVAL documents for a branch, Branch filtering: Impact on resource and key names, and Branch filtering: Implications of processing order.
  7. Resolving @chunk attributes, as described in About the chunk attribute, Processing chunk="combine", and Processing chunk="split".

In addition, certain DITA elements have normative rules associated regarding how to render or process those elements.

  1. <desc>, as described in desc
  2. <draft-comment>, as described in draft-comment
  3. <image>, as described in image
  4. <linklist>, as described in linklist
  5. <pre>, as described in pre
  6. <q>, as described in q
  7. <related-links>, as described in related-links
  8. <relcolspec>, as described in relcolspec
  9. <reltable>, as described in reltable
  10. <shortdesc>, as described in shortdesc
  11. <title>, as described in title
  12. <titlealt>, as described in titlealt
  13. <topichead>, as described in topichead

Conforming DITA implementations SHOULD include a conformance statement that gives the version of the DITA specification that is supported, indicate if all features from the list above are supported, and indicate that all normative rendering rules are supported.

If only a subset of features is supported, implementations SHOULD indicate which features are (or are not) supported. If an implementation supports rendering DITA elements but does not render all elements as described above, that application SHOULD indicate which elements are (or are not) supported.

Not all DITA features are relevant for all implementations. For example, a DITA editor that does not render content references in context does not need to conform to rules regarding the @conref attribute. However, any application that renders content references MUST conform to the rules described in the section Content reference (conref).

Implementations that support only a subset of DITA features are considered conforming as long as all supported features follow the requirements that are given in the DITA specification. An implementation that does not support a particular feature MUST be prepared to interoperate with other implementations that do support the feature.

10.2 Conformance of DITA documents

A document conforms with the DITA standard if it meets all of the following conditions.

  1. A DITA document that refers to document type shells distributed by OASIS MUST be valid according to both the grammar files and any assertions provided in the language reference.
  2. If a DITA document's custom document type shell includes constraints, those constraints MUST also conform to the rules laid out in Constraint rules
  3. If a DITA document's custom document type shell includes expansion modules, those moduless MUST also conform to the rules laid out in Expansion module rules
  4. If a DITA document uses specialized elements, those elements MUST also conform to the rules laid out in Specialization rules for element types and The class attribute rules and syntax.
  5. If a DITA document uses specialized attributes, those attributes MUST also conform to the rules laid out in Specialization rules for attributes and The specializations attribute rules and syntax.