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: Stage 3 Proposal: Issue 33, Remove @copy-to


The stage 3 proposal for issue 33, Remove @copy-to, has been passed by all the reviewers. 

I couldn't figure out how to upload it to the new Oasis documents area so the PDF and HTML as well as the source DITA are attached. The PDF is not really useful (because of the table layout) but the HTML is good or the DITA source, of course. The DITA source is committed on the Stage 3 branch in the TC SVN repo.

The biggest new thing since this was discussed at Stage 2 is additional rules for the application of DITAVAL ref resource prefix and suffix to @appid values. Basically, where dvrResourcePrefix/Suffix apply to the effective @copy-to value in DITA 1.x, they now apply to the effective @appid value.

Cheers,

E.

--
Eliot Kimber
http://contrext.com
 

Attachment: Stage-3-Issue33-DeprecateOrRemoveCopyTo.pdf
Description: Adobe PDF document

Title: Stage 3 proposal: Feature #33

Stage 3 proposal: Feature #33

Remove the @copy-to attribute, replace with enhancements to the <resourceid> element.

Champion

Eliot Kimber

Tracking information

Event Date Links
Stage 1 proposal accepted 30 May 2017 https://lists.oasis-open.org/archives/dita/201706/msg00013.html
Stage 2 proposal submitted 13 Dec 2020 PDF: https://www.oasis-open.org/apps/org/workgroup/dita/download.php/68220/Issue33-DeprecateOrRemoveCopyTo.pdf
Stage 2 proposal discussed 15 Dec 2020 https://lists.oasis-open.org/archives/dita/202012/msg00028.html
Stage 2 proposal approved 2 Feb 2021 https://lists.oasis-open.org/archives/dita/202102/msg00010.html
Stage 3 proposal submitted to reviewers 15 March 2021 Robert Anderson, Chris Nitchie, Eric Sirois
Stage 3 proposal (this document) submitted to TC 3 May 2021 Â

Approved technical requirements

The removal of the @copy-to attribute involves the following changes to the DITA markup design:
  • Remove @copy-to from all elements
  • Add the new @appid-role attribute to <resourceid>
  • Define the @appid-role token deliverable-anchor

Dependencies or interrelated proposals

No direct dependent or interrelated proposals.

Modified grammar files

mapGroupDomain.rng (before) mapGroupDomain.rng (after)
...
<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="univ-atts"/>
      </define>
...
...
<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="univ-atts"/>
      </define>
...
...
      <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>
...
...
      <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>
...
...
      <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="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>
...
...
      <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>
...
...
      <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>
...
...
      <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>
...
...
      <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>
...
...
      <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>
...
mapGroup.mod (before) mapGroup.mod (after)
...
<!ENTITY % topichead.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %univ-atts;"
>
...
...
<!ENTITY % topichead.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               %topicref-atts;
               %univ-atts;"
>
...
...
<!ENTITY % anchorref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % anchorref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % mapref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               format
                          CDATA
                                    'ditamap'
               %topicref-atts-without-format;
               %univ-atts;"
>
...
...
<!ENTITY % mapref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
               format
                          CDATA
                                    'ditamap'
               %topicref-atts-without-format;
               %univ-atts;"
>
...
...
<!ENTITY % topicset.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % topicset.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % topicsetref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % topicsetref.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % keydef.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #REQUIRED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % keydef.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #REQUIRED
               keyscope
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
mapMod.rng (before) mapMod.rng (after)
...
      <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>
...
...
      <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>
...
map.mod (before) map.mod (after)
...
<!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;"
>
...
...
<!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;"
>
...
subjectSchemeMod.rng (before) subjectSchemeMod.rng (after_
...
      <define name="subjectdef.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>
...
...
      <define name="subjectdef.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>
...
...
      <define name="defaultSubject.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>
...
...
      <define name="defaultSubject.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>
...
subjectScheme.mod (before) subjectScheme.mod (after)
...
<!ENTITY % subjectdef.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % subjectdef.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED

...
...
<!ENTITY % defaultSubject.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
...
<!ENTITY % defaultSubject.attributes
              "navtitle
                          CDATA
                                    #IMPLIED
               href
                          CDATA
                                    #IMPLIED
               keyref
                          CDATA
                                    #IMPLIED
               keys
                          CDATA
                                    #IMPLIED
               query
                          CDATA
                                    #IMPLIED
               copy-to
                          CDATA
                                    #IMPLIED
               outputclass
                          CDATA
                                    #IMPLIED
...
metaDeclMod.rng (before) metaDeclMod.rng (after)
...
      <define name="resourceid.attributes">
        <ref name="select-atts"/>
        <ref name="localization-atts"/>
        <optional dita:since="1.3">
          <attribute name="id"/>
        </optional>
        <ref name="conref-atts"/>
        <optional>
          <attribute name="appname"/>
        </optional>
        <optional>
          <attribute name="appid" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="ux-context-string" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="ux-source-priority" dita:since="1.3"
                     a:defaultValue="topic-and-map"
            >
            <choice>
              <value>topic-and-map</value>
              <value>topic-only</value>
              <value>map-only</value>
              <value>map-takes-priority</value>
              <value>topic-takes-priority</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="ux-windowref" dita:since="1.3"/>
        </optional>
      </define>
...
...
      <define name="resourceid.attributes">
        <ref name="select-atts"/>
        <ref name="localization-atts"/>
        <optional dita:since="1.3">
          <attribute name="id"/>
        </optional>
        <ref name="conref-atts"/>
        <optional>
          <attribute name="appname"/>
        </optional>
        <optional>
          <attribute name="appid" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="appid-role" dita:since="2.0"/>
        </optional>
        <optional>
          <attribute name="ux-context-string" dita:since="1.3"/>
        </optional>
        <optional>
          <attribute name="ux-source-priority" dita:since="1.3"
                     a:defaultValue="topic-and-map"
            >
            <choice>
              <value>topic-and-map</value>
              <value>topic-only</value>
              <value>map-only</value>
              <value>map-takes-priority</value>
              <value>topic-takes-priority</value>
              <value>-dita-use-conref-target</value>
            </choice>
          </attribute>
        </optional>
        <optional>
          <attribute name="ux-windowref" dita:since="1.3"/>
        </optional>
      </define>
...
metaDecl.mod (before) metaDecl.mod (after)
...
<!ENTITY % resourceid.attributes
              "%select-atts;
               %localization-atts;
               id
                          CDATA
                                    #IMPLIED
               %conref-atts;
               appname
                          CDATA
                                    #IMPLIED
               appid
                          CDATA
                                    #IMPLIED
               ux-context-string
                          CDATA
                                    #IMPLIED
               ux-source-priority
                          (topic-and-map |
                           topic-only |
                           map-only |
                           map-takes-priority |
                           topic-takes-priority |
                           -dita-use-conref-target)
                                    'topic-and-map'
               ux-windowref
                          CDATA
                                    #IMPLIED"
>
...
...
<!ENTITY % resourceid.attributes
              "%select-atts;
               %localization-atts;
               id
                          CDATA
                                    #IMPLIED
               %conref-atts;
               appname
                          CDATA
                                    #IMPLIED
               appid
                          CDATA
                                    #IMPLIED
               appid-role
                          CDATA
                                    #IMPLIED
               ux-context-string
                          CDATA
                                    #IMPLIED
               ux-source-priority
                          (topic-and-map |
                           topic-only |
                           map-only |
                           map-takes-priority |
                           topic-takes-priority |
                           -dita-use-conref-target)
                                    'topic-and-map'
               ux-windowref
                          CDATA
                                    #IMPLIED"
>
...

Modified terminology

No new or modified terminology.

Modified specification documentation

Table 1. Modified Specification Documents
Source Document Original Changed
ditamap-attributes.dita
@copy-to

In most situations, specifies whether a duplicate version of the topic is created when it is transformed. This duplicate version can be either literal or virtual. The value of the @copy-to attribute specifies the uniform resource identifier (URI) by which the topic can be referenced by a @conref attribute, <topicref> element, or <xref> element. The duplication is a convenience for output processors that use the URI of the topic to generate the base address of the output. The @keys and @keyref attributes provide an alternative mechanism; they enable references to topics in specific-use contexts.

The @copy-to attribute also can be used to specify the name of a new chunk when topics are being chunked; it also can be used to determine the name of the stub topic that is generated from a <topicref> element that contains a title but does not specify a target. In both of those cases, no duplicate version of the topic is generated.

For information on how the @copy-to attribute can be used with the @chunk attribute, see chunking.html.

@copy-to

In most situations, specifies whether a duplicate version of the topic is created when it is transformed. This duplicate version can be either literal or virtual. The value of the @copy-to attribute specifies the uniform resource identifier (URI) by which the topic can be referenced by a @conref attribute, <topicref> element, or <xref> element. The duplication is a convenience for output processors that use the URI of the topic to generate the base address of the output. The @keys and @keyref attributes provide an alternative mechanism; they enable references to topics in specific-use contexts.

The @copy-to attribute also can be used to specify the name of a new chunk when topics are being chunked; it also can be used to determine the name of the stub topic that is generated from a <topicref> element that contains a title but does not specify a target. In both of those cases, no duplicate version of the topic is generated.

For information on how the @copy-to attribute can be used with the @chunk attribute, see chunking.html.

dtd-coding-element-types.dita
Attribute-list parameter entity

For each element type, there must be a parameter entity that declares the attributes that are available on the element. The name of the parameter entity is tagname.attributes, and the value is a list of the attributes that are used by the element type (except for @class). Consistent use and naming of the tagname.attributes parameter entity enables the use of constraint modules to restrict attributes.

For example:
<!ENTITY % topichead.attributes
 "keys CDATA #IMPLIED
  copy-to CDATA #IMPLIED
  %topicref-atts-no-locktitle;
  %univ-atts;"
>
Attribute-list parameter entity

For each element type, there must be a parameter entity that declares the attributes that are available on the element. The name of the parameter entity is tagname.attributes, and the value is a list of the attributes that are used by the element type (except for @class). Consistent use and naming of the tagname.attributes parameter entity enables the use of constraint modules to restrict attributes.

For example:
<!ENTITY % topichead.attributes
 "keys CDATA #IMPLIED
  copy-to CDATA #IMPLIED
  %topicref-atts-no-locktitle;
  %univ-atts;"
>
metadata-in-maps-and-topics.dita A map can override or supplement everything about a topic except its primary title and body content. All the metadata elements that are available in a topic also are available in a map. In addition, a map can use @copy-to provide alternate titles and a short description. The alternate titles can override their equivalent titles in the topic. A map can override or supplement everything about a topic except its primary title and body content. All the metadata elements that are available in a topic also are available in a map. In addition, a map can use @copy-to provide alternate titles and a short description. The alternate titles can override their equivalent titles in the topic.
processing-key-references-general.dita

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.

In such cases, authors can use the @copy-to attribute to specify different source URIs for each reference to a topic.

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.

In such cases, authors can use <resourceid> within topic references to specify distinct anchor componentsthe @copy-to attribute to specify different source URIs for each reference to a topic.

reconciling-topic-and-map-metadata.dita Only added to the topic when the <topicref> element specifies a @copy-to attribute. Otherwise, it applies only to links created based on this occurrence in the map. Only added to the topic when the <topicref> element specifies a @copy-to attribute. Otherwise, it aApplies only to links created based on this occurrence in the map.
relax-ng-coding-element-types.dita
<div>
  <a:documentation>LONG NAME: Topic Head</a:documentation>
  <define name="topichead.content">
    <optional>
      <ref name="topicmeta"/>
    </optional>
    <zeroOrMore>
      <choice>
        <ref name="anchor"/>
        <ref name="data.elements.incl"/>
        <ref name="navref"/>
        <ref name="topicref"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="topichead.attributes">
    <optional>
      <attribute name="keys"/>
    </optional>
    <optional>
      <attribute name="copy-to"/>
    </optional>
    <ref name="topicref-atts-no-locktitle"/>
    <ref name="univ-atts"/>
  </define>
  <define name="topichead.element">
    <element name="topichead" ditaarch:longName="Topic head">
      <a:documentation>The &lt;topichead> element provides a title-only entry in a navigation map,
        as an alternative to the fully-linked title provided by the &lt;topicref> element. 
        Category: Mapgroup elements</a:documentation>
      <ref name="topichead.attlist"/>
      <ref name="topichead.content"/>
    </element>
  </define>
  <define name="topichead.attlist" combine="interleave">
    <ref name="topichead.attributes"/>
  </define>
</div>
<div>
  <a:documentation>LONG NAME: Topic Head</a:documentation>
  <define name="topichead.content">
    <optional>
      <ref name="topicmeta"/>
    </optional>
    <zeroOrMore>
      <choice>
        <ref name="anchor"/>
        <ref name="data.elements.incl"/>
        <ref name="navref"/>
        <ref name="topicref"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="topichead.attributes">
    <optional>
      <attribute name="keys"/>
    </optional>
    <optional>
      <attribute name="copy-to"/>
    </optional>
    <ref name="topicref-atts-no-locktitle"/>
    <ref name="univ-atts"/>
  </define>
  <define name="topichead.element">
    <element name="topichead" ditaarch:longName="Topic head">
      <a:documentation>The &lt;topichead> element provides a title-only entry in a navigation map,
        as an alternative to the fully-linked title provided by the &lt;topicref> element. 
        Category: Mapgroup elements</a:documentation>
      <ref name="topichead.attlist"/>
      <ref name="topichead.content"/>
    </element>
  </define>
  <define name="topichead.attlist" combine="interleave">
    <ref name="topichead.attributes"/>
  </define>
</div>
conref-attribute.dita

Sectiondiv with ID "bookmap-booklist-attributes":

The following attributes are available on this element: , (with a narrowed definition of @href, given below), , and @copy-to from , and @keyref.

The following attributes are available on this element: , (with a narrowed definition of @href, given below), and , and @copy-to from , and @keyref.

Sectiondiv with ID "bookmap-topicrefs":

The following attributes are available on this element: , (with a narrowed definition of @href, given below), , and @copy-to from , and @keyref.

The following attributes are available on this element: , (with a narrowed definition of @href, given below), and , and @copy-to from , and @keyref.
conref-file.dita Phrase with ID "ditavalref-copyto":

If @copy-to is specified on a topic reference where <dvrResourcePrefix> or <dvrResourceSuffix> based renaming is in effect, the prefixes or suffixes are applied to the resource name inside the @copy-to attribute.

If @copy-to is specified on a topic reference where <dvrResourcePrefix> or <dvrResourceSuffix> based renaming is in effect, the prefixes or suffixes are applied to the resource name inside the @copy-to attribute.
reuse-shortdesc.dita
  • Override the short description located in the associated DITA topic, when the @copy-to attribute is specified. Processors might not implement this behavior.

    When a <shortdesc> element applies to an entire DITA map, it serves as description only.

  • Override the short description located in the associated DITA topic, when the @copy-to attribute is specified. Processors might not implement this behavior.

    When a <shortdesc> element applies to an entire DITA map, it serves as description only.

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. However, when processors render the topic itself, they SHOULD use the content of the <shortdesc> element located in the DITA topic, unless the @copy-to attribute is specified on the topic reference in the map.

The short description in the map MAY override the short description in the topic if the <topicref> element specifies a @copy-to attribute.

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. However, when processors render the topic itself, they SHOULD use the content of the <shortdesc> element located in the DITA topic, unless the @copy-to attribute is specified on the topic reference in the map.

The short description in the map MAY override the short description in the topic if the <topicref> element specifies a @copy-to attribute.

commonAttributes.dita
Topicref-element attributes
Includes attributes defined on <topicref> and on most specializations of the <topicref> element: @copy-to.
Topicref-element attributes
Includes attributes defined on <topicref> and on most specializations of the <topicref> element: @copy-to.
@copy-to (topicref-element attributes)

Use the @copy-to attribute on the <topicref> element to provide a different resource name for a particular instance of a resource referenced by the <topicref> (for example, to separate out the different versions of the topic, rather than combining them on output). If applicable, the @copy-to value can include path information. The links and navigation associated with that instance will point to a copy of the topic with the file name you specified.

Applications MAY support @copy-to for references to local non-DITA resources.

The @copy-to attribute is not supported for references to resources where the effective value for @scope is "peer" or "external".

Use the <linktext> and <shortdesc> in the <topicref>'s <topicmeta> to provide a unique name and short description for the new copy.

@copy-to (topicref-element attributes)

Use the @copy-to attribute on the <topicref> element to provide a different resource name for a particular instance of a resource referenced by the <topicref> (for example, to separate out the different versions of the topic, rather than combining them on output). If applicable, the @copy-to value can include path information. The links and navigation associated with that instance will point to a copy of the topic with the file name you specified.

Applications MAY support @copy-to for references to local non-DITA resources.

The @copy-to attribute is not supported for references to resources where the effective value for @scope is "peer" or "external".

Use the <linktext> and <shortdesc> in the <topicref>'s <topicmeta> to provide a unique name and short description for the new copy.

abstract.dita

When a <shortdesc> element occurs in a DITA map, it overrides the short description provided in the topic for the purpose of generating link previews, but does not replace the <shortdesc> in the rendered topic itself. This means that generated links to this topic will use the short description from the map for purposes any link previews provided with the link, while the rendered topic continues to use the short description inside the topic. If the <topicref> element in the DITA map also specifies the @copy-to attribute, the content of the <shortdesc> element in the DITA map also overrides the short description provided in the topic. In this case, the rendered topic itself will display the <shortdesc> contents from the map in place of the <shortdesc> originally specified in the topic. Processors might not implement this behavior.

When a <shortdesc> element occurs in a DITA map, it overrides the short description provided in the topic for the purpose of generating link previews, but does not replace the <shortdesc> in the rendered topic itself. This means that generated links to this topic will use the short description from the map for purposes any link previews provided with the link, while the rendered topic continues to use the short description inside the topic. If the <topicref> element in the DITA map also specifies the @copy-to attribute, the content of the <shortdesc> element in the DITA map also overrides the short description provided in the topic. In this case, the rendered topic itself will display the <shortdesc> contents from the map in place of the <shortdesc> originally specified in the topic. Processors might not implement this behavior.

dvrResourcePrefix.dita For map branches that are implied by <ditavalref> elements, the value of the <dvrResourcePrefix> element contributes to the effective file names of resources that are referenced within the branch. The effective resource file name starts with the value of the <dvrResourcePrefix> element. For map branches that are implied by <ditavalref> elements, the value of the <dvrResourcePrefix> element contributes to the effective file names and effective resource IDs of resources that are referenced within the branch. The effective resource file name or resource @appid value starts with the value of the <dvrResourcePrefix> element.
 <ph conkeyref="reuse-general/ditavalref-copyto"/>

Some resources are not eligible for renaming, such as those marked with scope="external". Rules for which resources are eligible for renaming, and what names are allowed as valid resource names, are the same as those for the @copy-to attribute defined in .

 <ph conkeyref="reuse-general/ditavalref-copyto"/>

Some resources are not eligible for renaming, such as those marked with scope="external". Rules for which resources are eligible for renaming, and what names are allowed as valid resource names, are the same as those for the @copy-to attribute defined in .

Example

If the <dvrResourcePrefix> is specified in the following way:
<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourcePrefix>cond01-</dvrResourcePrefix>
    </ditavalmeta>
  </ditavalref>
  <topicref href=""/>
</topicref>

Then the effective file name of the resource subtopic-01.dita is cond01-subtopic-01.dita, as though the @copy-to attribute had been specified with that value on the <topicref> element that references subtopic-01.dita. Similarly, the effective file name of resource branch-01.dita is cond01-branch-01.dita.

Example

If the <dvrResourcePrefix> is specified in the following way:
<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourcePrefix>cond01-</dvrResourcePrefix>
    </ditavalmeta>
  </ditavalref>
  <topicref href=""/>
</topicref>

Then the effective file name of the resource subtopic-01.dita is cond01-subtopic-01.dita, as though the @copy-to attribute had been specified with that value on the <topicref> element that references subtopic-01.dita. Similarly, the effective file name of resource branch-01.dita is cond01-branch-01.dita.

If a descendant topicref within the branch includes <resourceid>, the effective @appid value includes the resource prefix:

<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourcePrefix>cond01-</dvrResourcePrefix>
    </ditavalmeta>
  </ditavalref>
  <topicref href="">
    <topicmeta>
      <resourceid appid="ae35-unit-fault"/>
    </topicmeta>
  </topicref>
</topicref>

In this example the effective value of the @appid attribute for topic subtopic-01.dita in the branch produced by the condition-01 ditaval is "cond01-ae35-unit-fault"

dvrResourceSuffix.dita For map branches that are implied by <ditavalref> elements, the value of the <dvrResourceSuffix> element contributes to the effective file names of the resources that are referenced within the branch. The base part of the effective resource file name ends with the value of the <dvrResourceSuffix> element. The base part of the resource file name consists of the portion of the file name after any directory information, and before any period followed by the file extension. For example, in the original file name task/install.dita, the base portion of the file name is "install". If @copy-to is specified on a topic reference where <dvrResourcePrefix> or <dvrResourceSuffix> based renaming is in effect, the prefixes or suffixes are applied to the resource name inside the @copy-to attribute. For map branches that are implied by <ditavalref> elements, the value of the <dvrResourceSuffix> element contributes to the effective file names and effective resource IDs of the resources that are referenced within the branch. The base part of the effective resource file name or @appid value ends with the value of the <dvrResourceSuffix> element. The base part of the resource file name consists of the portion of the file name after any directory information, and before any period followed by the file extension. For example, in the original file name task/install.dita, the base portion of the file name is "install".

Some resources are not eligible for renaming, such as those marked with scope="external". Rules for which resources are eligible for renaming, and what names are allowed as valid resource names, are the same as those for the @copy-to attribute defined in , with one exception. Where @copy-to and <dvrResourcePrefix> might include path information, path information is not valid in <dvrResourceSuffix>.

Some resources are not eligible for renaming, such as those marked with scope="external". Rules for which resources are eligible for renaming, and what names are allowed as valid resource names, are the same as those for the @copy-to attribute defined in , with one exception. Where @copy-to and <dvrResourcePrefix> might include path information, path information is not valid in <dvrResourceSuffix>.

Example

If the <dvrResourceSuffix> is specified in the following way:
<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourceSuffix>-cond01</dvrResourceSuffix>
    </ditavalmeta>
  </ditavalref>
  <topicref href=""/>
</topicref>

Then the effective file name of resource topics/subtopic-01.dita is topics/subtopic-01-cond01.dita, as though the @copy-to attribute had been specified with that value on the <topicref> to topics/subtopic-01.dita. Similarly, the effective file name of resource branch-01.dita is branch-01-cond01.dita.

Example

If the <dvrResourceSuffix> is specified in the following way:
<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourceSuffix>-cond01</dvrResourceSuffix>
    </ditavalmeta>
  </ditavalref>
  <topicref href=""/>
</topicref>

Then the effective file name of resource topics/subtopic-01.dita is topics/subtopic-01-cond01.dita, as though the @copy-to attribute had been specified with that value on the <topicref> to topics/subtopic-01.dita. Similarly, the effective file name of resource branch-01.dita is branch-01-cond01.dita.

If a descendant topicref within the branch includes <resourceid>, the effective @appid value includes the resource suffix:

<topicref href="">
  <ditavalref href="">
    <ditavalmeta>
      <dvrResourceSuffix>-cond01</dvrResourceSuffix>
    </ditavalmeta>
  </ditavalref>
  <topicref href="">
    <topicmeta>
      <resourceid appid="ae35-unit-fault"/>
    </topicmeta>
  </topicref>
</topicref>

In this example the effective value of the @appid attribute for topic subtopic-01.dita in the branch produced by the condition-01 ditaval is "ae35-unit-fault-cond01"

topichead.dita The following attributes are available on this element: , (except for @locktitle), and @copy-to from . This element also uses the @scope, @format, and @type attributes from . The following attributes are available on this element: , (except for @locktitle), and @copy-to from . This element also uses the @scope, @format, and @type attributes from .
base-attributes-a-to-z.dita
<sli><xref keyref="attributes-common/copy-to"/></sli>
<sli><xref keyref="attributes-common/copy-to"/></sli>
interoperability-considerations.dita

Copy-To Processing

If copy-to processing is done before filtering, two <topicref> elements, only one of which is applicable, could specify the same @copy-to target, leading to a conflict and a potential ambiguity about which governs. If the <topicref> elements are filtered before @copy-to processing, the conflict does not occur.

Copy-To Processing

If copy-to processing is done before filtering, two <topicref> elements, only one of which is applicable, could specify the same @copy-to target, leading to a conflict and a potential ambiguity about which governs. If the <topicref> elements are filtered before @copy-to processing, the conflict does not occur.

resourceid.dita

Usage information

The @appid and @appname attributes are available to associate an ID with an application. Multiple @appid values can be associated with a single @appname value, and multiple @appname values can be associated with a single @appid value. Because the values for the @appid and @appname attributes work in combination to specify a specific ID for a specific application, each combination of values for the @appid and @appname attributes should be unique within the context of a single root map.

Usage information

The @appid and @appname attributes are available to associate an ID with an application. Multiple @appid values can be associated with a single @appname value, and multiple @appname values can be associated with a single @appid value. Because the values for the @appid and @appname attributes work in combination to specify a specific ID for a specific application, each combination of values for the @appid and @appname attributes should be unique within the context of a single root map.

 See revised reference entry for <resourceid> below.

Migration plans for backwards incompatibilities

Maps that use @copy-to will need to be migrated. Migration actions may include:

  • The @copy-to attributes must be removed.
  • Topicrefs that use @copy-to will likely need to add one or more <resourceid> elements with an @appid-role of "deliverable-anchor".

    Alternatively, the topic to which the @copy-to applied could be literally copied in the source repository and the topicref updated to refer to the new copy. This would allow existing direct URI references to the @copy-to value to continue to work as they have.

  • For uses of topics that are targets of direct URI cross references or content references add one or more keys to the topic reference and replace the direct URI references with references to the new keys.
  • Add <resourceid> elements to topic references or to topics in order to assign deliverable anchors to the uses of a topic (when used within topic references) or to a topic without regard to use context (when used within a topic's prolog).

Processors that depend on or expect the use of @copy-to, for example to signal the generation of distinct artifacts from that use of a topic, will need to implement the new @appid-role attribute.

Existing specialization and constrain modules that declare the @copy-to attribute will need to remove the attribute declaration.

Specialization and constraint modules that extend or constrain <resourceid> may need to be updated to reflect the new @appid-role attribute.

Processors may need to provide new features by which their deliverable processes can be configured and controlled to do the following:
  • Produce deliverable anchors that are consistent for deliverables generated from different versions in time of the same root map (i.e., consistent HTML filenames in HTML-based deliverables, consistent anchors in PDF documents, etc.)
  • Produce multiple or single deliverable artifacts for multiple uses of a given topic. This could be a global setting (such as DITA Open Toolkit's "ensure unique" runtime option), could be based on some convention applied to the use of key scopes, could use private metadata set on topicrefs or topics, or some processor-specific configuration facility separate from the DITA source.
  • Control how multi-part deliverables handle topicheads: as navigation-only or as though they were title-only topics. Note that in monolithic deliverables such as PDF there is normally no useful presentation distinction between topicheads and title-only topics because both should contribute to the titled hierarchy reflected in the main content flow of the deliverable.
  • Implement the use of <resourceid> with an @appid-role of "delivable-anchor" to determine deliverable URIs.

<resourceid>

A resource ID provides an identifier for applications that must use their own identifier scheme, such as context-sensitive help systems and databases.

Usage information

The @appid and @appname attributes are available to associate an ID or deliverable anchor component with an application. Multiple @appid values can be associated with a single @appname value, and multiple @appname values can be associated with a single @appid value. Because the values for the @appid and @appname attributes work in combination to specify a specific ID for a specific application, each combination of values for the @appid and @appname attributes should be unique within the context of a single root map. The @appid attribute contributes to deliverable anchors while @ux-context-string specifies an exact context-sensitive help context identifier. Effective @appid values reflect the application of any resource prefix or suffix values from <ditavalref> elements.

Processing expectations

Processors determine which <resourceid> elements apply to them, normally by examining the @appname value, if present. Processors are free to assume that a <resourceid> element with no @appname attribute applies to them. Normal filtering can also be used to control which resource IDs are used for a given deliverable, i.e., filtering on @deliveryTarget.

When the @appid-role value is "deliverable-anchor", the resource ID is intended to contribute to the effective anchor URI of the resource as delivered in the deliverables to which the resource ID applies, i.e., the base part of an HTML filename, a URI fragment identifier, a PDF anchor name, etc. Processors MAY choose to use IDs with the role "context-sensitive-help" to construct deliverable anchors in any kind of deliverable. A given deliverable component MAY have any number of anchors associated with it if the deliverable provides for multiple anchors (for example, a single topic might get multiple anchors in a PDF and multiple <a> elements with different @id values in an HTML deliverable).

When @appid-role is "deliverable-anchor", processors that accept the <resourceid> element as applying to them SHOULD use the @appid value when constructing a delivery URI for the resource. The details of how a processor uses @appid values in the construction of URIs is processor dependent. However the resulting URI SHOULD reflect as much as possible the original @appid in such a way that one can reasonably go from the URI to the <resourceid> element that may have contributed to it.

Processors MAY use other properties of the referenced resource or of the reference to the resource to construct full deliverable anchors, for example, using key scope names, key names, or source filenames to construct unique anchor values. Processors SHOULD clearly document the algorithms used to construct anchors.

To the greatest degree possible, processors SHOULD ensure that a resource ID used for the same resource and produced as the same deliverable type from the same DITA source, filtering conditions, and processor settings, will result in the same deliverable URI. This should always be true for the same version in time of the DITA source and should be true for closely-related different versions in time of the same source. For example, producing a deliverable from a new version of the DITA source where the source was revised but large structural changes were not made should result in the same deliverable URIs as for the previous version if at all possible.

The intent of these expectations is to encourage the stability of deliverable URIs over time as well as to make it possible, if not easy, to correlate URIs in deliverables back to the resource IDs from which they were derived.

Attributes

The following attributes are available on this element: and the attributes defined below.

@appname
Specifies a name for the external application that references the topic.
@appid
Specifies an ID used by an application to identify the topic.
The values used for @appid when @appid-role is "deliverable-anchor" SHOULD be limited to values that can contribute to any of the following URI components:
  • the last path component of any URI path
  • fragment identifiers
  • query parameters.
@appid values SHOULD NOT contain multiple URI path components.
@appid values should avoid specifying deliverable-specific aspects of URIs such as filename extensions. For example, for a targeted deliverable that produces HTML files as its primary deliverable component, @appid values should specify only the base filename for the delivered files, i.e., "installation-guide" not "installation-guide.html".
Note: In the general case, map authors cannot know or predict the full URIs of deliverables produced by a given deliverable producer. Therefore, deliverable-specific values such as relative paths ("../foo/bar") and filenames with extensions are very likely to be incorrect in the final deliverable. It is ultimately up to processors to manage the URI structure of the deliverable. There is no necessary relationship between either the source organization of topics and maps or the map-defined hierarchy of topics and the organizational structure of a given deliverable. Thus, making any assumption, as a map author, about where a given deliverable component will be relative to other components, especially in the face of the reuse of submaps, is risky. Even if the targeted processor produces a certain result today it may not do so tomorrow. Thus it is prudent to keep @appid values as general-purpose as possible.
@appid-role
Specifies the role the ID plays for the applications the ID is intended for. The value is a single name token. Applications MAY define their own @appid-role values, If not specified, the effective value of @appid-role is "context-sensitive-help". Applications MUST recognize the following values:
deliverable-anchor
The @appid value SHOULD be used to construct anchors for the associated resource in any deliverables associated with the <resourceid>.
context-sensitive-help
The @appid value SHOULD be used in connecting the associated resource with application components that use the resource as context sensitive help.
@ux-context-string
Specifies the value of a user-assistance context-string that is used to identify the topic.
@ux-source-priority

Specifies precedence for handling <resourceid> definitions that exist in both a map and a topic. This attribute only is valid when used within a <topicref> element in a map. The allowable values are -dita-use-conref-target and the following:

topic-and-map
Use IDs from both the topic and map.
topic-only
Use IDs from the topic only.
map-only
Use IDs from the map only.
map-takes-priority
Use the IDs from the map (if they exist); otherwise, use IDs from the topic.
topic-takes-priority
Use the IDs from the topic (if they exist); otherwise, use IDs from the map.
@ux-windowref
References the @name attribute on the <ux-window> element that is used to display the topic when called from a help API.

Example

In the following example, user-assistance context hooks are applied to three topics that are referenced from a DITA map. The second topic has two hooks for the same topic.

<map title="Widget Help">
 <topicref href="" type="concept">
   <topicref href="" type="task">
     <topicmeta>
     <resourceid appname="ua" appid="1234" ux-context-string="idh_filesave"
     ux-source-priority="topic-only" />
     </topicmeta>
   </topicref>
   <topicref href="" type="task">
     <topicmeta>
      <resourceid appname="ua" 
           appid="2345" ux-context-string="idh_filedelete" />
      <resourceid appname="ua" 
           appid="6789" ux-context-string="idh_filekill" />
     </topicmeta>
   </topicref>
   <topicref href="" type="task">
     <topicmeta>
       <resourceid appname="ua" 
            appid="5432" ux-context-string="idh_fileedit" ux-windowref="csh"  />
     </topicmeta>
   </topicref>
</topicref>
</map>

In the following example, a user-assistance context hook is defined in the prolog of a task topic. The context hook is made up of a context ID (value for @appid attribute) and a context string (value for @ux-context-string attribute). A user-assistance window profile also is referenced for this topic.

<task id="fedt">
 <title>Editing a File</title>
 <prolog>
   <resourceid appname="ua" 
         appid="5432" ux-context-string="idh_fileedit" ux-windowref="csh" />
 </prolog>
 <taskbody>
  <context>After you have created a new file, you can edit it.</context> 
  <steps>
   <step><cmd>Open...</cmd></step>
   <step><cmd>Edit...</cmd></step>
   <step><cmd>Save...</cmd></step>
  </steps>
 </taskbody>
</task>
In the following examples, intended anchor components are defined for two different topicrefs to the same topic. The same topic is used in two different key scopes, where each scope represents the documentation for a different model of the same base device.
<map>
  ...
  <topicref keyscope="model-01" keys="operation" keyref="topic-0100">
    ...
    <topicref keys="replace-cartridge" keyref="topic-0014">
      <topicmeta>
        <resourceid appid="replace_cartridge_model_01"
          appid-role="deliverable-anchor"
        />
      </topicmet>
    </topicref>
    ...
  </topicref>
  <topicref keyscope="model-02" keys="operation" keyref="topic-0200">
    ...
    <topicref keys="replace-cartridge" keyref="topic-0014">
      <topicmeta>
        <resourceid appid="replace_cartridge_model_02"
          appid-role="deliverable-anchor"
        />
      </topicmet>
    </topicref>
    ...
  </topicref>
  ...
</map>

For this content the HTML deliverable might generate two HTML files for the "replace cartridge" topic with the names "replace_cartridge_model_01.html" and "replace_cartridge_model_02.html" and for PDF the PDF anchors might just be the @appid values (as PDF anchors are just unique strings).

Because this map uses key scopes, the author could choose to let the key scopes determine the full deliverable anchors, allowing the two topicrefs to use the same @appid values:
<map>
  ...
  <topicref keyscope="model-01" keys="operation" keyref="topic-0100">
    ...
    <topicref keys="replace-cartridge" keyref="topic-0014">
      <topicmeta>
        <resourceid appid="replace_cartridge"
          appid-role="deliverable-anchor"
        />
      </topicmet>
    </topicref>
    ...
  </topicref>
  <topicref keyscope="model-02" keys="operation" keyref="topic-0200">
    ...
    <topicref keys="replace-cartridge" keyref="topic-0014">
      <topicmeta>
        <resourceid appid="replace_cartridge"
          appid-role="deliverable-anchor"
        />
      </topicmet>
    </topicref>
    ...
  </topicref>
  ...
</map>

This approach requires that the processors implement the use of key scope names to construct deliverable anchors, making it less general over all but more convenient for authors.

This example could be further simplified by moving the now-identical <resourceid> elements from the topicrefs into the topic itself:
<topic id="topic-0200">
  <title>Replace the cartridge</title>
  <topicmeta>
    <resourceid appid="replace_cartridge"
          appid-role="deliverable-anchor"
     />
  </topicmeta>
  ...
</topic>

The topic now specifies a base resource ID that, when combined with any applicable key scopes, should result in use-specific deliverable anchors without the need to specify the resource IDs in the referencing maps.

Attachment: Stage-3-Issue33-DeprecateOrRemoveCopyTo.dita
Description: Binary data



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