OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: CORRECTION #2 to stage three proposal: Remove deprecated items


Sorry; I failed to make all the necessary corrections the first time. My bad. Hopefully this is finished and what we will vote on! (Typo-ish changes only).

----------------

DITA 2.0 stage 3 proposal: #36

Remove elements and attributes that have been designated as deprecated, "reserved for future use," or defined by mistake and retained only to maintain backwards compatibility

Champion

Kristen James Eberlein, Eberlein Consulting LLC

Tracking information

Event Date Links
Stage 1 proposal accepted 6 June 2017 Minutes of TC meeting
Stage 2 proposal submitted 1 February 2018; updated on 19 February 2018 and 26 February 2018
Stage 2 proposal discussed   Minutes of TC meetings:
Stage 2 proposal approved 27 February 2018 Minutes of TC meeting: 27 February 2018
Stage 3 proposal submitted to reviewers 27 February 2018; revised and resubmitted to reviewers on 1 March 2018 (based on feedback from Robert Anderson); revised and resubmitted to reviewers on 2 March 2018 (based on feedback from Stan Doherty).
  • Robert Anderson
  • Stan Doherty
  • Nancy Harrison
  • Keith Schengili-Roberts
Stage 3 proposal (this document) submitted to TC 2 March 2018  

Approved technical requirements

Remove elements and attributes that have been designated as deprecated, "reserved for future use," or defined by mistake and retained only to maintain backwards compatibility

Dependencies or interrelated proposals

None

Modified grammar files

The following files must be modified:

DTDs
  • commonElements.mod
  • map.mod
  • mapGroup.mod
  • topic.mod
RNG
  • commonElementsMod.rng
  • mapMod.rng
  • mapGroupMod.rng
  • topicMod.rng

In the content below, the following conventions are used:

  • Bold is used to indicate code to be added.
  • Line-through is used to indicate code to be removed.
  • Ellipses indicate where code is snipped for brevity.
Figure 1. Removing <boolean>

commonElements.mod

<!ENTITY % basic.ph
              "%boolean; |
               %cite; |
               %keyword; |
               %ph; |
               %q; |
               %term; |
               %text; |
               %tm; |
               %xref; |
               %state;"
>
...
<!ENTITY % basic.ph.noxref.nocite
              "%boolean; |
               %keyword; |
               %ph; |
               %q; |
               %term; |
               %text; |
               %tm; |
               %state;"
>
...
<!ENTITY % basic.ph.notm
              "%boolean; |
               %cite; |
               %keyword; |
               %ph; |
               %q; |
               %term; |
               %text; |
               %xref; |
               %state;"
>

<!--                    LONG NAME: Boolean  (deprecated)           -->
<!ENTITY % boolean.content
                       "EMPTY"
>
<!ENTITY % boolean.attributes
              "state
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #REQUIRED
               %univ-atts;
               outputclass
                          CDATA
                                    #IMPLIED"
>
<!ELEMENT  boolean %boolean.content;>
<!ATTLIST  boolean %boolean.attributes;>

...
<!ATTLIST  boolean      %global-atts;  class CDATA "- topic/boolean "    >
Figure 2. Removing <boolean>

commonElementsMod.rng

 <div>
    <a:documentation>ELEMENT TYPE NAME PATTERNS</a:documentation>
    ...
    <define name="boolean">
      <ref name="boolean.element"/>
    </define>
    ...
<define name="basic.ph">
        <choice>
          <ref name="boolean"/>
          <ref name="cite"/>
          <ref name="keyword"/>
          <ref name="ph"/>
          <ref name="q"/>
          <ref name="term"/>
          <ref name="text" dita:since="1.3"/>
          <ref name="tm"/>
          <ref name="xref"/>
          <ref name="state"/>
        </choice>
      </define>
...
<define name="basic.ph.noxref.nocite" dita:since="1.3">
        <choice>
          <ref name="boolean"/>
          <ref name="keyword"/>
          <ref name="ph"/>
          <ref name="q"/>
          <ref name="term"/>
          <ref name="text" dita:since="1.3"/>
          <ref name="tm"/>
          <ref name="state"/>
        </choice>
      </define>
...
<define name="basic.ph.notm">
        <choice>
          <ref name="boolean"/>
          <ref name="cite"/>
          <ref name="keyword"/>
          <ref name="ph"/>
          <ref name="q"/>
          <ref name="term"/>
          <ref name="text" dita:since="1.3"/>
          <ref name="xref"/>
          <ref name="state"/>
        </choice>
      </define>
...
<div>
        <a:documentation>LONG NAME: Boolean (deprecated)</a:documentation>
        <define name="boolean.content">
          <empty/>
        </define>
        <define name="boolean.attributes">
          <attribute name="state">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
          <ref name="univ-atts"/>
          <optional>
            <attribute name="outputclass"/>
          </optional>
        </define>
        <define name="boolean.element">
          <element name="boolean" dita:longName="Boolean  (deprecated)">
            <a:documentation>The &lt;boolean> element is used to express one of two opposite values, such as yes or no, on or off, true or false, high or low, and so forth. The element itself is
              empty; the value of the element is stored in its state attribute, and the semantic associated with the value is typically in a specialized name derived from this element. Category:
              Specialization elements</a:documentation>
            <ref name="boolean.attlist"/>
            <ref name="boolean.content"/>
          </element>
        </define>
        <define name="boolean.attlist" combine="interleave">
          <ref name="boolean.attributes"/>
        </define>

      </div>
...
    <define name="boolean.attlist" combine="interleave">
      <ref name="global-atts"/>
      <optional>
        <attribute name="class" a:defaultValue="- topic/boolean "/>
      </optional>
    </define>
Figure 3. Removing <indextermref>

commonElements.mod

<!ENTITY % txt.incl
              "%draft-comment; |
               %fn; |
               %indextermref; |
               %indexterm; |
               %required-cleanup;"
>
...
<!--                    LONG NAME: Index term reference            -->
<!ENTITY % indextermref.content
                       "EMPTY"
>
<!ENTITY % indextermref.attributes
              "keyref
                          CDATA
                                    #REQUIRED
               %univ-atts;"
>
<!ELEMENT  indextermref %indextermref.content;>
<!ATTLIST  indextermref %indextermref.attributes;>
...
<!ATTLIST  indextermref %global-atts;  class CDATA "- topic/indextermref ">
Figure 4. Removing <indextermref>

commonElementsMod.rng

 <div>
    <a:documentation>ELEMENT TYPE NAME PATTERNS</a:documentation>
    ...
    <define name="indextermref">
      <ref name="indextermref.element"/>
    </define>
    ...
<define name="txt.incl">
        <a:documentation>Inclusions: defined sets that can be added into appropriate models</a:documentation>
        <choice>
          <ref name="draft-comment"/>
          <ref name="fn"/>
          <ref name="indextermref"/>
          <ref name="indexterm"/>
          <ref name="required-cleanup"/>
        </choice>
      </define>
...
<div>
        <a:documentation>LONG NAME: Index term reference</a:documentation>
        <define name="indextermref.content">
          <empty/>
        </define>
        <define name="indextermref.attributes">
          <attribute name="keyref"/>
          <ref name="univ-atts"/>
        </define>
        <define name="indextermref.element">
          <element name="indextermref" dita:longName="Index term reference">
            <a:documentation>This element is not completely defined, and is reserved for future use. Category: Miscellaneous elements</a:documentation>
            <ref name="indextermref.attlist"/>
            <ref name="indextermref.content"/>
          </element>
        </define>
        <define name="indextermref.attlist" combine="interleave">
          <ref name="indextermref.attributes"/>
        </define>
</div>
...
    <define name="indextermref.attlist" combine="interleave">
      <ref name="global-atts"/>
      <optional>
        <attribute name="class" a:defaultValue="- topic/indextermref "/>
      </optional>
    </define>
Figure 5. Removing @alt and @longdescref on <image>

commonElements.mod

<!ENTITY % image.attributes
              "href
                          CDATA
                                    #IMPLIED
               scope
                          (external |
                           local |
                           peer |
                           -dita-use-conref-target)
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               alt
                          CDATA
                                    #IMPLIED
               longdescref
                          CDATA
                          #IMPLIED
               height
                          NMTOKEN
                                    #IMPLIED
               width
                          NMTOKEN
                                    #IMPLIED
               align
                          CDATA
                                    #IMPLIED
               scale
                          NMTOKEN
                                    #IMPLIED
               scalefit
                          (yes |
                           no |
                           -dita-use-conref-target)
                                    #IMPLIED
               placement
                          (break |
                           inline |
                           -dita-use-conref-target)
                                    'inline'
               %univ-atts;
               outputclass
                          CDATA
                                    #IMPLIED"
>
Figure 6. Removing @alt and @longdescref on <image>

commonElementsMod.rng

 <define name="image.attributes">
          <optional>
            <attribute name="href"/>
          </optional>
          <optional>
            <attribute name="scope">
              <choice>
                <value>external</value>
                <value>local</value>
                <value>peer</value>
                <value>-dita-use-conref-target</value>
              </choice>
            </attribute>
          </optional>
          <optional>
            <attribute name="keyref"/>
          </optional>
          <optional>
            <attribute name="alt"/>
          </optional>
          <optional>
            <attribute name="longdescref"/>
          </optional>
          <optional>
            <attribute name="height">
              <data type="NMTOKEN"/>
            </attribute>
          </optional>
          <optional>
            <attribute name="width">
              <data type="NMTOKEN"/>
            </attribute>
          </optional>
          <optional>
            <attribute name="align"/>
          </optional>
          <optional>
            <attribute name="scale">
              <data type="NMTOKEN"/>
            </attribute>
          </optional>
          <optional>
            <attribute name="scalefit">
              <choice>
                <value>yes</value>
                <value>no</value>
                <value>-dita-use-conref-target</value>
              </choice>
            </attribute>
          </optional>
          <optional>
            <attribute name="placement" a:defaultValue="inline">
              <choice>
                <value>break</value>
                <value>inline</value>
                <value>-dita-use-conref-target</value>
              </choice>
            </attribute>
          </optional>
          <optional>
            <attribute name="format" dita:since="1.3 errata 02"/>
          </optional>
          <ref name="univ-atts"/>
          <optional>
            <attribute name="outputclass"/>
          </optional>
        </define>
Figure 7. Removing @chunk="to-navigation"

No changes are needed to the grammar files.

Figure 8. Removing @collection-type="tree" on <linkpool> and <linklist>

The only changes required are to the DTDs.

topic.mod

<!ENTITY % linklist.attributes
              "collection-type
                          (choice |
                           family |
                           sequence |
                           unordered |
                           -dita-use-conref-target |
                           tree)
                                    #IMPLIED
               duplicates
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               mapkeyref
                          CDATA
                                    #IMPLIED
               %relational-atts;
               %univ-atts;
               spectitle
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED"
>
<!ENTITY % linkpool.attributes
              "collection-type
                          (choice |
                           family |
                           sequence |
                           unordered |
                           -dita-use-conref-target |
                           tree)
                                    #IMPLIED
               duplicates
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               mapkeyref
                          CDATA
                                    #IMPLIED
               %relational-atts;
               %univ-atts;
               outputclass
                          CDATA
                                    #IMPLIED"
>
Figure 9. Removing @collection-type on <reltable> and <relcolspec>

map.mod

Adding a new attribute group:

<!ENTITY % topicref-atts-for-reltable
              "type
                          CDATA
                                    #IMPLIED
               cascade
                          CDATA
                                    #IMPLIED
               processing-role
                          (normal |
                           resource-only |
                           -dita-use-conref-target)
                                    #IMPLIED
               scope
                          (external |
                           local |
                           peer |
                           -dita-use-conref-target)
                                    #IMPLIED
               locktitle
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               format
                          CDATA
                                    #IMPLIED
               linking
                          (none |
                           normal |
                           sourceonly |
                           targetonly |
                           -dita-use-conref-target)
                                    #IMPLIED
               toc
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    'no'
               print
                          (no |
                           printonly |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               search
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               chunk
                          CDATA
                                    #IMPLIED"
>

Modifying declarations for <reltable> and <relcolspec>:

<!ENTITY % reltable.attributes
              "title
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               %topicref-atts-no-toc-no-keyscope;
               %topicref-atts-for-reltable;
               %univ-atts;"
>
...
<!ENTITY % relcolspec.attributes
              "outputclass
                          CDATA
                                    #IMPLIED
               %topicref-atts-no-toc-no-keyscope;
               %topicref-atts-for-reltable;
               %univ-atts;"
>
Figure 10. Removing @collection-type on <reltable> and <relcolspec>

mapMod.rng

Adding a new attribute group for use on <reltable> and <relcolspec>:

<define name="topicref-atts-for-reltable" dita:since="2.0">
      <optional>
        <attribute name="type"/>
      </optional>
      <optional>
        <attribute name="cascade" dita:since="1.3"/>
      </optional>
      <optional>        
        <attribute name="processing-role">
          <choice>
            <value>normal</value>
            <value>resource-only</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="scope">
          <choice>
            <value>external</value>
            <value>local</value>
            <value>peer</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="locktitle">
          <choice>
            <value>no</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="format"/>
      </optional>
      <optional>
        <attribute name="linking">
          <choice>
            <value>none</value>
            <value>normal</value>
            <value>sourceonly</value>
            <value>targetonly</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="toc" a:defaultValue="no">
          <choice>
            <value>no</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="print">
          <choice>
            <value>no</value>
            <value>printonly</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="search">
          <choice>
            <value>no</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="chunk"/>
      </optional>
    </define>

mapMod.rng

Modifying declarations for <reltable> and <relcolspec>; changes indicated in bold.

<define name="reltable.attributes">
        <optional>
          <attribute name="title"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="topicref-atts-no-toc-no-keyscope"/>
        <ref name="topicref-atts-for-reltable"/>
        <ref name="univ-atts"/>
      </define>
...
<define name="relcolspec.attributes">
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="topicref-atts-no-toc-no-keyscope"/>
        <ref name="topicref-atts-for-reltable"/>
        <ref name="univ-atts"/>
      </define>
Figure 11. Removing @keyref on <navref>

map.mod

<!ENTITY % navref.attributes
              "%univ-atts;
               keyref
                          CDATA
                                    #IMPLIED
               mapref
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED"
>
Figure 12. Removing @keyref on <navref>

mapMod.rng

<define name="navref.attributes">
        <ref name="univ-atts"/>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="mapref"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
      </define>
Figure 13. Removing @locktitle on <topichead> and <topicgroup>

map.mod

Add a new attribute entity

<!ENTITY % topicref-atts-no-locktitle
              "collection-type
                          (choice |
                           family |
                           sequence |
                           unordered |
                           -dita-use-conref-target)
                                    #IMPLIED
               type
                          CDATA
                                    #IMPLIED
               cascade
                          CDATA
                                    #IMPLIED
               processing-role
                          (normal |
                           resource-only |
                           -dita-use-conref-target)
                                    #IMPLIED
               scope
                          (external |
                           local |
                           peer |
                           -dita-use-conref-target)
                                    #IMPLIED
               format
                          CDATA
                                    #IMPLIED
               linking
                          (none |
                           normal |
                           sourceonly |
                           targetonly |
                           -dita-use-conref-target)
                                    #IMPLIED
               toc
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               print
                          (no |
                           printonly |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               search
                          (no |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED
               chunk
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED"
>

mapGroup.mod

<!ENTITY % topichead.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %topicref-atts-no-locktitle;
               %univ-atts;"
>
...
<!ENTITY % topicgroup.attributes
              "outputclass
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %topicref-atts-no-locktitle;
               %univ-atts;"
>
Figure 14. Removing @locktitle on <topichead> and <topicgroup>

mapMod.rng

Add a new attribute entity

<define name="topicref-atts-no-locktitle">
      <optional>
        <attribute name="collection-type">
          <choice>
            <value>choice</value>
            <value>family</value>
            <value>sequence</value>
            <value>unordered</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="type"/>
      </optional>
      <optional>
        <attribute name="cascade" dita:since="1.3"/>
      </optional>
      <optional>
        <attribute name="processing-role">
          <choice>
            <value>normal</value>
            <value>resource-only</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="scope">
          <choice>
            <value>external</value>
            <value>local</value>
            <value>peer</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="format"/>
      </optional>
      <optional>
        <attribute name="linking">
          <choice>
            <value>none</value>
            <value>normal</value>
            <value>sourceonly</value>
            <value>targetonly</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="toc">
          <choice>
            <value>no</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="print">
          <choice>
            <value>no</value>
            <value>printonly</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="search">
          <choice>
            <value>no</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="chunk"/>
      </optional>
      <optional>
        <attribute name="keyscope" dita:since="1.3"/>
      </optional>
    </define>

mapGroupDomain.rng

<define name="topichead.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <ref name="topicref-atts"/>
        <ref name=""topicref-atts-no-locktitle">
        <ref name="univ-atts"/>
      </define>
...
<define name="topicgroup.attributes">
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="topicref-atts"/>
        <ref name=""topicref-atts-no-locktitle">
        <ref name="univ-atts"/>
      </define>
Figure 15. Removing @navtitle

map.mod

<!ENTITY % topicref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %univ-atts;"
>
Figure 16. Removing @navtitle

mapMod.rng

<define name="topicref.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="topicref-atts"/>
        <ref name="univ-atts"/>
      </define>
Figure 17. Removing @print

map.mod

Remove the following code:

print
                          (no |
                           printonly |
                           yes |
                           -dita-use-conref-target)
                                    #IMPLIED

From the following entities:

  • %topicref-atts;
  • %topicref-atts-no-toc;
  • %topicref-atts-no-toc-no-keyscope;
  • %topicref-atts-without-format;
Figure 18. Removing @print

mapMod.rng

Remove the following code:

optional>
        <attribute name="print">
          <choice>
            <value>no</value>
            <value>printonly</value>
            <value>yes</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>

From the following entities:

  • %topicref-atts;
  • %topicref-atts-no-toc;
  • %topicref-atts-no-toc-no-keyscope;
  • %topicref-atts-without-format;
Figure 19. Removing @query

map.mod

<!ENTITY % topicref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %univ-atts;"
>

mapGroup.mod

Remove the following code:

query
                          CDATA
                                    #IMPLIED

From the following entities:

  • %anchorref.attributes;
  • %mapref.attributes;
  • %topicset.attributes;
  • %topicsetref.attributes;
  • %keydef.attributes;

topic.mod

<!ENTITY % link.attributes
              "href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               %relational-atts;
               %univ-atts;
               outputclass
                          CDATA
                                    #IMPLIED"
>
Figure 20. Removing @query

mapMod.rng

Remove the following code:

<optional>
          <attribute name="query"/>
        </optional>

From the following entities:

  • %anchorref.attributes;
  • %mapref.attributes;
  • %topicset.attributes;
  • %topicsetref.attributes;
  • %keydef.attributes;
<define name="topicref.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="topicref-atts"/>
        <ref name="univ-atts"/>
      </define>

mapGroupDomain.rng

<define name="anchorref.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="keyscope" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="collection-type">
            <choice>
              <value>choice</value>
              <value>family</value>
              <value>sequence</value>
              <value>unordered</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="processing-role">
            <choice>
              <value>normal</value>
              <value>resource-only</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="type" a:defaultValue="anchor"/>
        </optional>
        <optional>
          <attribute name="cascade" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="scope">
            <choice>
              <value>external</value>
              <value>local</value>
              <value>peer</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="locktitle">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="format" a:defaultValue="ditamap"/>
        </optional>
        <optional>
          <attribute name="linking">
            <choice>
              <value>none</value>
              <value>normal</value>
              <value>sourceonly</value>
              <value>targetonly</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="toc">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="print">
            <choice>
              <value>no</value>
              <value>printonly</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="search">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="chunk"/>
        </optional>
        <ref name="univ-atts"/>
      </define>
...
<define name="mapref.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="format" a:defaultValue="ditamap"/>
        </optional>
        <ref name="topicref-atts-without-format"/>
        <ref name="univ-atts"/>
      </define>
...
<define name="topicset.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="keyscope" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="collection-type">
            <choice>
              <value>choice</value>
              <value>family</value>
              <value>sequence</value>
              <value>unordered</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="processing-role">
            <choice>
              <value>normal</value>
              <value>resource-only</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="type"/>
        </optional>
        <optional>
          <attribute name="cascade" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="scope">
            <choice>
              <value>external</value>
              <value>local</value>
              <value>peer</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="locktitle">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="format"/>
        </optional>
        <optional>
          <attribute name="linking">
            <choice>
              <value>none</value>
              <value>normal</value>
              <value>sourceonly</value>
              <value>targetonly</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="toc">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="print">
            <choice>
              <value>no</value>
              <value>printonly</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="search">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="chunk"/>
        </optional>
        <attribute name="id">
          <data type="NMTOKEN"/>
        </attribute>
        <ref name="conref-atts"/>
        <ref name="select-atts"/>
        <ref name="localization-atts"/>
      </define>
...
<define name="topicsetref.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <optional>
          <attribute name="keys"/>
        </optional>
        <optional>
          <attribute name="keyscope" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="collection-type">
            <choice>
              <value>choice</value>
              <value>family</value>
              <value>sequence</value>
              <value>unordered</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="processing-role">
            <choice>
              <value>normal</value>
              <value>resource-only</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="type" a:defaultValue="topicset"/>
        </optional>
        <optional>
          <attribute name="cascade" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="scope">
            <choice>
              <value>external</value>
              <value>local</value>
              <value>peer</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="locktitle">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="format" a:defaultValue="ditamap"/>
        </optional>
        <optional>
          <attribute name="linking">
            <choice>
              <value>none</value>
              <value>normal</value>
              <value>sourceonly</value>
              <value>targetonly</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="toc">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="print">
            <choice>
              <value>no</value>
              <value>printonly</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="search">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="chunk"/>
        </optional>
        <ref name="univ-atts"/>
      </define>
...
<define name="keydef.attributes">
        <optional>
          <attribute name="navtitle"/>
        </optional>
        <optional>
          <attribute name="href"/>
        </optional>
        <optional>
          <attribute name="keyref"/>
        </optional>
        <attribute name="keys"/>
        <optional>
          <attribute name="keyscope" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="query"/>
        </optional>
        <optional>
          <attribute name="copy-to"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <optional>
          <attribute name="collection-type">
            <choice>
              <value>choice</value>
              <value>family</value>
              <value>sequence</value>
              <value>unordered</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="processing-role" a:defaultValue="resource-only">
            <choice>
              <value>normal</value>
              <value>resource-only</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="type"/>
        </optional>
        <optional>
          <attribute name="cascade" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="scope">
            <choice>
              <value>external</value>
              <value>local</value>
              <value>peer</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="locktitle">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="format"/>
        </optional>
        <optional>
          <attribute name="linking">
            <choice>
              <value>none</value>
              <value>normal</value>
              <value>sourceonly</value>
              <value>targetonly</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="toc">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="print">
            <choice>
              <value>no</value>
              <value>printonly</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="search">
            <choice>
              <value>no</value>
              <value>yes</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="chunk"/>
        </optional>
        <ref name="univ-atts"/>
      </define>

topicMod.rng

<define name="link.attributes">
          <optional>
            <attribute name="href"/>
          </optional>
          <optional>
            <attribute name="keyref"/>
          </optional>
          <optional>
            <attribute name="query"/>
          </optional>
          <ref name="relational-atts"/>
          <ref name="univ-atts"/>
          <optional>
            <attribute name="outputclass"/>
          </optional>
        </define>
Figure 21. Removing @refcols

commonElements.mod

<!ENTITY % simpletable.attributes
              "relcolwidth
                          CDATA
                                    #IMPLIED
               keycol
                          NMTOKEN
                                    #IMPLIED
               refcols
                          NMTOKENS
                                    #IMPLIED
               %display-atts;
               spectitle
                          CDATA
                                    #IMPLIED
               %univ-atts;
               outputclass
                          CDATA
                                    #IMPLIED"
>
Figure 22. Removing @refcols

commonElementsMod.rng

 <define name="simpletable.attributes">
          <optional>
            <attribute name="relcolwidth"/>
          </optional>
          <optional>
            <attribute name="keycol">
              <data type="NMTOKEN"/>
            </attribute>
          </optional>
          <optional>
            <attribute name="refcols">
              <data type="NMTOKENS"/>
            </attribute>
          </optional>
          <ref name="display-atts"/>
          <optional>
            <attribute name="spectitle"/>
          </optional>
          <ref name="univ-atts"/>
          <optional>
            <attribute name="outputclass"/>
          </optional>
        </define>
Figure 23. Removing @role="sample" and @role="external"

topic.mod

<!ENTITY % relational-atts
              "type
                          CDATA
                                    #IMPLIED
               cascade
                          CDATA
                                    #IMPLIED
               format
                          CDATA
                                    #IMPLIED
               scope
                          (external |
                           local |
                           peer |
                           -dita-use-conref-target)
                                    #IMPLIED
               role
                          (ancestor |
                           child |
                           cousin |
                           descendant |
                           external |
                           friend |
                           next |
                           other |
                           parent |
                           previous |
                           sample |
                           sibling |
                           -dita-use-conref-target)
                                    #IMPLIED
               otherrole
                          CDATA
                                    #IMPLIED"
>
<!ENTITY % rel-atts
              "type
                          CDATA
                                    #IMPLIED
               role
                          (ancestor |
                           child |
                           cousin |
                           descendant |
                           external |
                           friend |
                           next |
                           other |
                           parent |
                           previous |
                           sample |
                           sibling |
                           -dita-use-conref-target)
                                    #IMPLIED
               otherrole
                          CDATA
                                    #IMPLIED"
>
Figure 24. Removing @role="sample" and @role="external"

topicMod.rng

<define name="relational-atts">
      <optional>
        <attribute name="type"/>
      </optional>
      <optional>
        <attribute name="cascade" dita:since="1.3"/>
      </optional>
      <optional>
        <attribute name="format"/>
      </optional>
      <optional>
        <attribute name="scope">
          <choice>
            <value>external</value>
            <value>local</value>
            <value>peer</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="role">
          <choice>
            <value>ancestor</value>
            <value>child</value>
            <value>cousin</value>
            <value>descendant</value>
            <value>external</value>
            <value>friend</value>
            <value>next</value>
            <value>other</value>
            <value>parent</value>
            <value>previous</value>
            <value>sample</value>
            <value>sibling</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="otherrole"/>
      </optional>
    </define>
<define name="rel-atts">
      <a:documentation>rel-atts is deprecated as of DITA 1.2, retained for backward compatibility.</a:documentation>
      <optional>
        <attribute name="type"/>
      </optional>
      <optional>
        <attribute name="role">
          <choice>
            <value>ancestor</value>
            <value>child</value>
            <value>cousin</value>
            <value>descendant</value>
            <value>external</value>
            <value>friend</value>
            <value>next</value>
            <value>other</value>
            <value>parent</value>
            <value>previous</value>
            <value>sample</value>
            <value>sibling</value>
            <value>-dita-use-conref-target</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="otherrole"/>
      </optional>
    </define>
Figure 25. Removing @title on <map>

map.mod

<!ENTITY % map.attributes
              "title
                          CDATA
                                    #IMPLIED
               id
                          ID
                                    #IMPLIED
               %conref-atts;
               anchorref
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               %localization-atts;
               %topicref-atts;
               %select-atts;"
>
Figure 26. Removing @title on <map>

mapMod.rng

<define name="map.attributes">
        <optional>
          <attribute name="title"/>
        </optional>
        <optional>
          <attribute name="id">
            <data type="ID"/>
          </attribute>
        </optional>
        <ref name="conref-atts"/>
        <optional>
          <attribute name="anchorref"/>
        </optional>
        <optional>
          <attribute name="outputclass"/>
        </optional>
        <ref name="localization-atts"/>
        <ref name="topicref-atts"/>
        <ref name="select-atts"/>
      </define>
Figure 27. Removing @type="internal" and @type="external" on <lq>

No changes are required to commonElements.mod.

Figure 28. Removing @type="internal" and @type="external" on <lq>

No changes are required to commonElementsMod.rng.

Modified terminology

None

Modified specification documentation

The following architectural spec topics need to be modified as indicated:

  • 2.2.2.4 DITA map attributes
    • In @collection-type, remove "Where the @collection-type attribute is available on elements that cannot directly contain elements (such as <reltable> or <topicref>), the behavior of the attribute is reserved for future use."
    • Remove @navtitle entry
    • In @locktitle, remove note about @navtitle
  • 2.2.2.5.4 Example: How the @cascade attribute functions: Remove @navtitle from example
  • 2.2.3.6 Scaling a list of controlled values to define a taxonomy: Remove @navtitle from example
  • 2.2.3.8.1 Example: How hierarchies defined in a subject scheme map affect filtering: Remove @navtitle from example
  • 2.2.3.8.2 Example: Extending a subject scheme: Remove @navtitle from example
  • 2.2.3.8.3 Example: Extending a subject scheme upwards: Remove @navtitle from example
  • 2.2.4.2.1 Conditional processing attributes: In @deliveryTarget, remove "This attribute is a replacement for the now deprecated @print attribute."
  • 2.2.4.4 Cascading of metadata attributes in a DITA map: Remove mention of @print
  • 2.2.4.5 Reconciling topic and map metadata elements: Remove @navtitle from example
  • 2.2.4.6.1 Cascading of attributes from map to map: Remove mention of @print from text and example
  • 2.3.4.9 Processing key references to generate text or link text: Remove "(such as @alt on the <image>element)"
  • 2.4.1.1 Table of contents: Remove list item about @print
  • 2.4.3.4 Conditional processing to generate multiple deliverable types
    • Remove "The map or topic references can still use the deprecated @print attribute to indicate whether they are applicable to print deliverables."
    • In @deliveryTarget,This attribute is a replacement for the now deprecated print attribute. "
    • Remove entry for @print
  • 2.4.5.2 Chunking examples: Remove value of "to-navigation"
  • 2.6.3.3 DTD: Coding requirements for element type declarations: Modify declaration of topichead.attributes to include new attribute group entity defined to exclude collection-type
  • 2.6.4.3 RELAX NG: Coding requirements for element type declarations: Modify declaration of topichead.attributes to include new attribute group entity defined to exclude collection-type

The following element-reference topics need to be removed:

  • 3.7.1 <boolean>
  • 3.4.2.2 <indextermref>

The following element-reference topics need to be modified as indicated:

  • 3.1 Base DITA elements, A to Z: Remove links to <boolean> and <indextermref>
  • 3.2.1.5 <navtitle>: Remove mentions of @navtitle
  • 3.2.2.1 <alt>: Remove mention of @alt from the short description
  • 3.2.2.17 <image>: Remove @alt and @longdescref
  • 3.2.2.23 <lq>: Remove "internal" and "external" as specified values for the @type attribute
  • 3.2.2.25 <object>: Remove @longdescref
  • 3.2.4.1 <link>: Remove @query
  • 3.2.4.2 <linklist>: Remove paragraph about "tree" as a value for @collection-type
  • 3.2.4.3 <linkpool>: Remove paragraph about "tree" as a value for @collection-type
  • 3.3.1.5 <navref>: Remove @keyref
  • 3.3.1.1 <map>: Remove @title
  • 3.3.1.6 <reltable>: Modify attributes section to indicate that <reltable> does not have @collection-type
  • 3.3.1.10 <relcolspec>: Modify attributes section to indicate that <relcolspec> does not have @collection-type
  • 3.3.2.4 <topicgroup>: Modify attributes section to indicate that <topicgroup> does not have @locktitle
  • 3.3.2.5 <topichead>: Modify attributes seciton to indicate that <topichead> does not have @locktitle
  • 3.4.1.22<resourceid>: Remove paragraph about deprecated usage of @id
  • 3.5.1.3 <hazardsymbol>: Remove @longdescref
  • 3.6.1.2 <schemeref>: Remove mention of @navtitle
  • 3.6.1.15 <relatedSubjects>: Remove mention of @navtitle from text AND the example
  • 3.6.2.2 <topicapply>: Remove mention of @navtitle
  • 3.10.1.2 Metadata attribute group: In description of @deliveryTarget, remove mention of @print
  • 3.10.3 Attributes common to many map elements:
    • Remove the following paragraph: "Usage of the @collection-type attribute on <relatable> and <relcolspec> is currently undefined and reserved for future use."
    • Remove @print
  • 3.10.10 Simpletable attribute group: Remove @refcols
  • 3.10.12 Topicref element attributes group: Remove @navtitle and @query
  • 3.10.13.5.1 Using the -dita-use-conref-target value: Remove note about @navtitle and usage of @navtitle in the examples
  • 3.10.13.12 The @role and @otherrole attributes: Remove values of "sample" and "external"
  • B.6 Element-by-element recommendations for translators
    • In "Topic elements," remove rows for <boolean> and <indextermref>
    • In "Topic elements," remove @alt on <image>
    • In "Map elements," remove paragraph about @navtitle
    • In "Map elements," remove @title on <map> and footnote 8
    • In "Subject scheme elements," remove mentions of @navtitle
    • Remove footnote 5 about @alt on <image>

The following element-reference topics contain examples that must be modified to remove instances of @navtitle. The @navtitle attribute can be removed (and the file name made more descriptive) or replaced by either an XML comment or a <navtitle> element.

  • 3.3.1.4 <anchor>
  • 3.3.2.3<mapref>
  • 3.4.1.14 <metadata>
  • 3.6.1.1 <subjectScheme>
  • 3.6.1.3 <hasInstance>
  • 3.6.1.4 <hasKind>
  • 3.6.1.5 <hasNarrower>
  • 3.6.1.6 <hasPart>
  • 3.6.1.7 <hasRelated>
  • 3.6.1.8 <enumerationdef>
  • 3.6.1.10 <attributedef>
  • 3.6.1.14 <subjectdef>
  • 3.6.2.1 <subjectref>
  • 3.6.2.3 <topicsubject>
  • 3.6.2.4 <topicSubjectTable>

The following table contains precise suggestions for the changes to be made.

Topic DITA 1.3 content DITA 2.0 content
3.3.1.4 <anchor>
<map>
  <title>MyComponent tasks</title>
  <topicref navtitle="Start here" href="" toc="yes">
    <navref mapref="othermap2.ditamap"/>
    <navref mapref="othermap3.ditamap"/>
    <anchor id="a1"/>
  </topicref>
</map>
<map>
  <title>MyComponent tasks</title>
  <topicref href="" toc="yes">
    <navref mapref="othermap2.ditamap"/>
    <navref mapref="othermap3.ditamap"/>
    <anchor id="a1"/>
  </topicref>
</map>
3.3.2.3<mapref>
Figure 29. Map that reuses lib.ditamap
<map id="standardlib">
  <topichead navtitle="Developing with standard libraries">
    <mapref href=""/>
  </topichead>
  <!-- ... -->
</map>
Figure 30. Map that reuses lib.ditamap
<map id="standardlib">
  <topichead>
    <topicmeta>
       <navtitle>Developing with standard libraries</navtitle>
    </topicmeta>
    <mapref href=""/>
  </topichead>
  <!-- ... -->
</map>
3.4.1.14 <metadata>

Metadata within a map:

<topicref href="" navtitle="metadata element">
  <topicmeta>
    <metadata>
      <keywords>
        <indexterm>metadata element</indexterm>
      </keywords>
    </metadata>
  </topicmeta>
</topicref>

Metadata within a map:

<topicref href="">
  <topicmeta>
    <metadata>
      <keywords>
        <indexterm>metadata element</indexterm>
      </keywords>
    </metadata>
  </topicmeta>
</topicref>
3.6.1.1 <subjectScheme> Same as <enumerationdef> Same as <enumerationdef>
3.6.1.3 <hasInstance>
<subjectScheme>
  <hasInstance>
    <subjectdef keys="city" navtitle="City">
      <subjectdef keys="nyc"       navtitle="New York City"/>
      <subjectdef keys="reykjavik" navtitle="Reykjavik"/>
      <subjectdef keys="moscow"    navtitle="Moscow"/>
    </subjectdef>
  </hasInstance>
</subjectScheme>
<subjectScheme>
  <hasInstance>
    <subjectdef keys="city">
      <subjectdef keys="nyc"/>
      <subjectdef keys="reykjavik"/>
      <subjectdef keys="moscow"/>
    </subjectdef>
  </hasInstance>
</subjectScheme>
3.6.1.4 <hasKind>

This example specifies that cities, towns, and villages are each a kind of settlement. Additionally, bigcity, mediumcity, and smallcity are each a kind of city.

<subjectScheme>
  <hasKind>
    <subjectdef keys="settlement" navtitle="Human settlement">
      <subjectdef keys="city" navtitle="City">
        <subjectdef keys="bigcity" navtitle="Big city"/>
        <subjectdef keys="mediumcity" navtitle="Medium city"/>
        <subjectdef keys="smallcity" navtitle="Small city"/>
      </subjectdef>
      <subjectdef keys="town" navtitle="Town"/>
      <subjectdef keys="village" navtitle="Village"/>
    </subjectdef>
  </hasKind>
</subjectScheme>

This example specifies that cities, towns, and villages are each a kind of settlement. Additionally, big-city, medium-city, and small-city are each a kind of city.

<subjectScheme>
  <hasKind>
    <subjectdef keys="settlement">
      <subjectdef keys="city">
        <subjectdef keys="big-city"/>
        <subjectdef keys="medium-city"/>
        <subjectdef keys="small-city"/>
      </subjectdef>
      <subjectdef keys="town"/>
      <subjectdef keys="village" navtitle="Village"/>
    </subjectdef>
  </hasKind>
</subjectScheme>
3.6.1.5 <hasNarrower>
<subjectScheme>
  <hasNarrower>
    <subjectdef keys="horticulture" navtitle="Horticulture">
      <subjectdef keys="plantrose"  navtitle="Planting Roses"/>
    </subjectdef>
  </hasNarrower>
</subjectScheme>
<subjectScheme>
  <hasNarrower>
    <subjectdef keys="horticulture">
      <subjectdef keys="planting-roses"/>
    </subjectdef>
  </hasNarrower>
</subjectScheme>
3.6.1.6 <hasPart>
<subjectScheme>
  <hasPart>
    <subjectdef keys="car" navtitle="Car">
      <subjectdef keys="tire" navtitle="Tire"/>
      <subjectdef keys="horn" navtitle="Horn"/>
    </subjectdef>
  </hasPart>
</subjectScheme>
<subjectScheme>
  <hasPart>
    <subjectdef keys="car">
      <subjectdef keys="tire"/>
      <subjectdef keys="horn"/>
    </subjectdef>
  </hasPart>
</subjectScheme>
3.6.1.7 <hasRelated>
<subjectScheme>
  <subjectdef keys="myProgram" navtitle="My Program">
    <hasRelated keys="runsOn" navtitle="runs on">
      <subjectdef keys="linux" navtitle="Linux"/>
      <subjectdef keys="mswin" navtitle="Microsoft Windows"/>
    </hasRelated>
  </subjectdef>
</subjectScheme>
<subjectScheme>
  <subjectdef keys="myProgram">
    <hasRelated keys="platforms">
      <subjectdef keys="linux">
      <subjectdef keys="windows"/>
    </hasRelated>
  </subjectdef>
</subjectScheme>
3.6.1.8 <enumerationdef>
<subjectScheme>
  <!-- Pull in a scheme that defines unix OS values -->
  <schemeref href=""/>
  <!-- Define new OS values that are merged with those in the unixOS scheme -->
  <subjectdef keys="os">
    <subjectdef keys="linux"/>
    <subjectdef keys="mswin"/>
    <subjectdef keys="zos"/>
  </subjectdef>
  <!-- Define application values -->
  <subjectdef keys="app" navtitle="Applications">
    <subjectdef keys="apacheserv" href=""/>
    <subjectdef keys="mysql"      href=""/>
  </subjectdef>

  <!-- Define an enumeration of the platform attribute, equal to
       each value in the OS subject. This makes the following values
       valid for the platform attribute: linux, mswin, zos -->
  <enumerationdef>
    <attributedef name="platform"/>
    <subjectdef keyref="os"/>
  </enumerationdef>
  <!-- Define an enumeration of the otherprops attribute, equal to
       each value in the application subjects.
       This makes the following values valid for the otherprops attribute:
       apacheserv, mysql -->
  <enumerationdef>
    <attributedef name="otherprops"/>
    <subjectdef keyref="app"/>
  </enumerationdef>
</subjectScheme>
<subjectScheme>
  <!-- Pull in a scheme that defines unix OS values -->
  <schemeref href=""/>
  <!-- Define new OS values that are merged with those in the unixOS scheme -->
  <subjectdef keys="operating-systems">
    <subjectdef keys="linux"/>
    <subjectdef keys="windows"/>
    <subjectdef keys="zOS"/>
  </subjectdef>
  <!-- Define application values -->
  <subjectdef keys="applications">
    <subjectdef keys="apache-server" href=""/>
    <subjectdef keys="my-sql"      href=""/>
  </subjectdef>

  <!-- Define an enumeration of the platform attribute, equal to
       each value in the OS subject. This makes the following values
       valid for the platform attribute: linux, windows, zOS -->
  <enumerationdef>
    <attributedef name="platform"/>
    <subjectdef keyref="os"/>
  </enumerationdef>
  <!-- Define an enumeration of the otherprops attribute, equal to
       each value in the application subjects.
       This makes the following values valid for the otherprops attribute:
       apache-server, my-sql -->
  <enumerationdef>
    <attributedef name="otherprops"/>
    <subjectdef keyref="applications"/>
  </enumerationdef>
</subjectScheme>
3.6.1.10 <attributedef> Same as <enumerationdef> Same as <enumerationdef>
3.6.1.14 <subjectdef> Same as <enumerationdef> Same as <enumerationdef>
3.6.2.1 <subjectref>

In the following example, the map is classified as covering the Linux subject, and the "Developing web applications" topic is classified as covering the web and development subjects. These subjects (and their keys) are defined externally in a subject scheme map; in order to reference the subject directly without the subject scheme map, the @href attribute would be used in place of @keyref.

<map>
  <title>Working with Linux</title>
  <topicsubject keyref="linux"/>
  <!-- ... -->
  <topicref href="" navtitle="Developing web applications">
    <topicsubject>
      <subjectref keyref="web"/>
      <subjectref keyref="development"/>
    </topicsubject>
    <!-- ... -->
  </topicref>
  <!-- ... -->
</map>

In the following example, the map is classified as covering the Linux subject, anddeveloping-web-applications.dita is classified as covering the web and development subjects. These subjects (and their keys) are defined externally in a subject scheme map; in order to reference the subject directly without the subject scheme map, the @href attribute would be used in place of @keyref.

<map>
  <title>Working with Linux</title>
  <topicsubject keyref="linux"/>
  <!-- ... -->
  <topicref href="">
    <topicsubject>
      <subjectref keyref="web"/>
      <subjectref keyref="development"/>
    </topicsubject>
    <!-- ... -->
  </topicref>
  <!-- ... -->
</map>
3.6.2.3 <topicsubject> Same as <subjectref>; should be reused Same as <subjectref>; should be reused
3.6.2.4 <topicSubjectTable>
The following <topicSubjectTable> classifies several topics according to subjects defined in the previous map. As with any <topicSubjectTable>, the first column is used to specify topics. In this specific example, the second column is used to specify a goal, based on the "goal" subject in the header. The third column is used to specify an operating system. Based on those definitions, the following classifications are made by this table:
  • The topics "Configuring cron for efficient startup" and "Allocating raw storage" are each classified by the goal of "performance"; they also are classified by the operating systems "linux" and "unix".
  • The topics "Analyzing web logs for service issues" and "Detecting denial-of-service attacks" are each classified by the goal of "reliability"; they also are classified by the operating systems "linux", "unix", and "windows".
  • No relationship is defined between subjects in the table, meaning that this table does not define any relationship between the goal of "performance" and the operating systems "linux" or "unix".
<map>
<!-- ... -->
<topicSubjectTable>
  <topicSubjectHeader>
    <topicCell type="task"/>
    <subjectCell>
      <topicsubject keyref="goal"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="os"/>
    </subjectCell>
  </topicSubjectHeader>
  <topicSubjectRow>
    <topicCell>
      <topicref href="" navtitle="Configuring cron for efficient startup"/>
      <topicref href="" navtitle="Allocating raw storage"/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="performance"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
    </subjectCell>
  </topicSubjectRow>
  <topicSubjectRow>
    <topicCell>
      <topicref href="" navtitle="Analyzing web logs for service issues"/>
      <topicref href="" navtitle="Detecting denial-of-service attacks"/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="reliability"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
      <topicapply keyref="windows"/>
    </subjectCell>
  </topicSubjectRow>
  <!-- ... -->
</topicSubjectTable>
</map>
The following <topicSubjectTable> classifies several topics according to subjects defined in the previous map. As with any <topicSubjectTable>, the first column is used to specify topics. In this specific example, the second column is used to specify a goal, based on the "goal" subject in the header. The third column is used to specify an operating system. Based on those definitions, the following classifications are made by this table:
  • The topics configure-cron-for-efficiency.dita and allocating-raw-storage.dita are each classified by the goal of "performance"; they also are classified by the operating systems "linux" and "unix".
  • The topics analyze-web-logs.dita and detect-denial-of-service-attacks.ditaare each classified by the goal of "reliability"; they also are classified by the operating systems "linux", "unix", and "windows".
  • No relationship is defined between subjects in the table, meaning that this table does not define any relationship between the goal of "performance" and the operating systems "linux" or "unix".
<map>
<!-- ... -->
<topicSubjectTable>
  <topicSubjectHeader>
    <topicCell type="task"/>
    <subjectCell>
      <topicsubject keyref="goal"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="os"/>
    </subjectCell>
  </topicSubjectHeader>
  <topicSubjectRow>
    <topicCell>
      <topicref href=""/>
      <topicref href=""/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="performance"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
    </subjectCell>
  </topicSubjectRow>
  <topicSubjectRow>
    <topicCell>
      <topicref href=""/>
      <topicref href=""/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="reliability"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
      <topicapply keyref="windows"/>
    </subjectCell>
  </topicSubjectRow>
  <!-- ... -->
</topicSubjectTable>
</map>

Migration plans for backwards incompatibilities

Information architects and content strategists will need to search their content for elements, attributes, and attribute values that were removed from DITA 2.0:
  • <boolean>
  • <indextermref>
  • @alt
  • @chunk="to-navigation
  • @collection-type="tree" on <linkpool> and <linklist>
  • @collection-type on <reltable> and <relcolspec>
  • @keyref on <navref>
  • @locktitle on <topichead> and <topicgroup>
  • <image> @longdescref
  • @navtitle
  • @print
  • @query
  • @refcols
  • @role="sample" and @role="external"
  • @title <map>
  • @type="internal" and @type="external" on <lq>

The deprecated elements, attributes, and attribute values will need to be removed.

The DITA TC should offer migration advice only for deprecated elements and attributes (highlighted in the list above); we cannot guess at how users have used attribute and attribute values that were never formally defined. In addition, we cannot provide migration advice to vendors who have directly modified the OASIS-provided grammar files.

The following table outlines the basic information for migrating existing content.

Deprecated item Strategy DITA 1.3 markup DITA 2.0 markup
@alt
  1. Remove the @alt attribute.
  2. Create an <alt>element as child of <image>.
  3. Insert the value of the @alt into the <alt>element.
<image href="" alt="Two-wheeled bicycle"/>
<image href=""
<alt>Two-wheeled bicycle</alt>
</image>
<boolean> Replace the <boolean>with a <state> or <data> element.
She said "<boolean state="yes"/>" when I asked her to marry me!
Note: This is the example from the specification. It is very stupid and embarrassing. The element only had value as a specialization base.
"She said <state name="answer" value="yes"/> when I asked her to marry me!"
Note: Again, this is also a very stupid example.
@print
  1. Identify maps that use the @print attribute.
  2. Develop a subjectScheme map with appropriate values for the@deliveryTargetattribute.
  3. Replace the @printattribute with a@deliveryTargetattribute and a appropriate value.
<topicref href="" print="no">
<topicref href="" deliveryTarget="Web-only">
@navtitle
  1. Identify maps that use the @navtitleattribute.
  2. Remove the @navtitleattribute and replace it with an XML comment or a @navtitleelement, whichever is appropriate
    Note: The DITA TC suggests simply removing the @navtitle if the@locktitleattribute is not set. If the@locktitleattribute is set to "yes," add a<navtitle>element.
<subjectScheme>
  <subjectdef keys="os" navtitle="Operating system">
    <subjectdef keys="linux" navtitle="Linux">
      <subjectdef keys="redhat" navtitle="RedHat Linux"/>
      <subjectdef keys="suse" navtitle="SuSE Linux"/>
    </subjectdef>
    <subjectdef keys="windows" navtitle="Windows"/>
    <subjectdef keys="zos" navtitle="z/OS"/>
  </subjectdef>
  <enumerationdef>
    <attributedef name="platform"/>
    <subjectdef keyref="os"/>
  </enumerationdef>
</subjectScheme>
<subjectScheme>
    <subjectdef keys="os">
        <topicmeta>
            <navtitle>Operating systems</navtitle>
        </topicmeta>
        <subjectdef keys="linux">
            <topicmeta>
                <navtitle>Linux</navtitle>
            </topicmeta>
            <subjectdef keys="redhat">
                <topicmeta>
                    <navtitle>RedHat Linux</navtitle>
                </topicmeta>
            </subjectdef>
            <subjectdef keys="suse">
                <topicmeta>
                    <navtitle>SUSE Linux</navtitle>
                </topicmeta>
            </subjectdef>
        </subjectdef>
        <subjectdef keys="windows">
            <topicmeta>
                <navtitle>Windows</navtitle>
            </topicmeta>
        </subjectdef>
        <subjectdef keys="zos">
            <topicmeta>
                <navtitle>z/OS</navtitle>
            </topicmeta>
        </subjectdef>
    </subjectdef>
    <enumerationdef>
        <attributedef name="platform"/>
        <subjectdef keyref="os"/>
    </enumerationdef>
</subjectScheme>
@longdescrefon < image>
  1. Remove the @longdescrefattribute.
  2. Insert a <longdescref>element.
<image href="" longdescref="http://www.example.org/birds/puffin.html">
    <alt>Puffin picture</alt>
</image>
<image href="">
  <alt>Puffin pigure</alt>
  <longdescref href="" class="moz-txt-link-rfc2396E" href="http://www.example.org/birds/puffin.html">"http://www.example.org/birds/puffin.html"
               scope="external"
               format="html"/>
</image>
@title on <map>
  1. Remove the @title attribute.
  2. Insert a <title>element.
<map id="mybats" title="Bats>
  <topicref href="" type="topic">
    <topicref href="" type="task"/>
    <topicref href="" type="task"/>
    <topicref href="" type="concept"/>
    <topicref href="" type="reference"/>
    <topicref href="" type="reference"/>
  </topicref>
</map>
<map id="mybats">
  <title>Bats</title>
  <topicref href="" type="topic">
    <topicref href="" type="task"/>
    <topicref href="" type="task"/>
    <topicref href="" type="concept"/>
    <topicref href="" type="reference"/>
    <topicref href="" type="reference"/>
  </topicref>
</map>

DITA practitioners who have developed specialization and constraint modules that enumerate any of the deprecated elements and attributes will need to remove them from the modules.

--
Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
Principal consultant, Eberlein Consulting
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]