Aggregated RFC-2119 statements

This section is non-normative.

This appendix contains all the normative statements from the DITA 2.0 specification. They are aggregated here for convenience in this non-normative appendix.

Aggregated error statements

DITAERR-0010
Processors MAY choose to treat this as an error, issue a warning, or simply assign new roles to the problematic elements.
DITAERR-0020
The same functions can be accomplished with <topicref>, but the elements are designed to make authoring easier and less error-prone.
DITAERR-0030
If the value of the @href attribute is not a valid URI reference, an implementation MAY generate an error message.
DITAERR-0040
It MAY also recover from this error condition by attempting to convert the value to a valid URI reference.
DITAERR-0050
Applications MAY recover from this error condition by using the correct value detected.
DITAERR-0060
If it is an error for the element to be empty, an implementation MAY give an error message; it also MAY recover from this error condition by leaving the key reference element empty.
DITAERR-0070
It is an error for two source topics to replace the same element.
DITAERR-0080
The conref push function does not provide the ability to push a range of elements, so it is an error to specify the @conrefend attribute together with the @conaction attribute.
DITAERR-0090
When encountering the following error conditions, an implementation can optionally issue an error message.
DITAERR-0100
It is an error if <ditavalref>-driven branch cloning results in multiple copies of a topic that have the same resolved name.
DITAERR-0110
Processors SHOULD report an error in such cases.
DITAERR-0120
A processor MAY consider this form of equivalence when determining if two references to the same resource should be reported as an error.
DITAERR-0130
This saves considerable time and effort, reduces error, enforces consistency, and makes interoperability possible.
DITAERR-0140
It is an error if the root element matches a specified source but its @class attribute does not contain the target.
DITAERR-0150
It is an error if the last value in the @class attribute matches a specified source but the previous values do not include the target.
DITAERR-0160
This is an error condition, since it means the document has been only partially generalized, or that the document has been generalized and then edited using a specialized document type.
DITAERR-0170
Processors SHOULD treat the presence of more than one <title> element in a <example> element as an error.
DITAERR-0180
Processors SHOULD treat the presence of more than one <title> element in a <section> element as an error.
DITAERR-0190
The spec says that if your scheme tells you "a" and "b" are the only valid values in an attribute, then specifying "x" and "y" are both in error, and processors / applications can treat that as an error.
DITAERR-0200
If you set up that scheme but your grammar files only allow "x" and "y", then you've set up a scheme that means every usage of that element is automatically an error condition.
DITAERR-0210
For situations where resource names are relevant, it is an error condition for multiple <ditavalref> elements to result in conflicting resource names for different content.
DITAERR-0220
It is an error if the value of this attribute is not an unsigned integer.
DITAERR-0230
In this case, the implementation might give an error message and might recover by ignoring this attribute.
DITAERR-0240
When a map that contains a <topicgroup> element with a navigation title is used to generate publication output, processors MUST ignore the navigation title and MAY issue an error message.
DITAERR-0250
It is an error if there is more than one <sort-as> child for a given <indexterm> element.
DITAERR-0260
The following markup in a DITAVAL document is an error condition:
  • More than one <prop> element with no @att attribute
  • More than one <prop> element with the same @att attribute and no value
  • More than one <prop> element with the same @att attribute and same @value
Processors MAY provide an error or warning message for these error conditions.
DITAERR-0270
It is an error to include more than one <revprop> element with the same @val attribute.
DITAERR-0280
Recovery from this error is implementation dependent.
DITAERR-0290
In such cases processors MAY provide an error or warning message.
DITAERR-0300
It is an error to use parse="xml" anywhere other than within <foreign> or a specialization thereof.
DITAERR-0310
It is an error to use parse="xml" anywhere other than within <foreign> or a specialization thereof.
DITAERR-0320
If a specialized element defined this attribute and also uses the universal attribute group, that extra definition is now redundant and will result in a parsing error against the DITA 2.x grammar files.
DITAERR-0330
If content referencing is resolved after filtering, the referenced element is filtered out and the content reference cannot be resolved, typically generating an error.
DITAERR-0340
The difference in these two cases is that in the first case the content reference cannot be resolved, resulting in a processing error and a potentially nonsensical element if the referencing element has required subelements (for example, a content reference from a topic to another topic, where the referencing topic must have a title subelement), but in the second case the element is filtered completely out.

Implementation dependent statements

DITAIMP-0010
The result is implementation specific.
DITAIMP-0020
Recovery from validation errors is implementation specific.
DITAIMP-0030
Implementers MAY define their own custom, implementation-specific tokens for the @cascade attribute.
DITAIMP-0040
To avoid name conflicts between implementations or with future additions to the standard, implementation-specific tokens SHOULD consist of a prefix that gives the name or an abbreviation for the implementation followed by a colon followed by the token or method name.
DITAIMP-0050
The predefined values for the @cascade attribute MUST precede any implementation-specific tokens, for example, cascade="merge appToken:audience".
DITAIMP-0060
These tokens are implementation dependent and might not be supported by other applications.
DITAIMP-0070
The details of sorting and grouping are implementation specific.
DITAIMP-0080
However, the details of footnote processing and formatting are implementation dependent.
DITAIMP-0090
The available height is implementation dependent, but if feasible, it is suggested to be the page or table cell height or some other reasonable value.
DITAIMP-0100
The available height is implementation dependent, but if feasible, it is suggested to be the page (or table cell) height or some other reasonable value.
DITAIMP-0110
Recovery from this error is implementation dependent.
DITAIMP-0120
Processors can also define custom, implementation-specific tokens for this attribute.
DITAIMP-0130
Processors can also define custom, implementation-specific tokens for this attribute.
DITAIMP-0140
The necessity and uses of @encoding for non-standard values of @parse are implementation-dependent.
DITAIMP-0150
Processors can also define custom, implementation-specific tokens for this attribute.
DITAIMP-0160
Processors can also define custom, implementation-specific tokens for this attribute.
DITAIMP-0170
The necessity and uses of @encoding for non-standard values of @parse are implementation-dependent.

Aggregated RFC-2119 statements

DITAREQ-0010
A DITA document MUST have as its root element one of the following elements:
  • <map> or a specialization of the <map> element
  • <topic> or a specialization of the <topic> element
  • <dita>, which cannot be specialized, but which allows documents with multiple sibling topics
    Draft comment: robander 26 may 2021
    picky comment: a <dita> root element (singular) only allows ONE document with sibling topics. Also, not to over-complicate, but an ordinary topic also allows sibling topics (as children), so what really distinguishes this is that it allows "root" siblings, but I don't think we have a word for that.

    Draft comment: robander
    TO RESOLVE 11 May 2026: recommend replacing with "...which cannot be specialized, but which allows for a DITA document with multiple root-level sibling topics"

DITAREQ-0020
Files that contain DITA content SHOULD use the following file extensions:
DITA topics
*.dita (preferred)
*.xml
DITA maps
*.ditamap
Conditional processing profiles
*.ditaval
DITAREQ-0030
If the root element of a map or a top-level topic has no value for the @xml:lang attribute, a processor SHOULD assume a default value.
DITAREQ-0040
When a @conref or @conkeyref attribute is used to include content from one element into another, the processor MUST use the effective value of the @xml:lang attribute from the referenced element.
DITAREQ-0050
Processors SHOULD render each element in a way that is appropriate for its language as identified by the @xml:lang attribute.
DITAREQ-0060
DITA processors SHOULD fully support the Unicode Bidirectional Algorithm.
DITAREQ-0070
Processors MAY choose to treat this as an error, issue a warning, or simply assign new roles to the problematic elements.
DITAREQ-0080
Processors also MAY provide parameters by which subject scheme maps are referenced.
DITAREQ-0090
Authoring tools SHOULD use these lists of controlled values to provide lists from which authors can select values when they specify attribute values.
DITAREQ-0100
Authoring tools MAY give an organization a list of readable labels, a hierarchy of values to simplify selection, and a shared definition of the value.
DITAREQ-0110
Authoring tools MAY support accessing and displaying the content of the subject definition resource in order to provide users with a detailed explanation of the subject.
DITAREQ-0120
If an enumeration is bound, processors SHOULD validate attribute values against the controlled values that are defined in the subject scheme map.
DITAREQ-0130
Processors SHOULD be aware of the hierarchies of attribute values that are defined in subject scheme maps for purposes of filtering, flagging, or other metadata-based categorization.
DITAREQ-0140
Processors SHOULD validate that the values of attributes that are bound to controlled values contain only valid values from those sets.
DITAREQ-0150
Processors SHOULD check that all values listed for an attribute in a DITAVAL file are bound to the attribute by the subject scheme before filtering or flagging.
DITAREQ-0160
If a processor encounters values that are not included in the subject scheme, it SHOULD issue a warning.
DITAREQ-0170
Processors SHOULD apply the following algorithm when they apply filtering and flagging rules to attribute values that are defined as a hierarchy of controlled values and bound to an enumeration:
  1. If an attribute specifies a value in the taxonomy, and a DITAVAL or other categorization tool is configured with that value, the rule matches.
  2. Otherwise, if the parent value in the taxonomy has a rule, that matches.
  3. Otherwise, continue up the chain in the taxonomy until a matching rule is found.
DITAREQ-0180
Within a map document, the values of the @id attributes for all elements SHOULD be unique.
DITAREQ-0190
When two elements within a map have the same value for the @id attribute, processors MUST resolve references to that ID to the first element with the given ID value in document order.
DITAREQ-0200
If the actual format of the referenced content differs from the effective value of the @format attribute, and a processor is capable of identifying such cases, it MAY recover gracefully and treat the content as its actual format.
DITAREQ-0210
The processor MAY also issue a message.
DITAREQ-0220
The value of the @href attribute MUST be a valid URI reference [RFC 3986].
DITAREQ-0230
If the value of the @href attribute is not a valid URI reference, an implementation MAY generate an error message.
DITAREQ-0240
It MAY also recover from this error condition by attempting to convert the value to a valid URI reference.
DITAREQ-0250
Processors MUST always consider relative URIs as local by default.
DITAREQ-0260
Applications MAY issue a warning when the specified or inherited @type attribute value does not match the target or a specialization ancestor of the target.
DITAREQ-0270
Applications MAY recover from this error condition by using the correct value detected.
DITAREQ-0280
DITA processors MAY ignore queries on URI references to DITA resources.
DITAREQ-0290
If both @keyref and @href attributes are specified on an element, the @href value MUST be used as a fallback address when the key name is undefined.
DITAREQ-0300
If both @conkeyref and @conref attributes are specified on an element, the @conref value MUST be used as a fallback address when the key name is undefined.
DITAREQ-0310
Processors SHOULD perform conditional processing before determining the effective key definitions.
DITAREQ-0320
If a topic that contains key references is reused in multiple key scopes within a given root map such that its references resolve differently in each use context, processors MUST produce multiple copies of the source topic in resolved output for each distinct set of effective key definitions that are referenced by the topic.
DITAREQ-0330
If it is an error for the element to be empty, an implementation MAY give an error message; it also MAY recover from this error condition by leaving the key reference element empty.
DITAREQ-0340
Processors MAY impose reasonable limits on the number of intermediate key references that they will resolve.
DITAREQ-0350
Processors SHOULD support at least three levels of key references.
DITAREQ-0360
Processors MUST resolve variable text that is defined using keys by using the following sequence:
  1. Effective text content is taken from the <keytext> element.
  2. Effective text content is taken from the <titlealt> element with @title-role set to linking.
  3. Effective text content is taken from the <titlealt> element with @title-role set to navigation.
  4. Effective text content is taken from the <titlealt> element with @title-role set to a processor-recognized value.
  5. Effective text content is taken from the title of the referenced document, if available.
  6. Effective text content is determined by the processor.
DITAREQ-0370
When the effective content for a key reference element results in invalid elements, those elements SHOULD be generalized to produce a valid result.
DITAREQ-0380
Processors that support index ranges SHOULD do the following:
  • Match @start and @end attributes by a character-by-character comparison with all characters significant and no case folding occurring.
  • Ignore @start and @end attributes if they occur on an <indexterm> element that has child <indexterm> elements.
  • Handle an end-of-range <indexterm> element that is nested within one or more <indexterm> elements. The end-of-range <indexterm> element should have no content of its own; if it contains content, that content is ignored.
    Draft comment: Kristen J Eberlein

    Can we improve the phrasing of the two above list items? Robert and I think that they were authored in order to communicate that if you want a range to be specified for a secondary entry, it has to be done like this:

    <indexterm>Potato
      <indexterm start="yellow">Yellow potatoes</indexterm>
    </indexterm>
    
    <indexterm>Potato
      <indexterm end="yellow"/>
    <indexterm>

    Draft comment: robander
    TO RESOLVE 12 May 2026: Try to come up with a simple wording tweak to describe it based on our understanding from long ago

  • When index ranges with the same identifier overlap, the effective range is determined by matching the earliest start-of-range element from the set of overlapping ranges with the latest end-of-range element from the set of overlapping ranges.
  • An unmatched start-of-range element is treated as a simple <indexterm>element.
  • Ignore unmatched end-of-range <indexterm> elements.
DITAREQ-0390
The start and end elements of a range MUST be of the same type as the referencing element or generalizable to the referencing element.
DITAREQ-0400
The start and end elements in a range MUST share the same parent, and the start element MUST precede the end element in document order.
DITAREQ-0410
The parent of the referencing element MUST be the same type as the parent of the referenced range or generalizable to the parent of the referencing element.
DITAREQ-0420
Applications MAY warn users if more than one element attempts to replace a single target.
DITAREQ-0430
A conref processor SHOULD NOT permit resolution of a reuse relationship that could be rendered invalid under the rules of either the reused or reusing content.
DITAREQ-0440
When resolving @conkeyref attributes, processors SHOULD issue a warning when a @conkeyref reference cannot be resolved and there is no @conref attribute to use as a fallback.
DITAREQ-0450
Processors MAY issue a warning when a @conkeyref cannot be resolved to an element and a specified @conref is used as a fallback.
DITAREQ-0460
If the final resolved element (after the complete resolution of any conref chain) has an attribute with the "-dita-use-conref-target" value, that element MUST be treated as equivalent to having that attribute unspecified.
DITAREQ-0470
If the referenced element has a content referencing attribute specified, the above rules MUST be applied recursively with the resolved element from one referencing/referenced combination becoming one of the two elements participating in the next referencing/referenced combination.
DITAREQ-0480
When the address is a direct URI reference of any form other than a same-topic fragment identifier, processors MUST resolve it relative to the source document that contains the original URI reference.
DITAREQ-0490
When the address is a same-topic fragment identifier, processors MUST resolve it relative to the location of the content reference (referencing context).
DITAREQ-0500
When the address is a key reference, processors MUST resolve it relative to the location of the content reference (referencing context).
DITAREQ-0510
Processors SHOULD be able to perform filtering and flagging using the following attributes: @props, @audience, @deliveryTarget, @platform, @product, and @otherprops.
DITAREQ-0520
The @props attribute can be specialized to create new attributes, and processors SHOULD be able to perform conditional processing on specializations of @props.
DITAREQ-0530
When determining the effective value of an attribute, processors MUST evaluate each applicable attribute for each map element in the following order:
DITAREQ-0540
For multi-value attributes, cascading and merging behavior MUST follow the rules of @cascade.
DITAREQ-0550
Values established only by processing-supplied defaults in step 6 MUST NOT cascade to referenced maps.
DITAREQ-0560
If no value is set for the @cascade attribute and no value cascades from a containing element, processors SHOULD assume a default of merge.
DITAREQ-0570
Implementers MAY define their own custom, implementation-specific tokens for the @cascade attribute.
DITAREQ-0580
To avoid name conflicts between implementations or with future additions to the standard, implementation-specific tokens SHOULD consist of a prefix that gives the name or an abbreviation for the implementation followed by a colon followed by the token or method name.
DITAREQ-0590
The predefined values for the @cascade attribute MUST precede any implementation-specific tokens, for example, cascade="merge appToken:audience".
DITAREQ-0600
When the source document organization has no effect on published output, such as when producing a single PDF or EPUB, processors MAY ignore the @chunk attribute.
DITAREQ-0610
When the @chunk attribute results in more or fewer documents based on the combine or split tokens, the hierarchy of topics within the resulting map and topic organization SHOULD match the hierarchy in the original topics and maps.
DITAREQ-0620
When the @chunk attribute results in more or fewer documents, processors MAY create their own naming schemes for those reorganized documents.
DITAREQ-0630
Processors MAY apply equivalent processing to non-DITA documents.
DITAREQ-0640
In addition to filtering, applications MAY support flagging at the branch level based on the referenced DITAVAL documents.
DITAREQ-0650
Processors SHOULD report an error in such cases.
DITAREQ-0660
Processors MAY recover by using an alternate naming scheme for the conflicting topics.
DITAREQ-0670
A processor MAY consider this form of equivalence when determining if two references to the same resource should be reported as an error.
DITAREQ-0680
The full effects of the branch filtering process MUST be calculated by processors before they construct the effective map and key scope structure.
DITAREQ-0690
Processors that perform sorting SHOULD explicitly document how the base sort phrase is determined for a given element.
DITAREQ-0700
When a <sort-as> element is specified, processors that sort the containing element MUST construct the effective sort phrase by prepending the content of the <sort-as> element to the base sort phrase.
DITAREQ-0710
While the DITA specification only defines coding requirements for DTD and RELAX NG, conforming DITA documents MAY use other document-type constraint languages, such as XSD or Schematron.
DITAREQ-0720
With two exceptions, a document-type shell MUST NOT directly define element or attribute types; it only includes vocabulary and element-configuration modules (constraint and expansion).
DITAREQ-0730
Document-type shells that are not provided by OASIS MUST have a unique public identifier, if public identifiers are used.
DITAREQ-0740
Document-type shells that are not provided by OASIS MUST NOT indicate OASIS as the owner.
DITAREQ-0750
The public identifier or URN for such document-type shells SHOULD reflect the owner or creator of the document-type shell.
DITAREQ-0760
Structural modules based on topic MAY define additional topic types that are then allowed to occur as subordinate topics within the top-level topic.
DITAREQ-0770
Domain elements intended for use in topics MUST ultimately be specialized from elements that are defined in the topic module.
DITAREQ-0780
Domain elements intended for use in maps MUST ultimately be specialized from elements defined by or used in the map module.
DITAREQ-0790
Every DITA element (except the <dita> element that is used as the root of a ditabase document) MUST declare a @class attribute.
DITAREQ-0800
When the @class attribute is declared in an XML grammar, it MUST be declared with a default value.
DITAREQ-0810
In order to support generalization round-tripping (generalizing specialized content into a generic form and then returning it to the specialized form) the default value MUST NOT be fixed.
DITAREQ-0820
A vocabulary module MUST NOT change the @class attribute for elements that it does not specialize, but simply reuses by reference from more generic levels.
DITAREQ-0830
Authors SHOULD NOT modify the @class attribute.
DITAREQ-0840
Each specialization of the @props and @base attributes MUST provide a token for use by the @specializations attribute.
DITAREQ-0850
When generalizing for round-tripping, the @class attribute and @specializations attribute SHOULD retain the original specialized values in the generalized instance document.
DITAREQ-0860
A generalization processor SHOULD be able to handle cases where it is given:
  • Only source modules for generalization (in which case the designated source types are generalized to topic or map)
  • Only target modules for generalization (in which case all descendants of each target are generalized to that target)
  • Both (in which case only the specified descendants of each target are generalized to that target)
DITAREQ-0870
When renaming elements during round-trip generalization, the generalization processor SHOULD preserve the values of all attributes.
DITAREQ-0880
When renaming elements during one-way or migration generalization, the process SHOULD preserve the values of all attributes except the @class attribute, which is supplied by the target document type.
DITAREQ-0890
Specialization-aware processors MUST process both the specialized and generalized forms of an attribute as equivalent in their values.
DITAREQ-0900
A single element MUST NOT contain both generalized and specialized values for the same attribute.
DITAREQ-0910
When possible, generalizing processes SHOULD detect invalid generalization target combinations and report them as errors.
DITAREQ-0920
Processors SHOULD render the content of the <shortdesc> element as the initial paragraph of the topic.
DITAREQ-0930
When processors generate link previews that are based on the map context, they SHOULD use the content of the <shortdesc> that is located in the map rather than the <shortdesc> that is located in the DITA topic.
DITAREQ-0940
However, when processors render the topic itself, they SHOULD use the content of the <shortdesc> element that is located in the DITA topic.
DITAREQ-0950
Processors SHOULD support the following tokens for the @title-role attribute:
linking
Specifies that the content of the <titlealt> element contains the title for use in references to the resources generated from DITA map structures, such as hierarchical parent/child/sibling links and links generated from relationship tables. In addition, this is the fallback alternative title for navigation and search roles. Custom title roles meant for use in link generation should also use this as a fallback.
navigation
Specifies that the content of the <titlealt> element contains the title for use in tables of content and other navigation aids. In some cases, when processing a <topicref> that has no @href, this is also used as the title of the generated topic, if applicable. If not present, this role is fulfilled by the linking role.
search
Specifies that the content of the <titlealt> element contains a title for use in search results for systems that support content search. If not present, this role is fulfilled by the linking role.
subtitle
Specifies that the content of the <titlealt> element contains a subtitle for the document.
hint
Specifies that the content of the <titlealt> element contains a hint about the referenced resource. This is intended for the benefit of map authors; it does not have an effect on processing or output.
-dita-use-conref-target
See ../../../archSpec/base/ditauseconreftarget.html for more information.
DITAREQ-0960
Alternative titles with the @title-role attribute set to tokens that are not recognized by the processor SHOULD be ignored and not appear in output.
DITAREQ-0970
When used in conjunction with <fig> or <table> elements, processors SHOULD consider the content of <desc> elements to be part of the content flow.
DITAREQ-0980
By default, processors SHOULD NOT render <draft-comment> elements.
DITAREQ-0990
Processors SHOULD provide a mechanism that causes the content of the <draft-comment> element to be rendered in draft output only.
DITAREQ-1000
Processors SHOULD treat the presence of more than one <title> element in a <example> element as an error.
DITAREQ-1010
Processors SHOULD scale the object when values are provided for the @height and @width attributes.
DITAREQ-1020
If a height value is specified and no width value is specified, processors SHOULD scale the width by the same factor as the height.
DITAREQ-1030
If a width value is specified and no height value is specified, processors SHOULD scale the height by the same factor as the width.
DITAREQ-1040
If both a height value and width value are specified, implementations MAY ignore one of the two values when they are unable to scale to each direction using different factors.
DITAREQ-1050
Processors SHOULD support the @parse values text and xml.
DITAREQ-1060
Processors SHOULD detect the encoding of the referenced document based on the rules described for the @encoding attribute.
DITAREQ-1070
Processors SHOULD preserve the line breaks and spaces that are present in the content of a <lines> element.
DITAREQ-1080
Processors SHOULD render a label for notes.
DITAREQ-1090
Processors SHOULD scale the object when values are provided for the @height and @width attributes.
DITAREQ-1100
If a height value is specified and no width value is specified, processors SHOULD scale the width by the same factor as the height.
DITAREQ-1110
If a width value is specified and no height value is specified, processors SHOULD scale the height by the same factor as the width.
DITAREQ-1120
If both a height value and width value are specified, implementations MAY ignore one of the two values when they are unable to scale to each direction using different factors.
DITAREQ-1130
When an object cannot be rendered in a meaningful way, processors SHOULD present the contents of the <fallback> element, if it is present.
DITAREQ-1140
Processors SHOULD preserve the line breaks and spaces that are present in the content of a <pre> element.
DITAREQ-1150
Processors SHOULD treat the presence of more than one <title> element in a <section> element as an error.
DITAREQ-1160
When an audio resource cannot be rendered in a meaningful way, processors SHOULD present the contents of the <fallback> element, if it is present.
DITAREQ-1170
Processors SHOULD scale the video resource when values are provided for the @height and @width attributes.
DITAREQ-1180
If a height value is specified and no width value is specified, processors SHOULD scale the width by the same factor as the height.
DITAREQ-1190
If a width value is specified and no height value is specified, processors SHOULD scale the height by the same factor as the width.
DITAREQ-1200
If both a height value and width value are specified, implementations MAY ignore one of the two values when they are unable to scale to each direction using different factors.
DITAREQ-1210
When a video resource cannot be rendered in a meaningful way, processors SHOULD render the contents of the <fallback> element, if it is present.
DITAREQ-1220
Processors SHOULD ignore an <index-see> element if its parent <indexterm> element contains any <indexterm> children.
DITAREQ-1230
Processors SHOULD ignore an <index-see-also> element if its parent <indexterm> element contains any <indexterm> children.
DITAREQ-1240
When @appid-role is set to deliverable-anchor, and the <resourceid> applies to a deliverable, processors SHOULD use the @appid value when constructing a URI for the delivered resource.
DITAREQ-1250
By default, processors SHOULD treat a <data> element as unknown metadata.
DITAREQ-1260
The contents of the <data> element SHOULD NOT be rendered.
DITAREQ-1270
Processors that recognize a particular <data> element MAY make use of it to trigger specialized rendering.
DITAREQ-1280
If a processor cannot render the content, it MAY issue a warning.
DITAREQ-1290
Processors MAY recover by using an alternate naming scheme for the conflicting copies.
DITAREQ-1300
Processors SHOULD scale the object when values are provided for the @height and @width attributes.
DITAREQ-1310
If a height value is specified and no width value is specified, processors SHOULD scale the width by the same factor as the height.
DITAREQ-1320
If a width value is specified and no height value is specified, processors SHOULD scale the height by the same factor as the width.
DITAREQ-1330
If both a height value and width value are specified, implementations MAY ignore one of the two values when they are unable to scale to each direction using different factors.
DITAREQ-1340
When a map that contains a <topicgroup> element with a navigation title is used to generate publication output, processors MUST ignore the navigation title and MAY issue an error message.
DITAREQ-1350
Processors SHOULD generate a warning if a navigation title is not specified on a <topichead> element.
DITAREQ-1360
Processors SHOULD expect to encounter <sort-as> elements in the above locations.
DITAREQ-1370
Processors that sort SHOULD use the following precedence rules:
  • A <sort-as> element that is specified in a title takes precedence over a <sort-as> element that is specified as a child of the topic prolog.
  • Except for instances in the topic prolog, processors only apply <sort-as> elements that are either a direct child of the element to be sorted or a direct child of the title- or label-defining element of the element to be sorted.
  • When an element contains multiple, direct-child, <sort-as> elements, the first direct-child <sort-as> element in document order takes precedence.
  • It is an error if there is more than one <sort-as> child for a given <indexterm> element.

  • Sort phrases are determined after filtering and content reference resolution occur.
DITAREQ-1380
When a <sort-as> element is specified, processors that sort the containing element MUST construct the effective sort phrase by prepending the content of the <sort-as> element to the base sort phrase.
DITAREQ-1390
Processors MUST strip this element from output by default.
DITAREQ-1400
For the @color and @backcolor attributes on <prop> and <revprop>, processors SHOULD support at least the following values:
DITAREQ-1410
For the @style attribute on <prop> and <revprop>, processors SHOULD support the following tokens:
  • bold
  • double-underline
  • italics
  • overline
  • underline
DITAREQ-1420
In addition, processors MAY support proprietary tokens for the @style attribute.
DITAREQ-1430
Such tokens SHOULD have a processor-specific prefix to identify them as proprietary.
DITAREQ-1440
If a processor encounters an unsupported style token, it MAY issue a warning, and it MAY render content that is flagged with such a style token by using some default formatting.
DITAREQ-1450
For the @color and @backcolor attributes on <prop> and <revprop>, processors SHOULD support at least the following values:
DITAREQ-1460
For the @style attribute on <prop> and <revprop>, processors SHOULD support the following tokens:
  • bold
  • double-underline
  • italics
  • overline
  • underline
DITAREQ-1470
In addition, processors MAY support proprietary tokens for the @style attribute.
DITAREQ-1480
Such tokens SHOULD have a processor-specific prefix to identify them as proprietary.
DITAREQ-1490
If a processor encounters an unsupported style token, it MAY issue a warning, and it MAY render content that is flagged with such a style token by using some default formatting.
DITAREQ-1500
In such cases processors MAY provide an error or warning message.
DITAREQ-1510
Any implementation that supports a feature MUST conform to all rules laid out in the section that describes the feature.
DITAREQ-1520
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.
DITAREQ-1530
If only a subset of features is supported, implementations SHOULD indicate which features are (or are not) supported.
DITAREQ-1540
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.
DITAREQ-1550
However, any application that renders content references MUST conform to the rules described in the section ../../archSpec/base/conref.html.
DITAREQ-1560
An implementation that does not support a particular feature MUST be prepared to interoperate with other implementations that do support the feature.
DITAREQ-1570
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.
DITAREQ-1580
If a DITA document's custom document type shell includes constraints, those constraints MUST also conform to the rules laid out in ../../archSpec/base/constraint-rules.html
DITAREQ-1590
If a DITA document's custom document type shell includes expansion modules, those moduless MUST also conform to the rules laid out in ../../archSpec/base/expansion-module-rules.html
DITAREQ-1600
If a DITA document uses specialized elements, those elements MUST also conform to the rules laid out in ../../archSpec/base/specialization-rules-elements.html and ../../archSpec/base/specialization-class-attribute.html.
DITAREQ-1610
If a DITA document uses specialized attributes, those attributes MUST also conform to the rules laid out in ../../archSpec/base/specialization-rules-attributes.html and ../../archSpec/base/specialization-specializations-attribute.html.