diff --git a/doctypes/dtd/base/map.mod b/doctypes/dtd/base/map.mod index 45aa0878..58edab51 100644 --- a/doctypes/dtd/base/map.mod +++ b/doctypes/dtd/base/map.mod @@ -133,6 +133,9 @@ PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Map//EN" CDATA #IMPLIED keyscope + CDATA + #IMPLIED + subjectrefs CDATA #IMPLIED" > @@ -283,6 +286,9 @@ PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Map//EN" CDATA #IMPLIED keyscope + CDATA + #IMPLIED + subjectrefs CDATA #IMPLIED" > diff --git a/doctypes/dtd/base/mapGroup.mod b/doctypes/dtd/base/mapGroup.mod index 8d704aae..3c0689ea 100644 --- a/doctypes/dtd/base/mapGroup.mod +++ b/doctypes/dtd/base/mapGroup.mod @@ -176,6 +176,9 @@ chunk CDATA #IMPLIED + subjectrefs + CDATA + #IMPLIED %univ-atts;" > diff --git a/doctypes/rng/base/mapGroupDomain.rng b/doctypes/rng/base/mapGroupDomain.rng index c253df12..3853c3bc 100644 --- a/doctypes/rng/base/mapGroupDomain.rng +++ b/doctypes/rng/base/mapGroupDomain.rng @@ -287,6 +287,9 @@ PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Map Group Domain//EN" + + + diff --git a/doctypes/rng/base/mapMod.rng b/doctypes/rng/base/mapMod.rng index d27133dd..e86abd0e 100644 --- a/doctypes/rng/base/mapMod.rng +++ b/doctypes/rng/base/mapMod.rng @@ -339,6 +339,9 @@ PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Map//EN" + + + @@ -473,6 +476,9 @@ PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Map//EN" + + + diff --git a/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita b/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita index f8b0e628..1019690e 100644 --- a/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita +++ b/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita @@ -23,6 +23,7 @@
  • translate
  • processing-role
  • cascade
  • +
  • subjectrefs
  • As with values that cascade within a map, the cascading is additive if the attribute permits multiple values, diff --git a/specification/archSpec/base/example-cascade-map-to-map-elements.dita b/specification/archSpec/base/example-cascade-map-to-map-elements.dita index d75f14f2..2a8b5a99 100644 --- a/specification/archSpec/base/example-cascade-map-to-map-elements.dita +++ b/specification/archSpec/base/example-cascade-map-to-map-elements.dita @@ -17,56 +17,44 @@ - -

    Consider the following code examples:

    - - <filepath>Root map</filepath> - <map> - <title>Acme User Guide</title> - <topicref href="acme-defects.ditamap" format="ditamap"> - <topicmeta> - <shortdesc>This map contains information about Acme defects.</shortdesc> - </topicmeta> - </topicref> - <topicref href="installing.ditamap" format="ditamap"> - <topicmeta> - <audience type="installer"/> - </topicmeta> - </topicref> - <mapref href="troubleshooting.ditamap"/> - <mapref href="reference.ditamap"/> -</map> - - - <filepath>installing.ditamap</filepath> - <map> - <title>Installation topics</title> - <topicmeta> - <audience type="administrator"/> - </topicmeta> - <topicref href="install-1.dita"/> - <topicref href="install-2.dita"/> -</map> - - -

    When the root map is processed, the following behavior - occurs:

    - + +

    Assume the following references in + test.ditamap:<map> + <topicref href="a.ditamap" format="ditamap" toc="no"/> + <mapref href="b.ditamap" audience="developer"/> + <mapref href="c.ditamap#branch2" platform="myPlatform"/> + <mapref href="d.ditamap" subjectrefs="puzzles"/> +</map>

    + +
    diff --git a/specification/archSpec/base/example-subject-scheme-map-used-to-define-taxonomic-subjects.dita b/specification/archSpec/base/example-subject-scheme-map-used-to-define-taxonomic-subjects.dita new file mode 100644 index 00000000..1e35c889 --- /dev/null +++ b/specification/archSpec/base/example-subject-scheme-map-used-to-define-taxonomic-subjects.dita @@ -0,0 +1,69 @@ + + + + Example: a subject scheme map used to define taxonomic + subjects + A subject scheme map can be used to define taxonomic subjects. + Once defined, the subjects can be referenced by specifying a + subjectrefs attribute on a + topicref element. + + + + examplessubject scheme + mapsdefining taxonomic + subjects + + + + +

    The following subject scheme map defines a set of subjects that are + used to classify content:

    + <subjectScheme> + <subjectdef keys="content-types"> + <subjectdef keys="conceptual-material"/> + <subjectdef keys="reference"/> + <subjectdef keys="tutorial"/> + </subjectdef> + <subjectdef keys="operating-systems"> + <subjectdef keys="linux"/> + <subjectdef keys="macosx"/> + <subjectdef keys="windows"/> + </subjectdef> + <subjectdef keys="user-tasks"> + <subjectdef keys="administering"/> + <subjectdef keys="developing"/> + <subjectdef keys="installing"/> + <subjectdef keys="troubleshooting"/> + </subjectdef> +</subjectScheme> +

    The keys assigned to the subject definitions can be referenced by + specifying the subjectrefs attribute on topic + references in a navigation map:

    + <map> +<title>User assistance for the Acme Widget</title> +<!-- ... --> +<topicref keyref="install-overview" subjectrefs="installing"> + <topicref keyref="install-linux"/> + <topicref keyref="install-macosx"/> + <topicref keyref="install-windows"/> + <topicref keyref="install-troubleshooting" subjectrefs="troubleshooting"/> +</topicref> +<!-- ... --> +</map> +

    Because the subjectrefs attribute cascades, the + effective value of the above markup is the same as the following + markup:

    + <map> +<title>User assistance for the Acme Widget</title> +<!-- ... --> +<topicref keyref="install-overview" subjectrefs="installing"> + <topicref keyref="install-linux" subjectrefs="installing"/> + <topicref keyref="install-macosx" subjectrefs="installing"/> + <topicref keyref="install-windows" subjectrefs="installing"/> + <topicref keyref="install-troubleshooting" subjectrefs="installing troubleshooting"/> +</topicref> +<!-- ... --> +</map> +
    +
    diff --git a/specification/archSpec/base/example-subjectrefs-attribute-with-key-scopes.dita b/specification/archSpec/base/example-subjectrefs-attribute-with-key-scopes.dita new file mode 100644 index 00000000..b896d288 --- /dev/null +++ b/specification/archSpec/base/example-subjectrefs-attribute-with-key-scopes.dita @@ -0,0 +1,60 @@ + + + + Example: <xmlatt>subjectrefs</xmlatt> attribute with key + scopes + + + +

    The following is content that Eliot Kimber suggested be included + in the DITA 2.0 specification as part of the review of proposal + #647. It has not been edited.

    +
    +

    A subject scheme map may be included in a map as either a normal sub + map or as a peer root map and associated with a key scope on the map + reference.

    + + A subject scheme map included as a sub map with a key scope: + <map> + <title>User assistance for the Acme Widget</title> + <!-- ... --> + <mapref keyscope="subjects" href="subjectschemes/subject-scheme-01.ditamap"/> + <topicref keyref="install-overview" subjectrefs="subjects.installing"> + <topicref keyref="install-linux"/> + <topicref keyref="install-macosx"/> + <topicref keyref="install-windows"/> + <topicref keyref="install-troubleshooting" subjectrefs="subjects.troubleshooting"/> + </topicref> + <!-- ... --> +</map> + +

    The keys defined in referenced subject scheme map are included in + the referencing map's key space. References to the subject keys must + be scope qualified (i.e., "subjects.installing"). Putting the subject + scheme keys in a key scope ensures that the keys defined in the + subject scheme do not conflict with any keys defined elsewhere in the + referencing map (although the referencing map could still override + any keys defined in the subject scheme map).

    +

    The subject scheme map can also be referenced as a peer-scope root + map in a key scope:

    + <map> + <title>User assistance for the Acme Widget</title> + <!-- ... --> + <mapref keyscope="subjects" scope="peer" href="subjectschemes/subject-scheme-01.ditamap"/> + <topicref keyref="install-overview" subjectrefs="subjects.installing"> + <topicref keyref="install-linux"/> + <topicref keyref="install-macosx"/> + <topicref keyref="install-windows"/> + <topicref keyref="install-troubleshooting" subjectrefs="subjects.troubleshooting"/> + </topicref> + <!-- ... --> +</map> +

    As a peer map, the keys defined in the subject scheme map are not + included in the referencing map's key space but may be resolved using + normal cross-deliverable key reference resolution. Processors that + support cross-deliverable linking may also choose to resolve + references from @"subjectrefs" to keys in peer subject scheme maps, + for example to report keys specified on @"subjectrefs" that cannot be + found in the peer subject scheme map.

    +
    +
    diff --git a/specification/archSpec/base/examples-keys.ditamap b/specification/archSpec/base/examples-keys.ditamap index cc9d188d..5014a92c 100644 --- a/specification/archSpec/base/examples-keys.ditamap +++ b/specification/archSpec/base/examples-keys.ditamap @@ -21,5 +21,7 @@ + diff --git a/specification/archSpec/base/subject-scheme-maps.ditamap b/specification/archSpec/base/subject-scheme-maps.ditamap index 6eb2f93a..f213b182 100644 --- a/specification/archSpec/base/subject-scheme-maps.ditamap +++ b/specification/archSpec/base/subject-scheme-maps.ditamap @@ -7,13 +7,12 @@ - - - + + - - diff --git a/specification/archSpec/base/subjectSchema.dita b/specification/archSpec/base/subjectSchema.dita index 109078de..9d164c67 100644 --- a/specification/archSpec/base/subjectSchema.dita +++ b/specification/archSpec/base/subjectSchema.dita @@ -34,12 +34,10 @@ value that is not one of the controlled values. Controlled values can also be used to select content for filtering and flagging at build time.

    -

    Subject definitions are classifications and - sub-classifications that compose a tree. Subject definitions provide semantics that can - be used in conjunction with taxonomies and ontologies. In conjunction with the - classification domain, subject definitions can be used for retrieval and traversal of - the content at run time when used with information viewing applications that provide - such functionality.

    +

    Subject definitions are classifications and + sub-classifications that compose a tree. Subject definitions provide + semantics that can be used in conjunction with taxonomies and + ontologies.

    Key references to controlled values are resolved to a key definition using the same precedence rules as apply to any other key. However, once a key is resolved to a controlled value, that key reference does not typically result in diff --git a/specification/archSpec/base/subjectrefs-attribute.dita b/specification/archSpec/base/subjectrefs-attribute.dita new file mode 100644 index 00000000..d11b9798 --- /dev/null +++ b/specification/archSpec/base/subjectrefs-attribute.dita @@ -0,0 +1,24 @@ + + + + The <xmlatt>subjectrefs</xmlatt> attribute + The subjectrefs attribute specifies one or + more keys that are defined by a subject definition in a subject scheme + map. Multiple values are separated by white space. + + + + subjectrefsoverview + + + + +

    The subjectrefs attribute cascades. When specified + on a topic reference, the subjectrefs attribute + associates the referenced resource with subjects that are defined in + subject scheme maps.

    +

    The DITA 2.0 specification does not indicate processing expectations + for the subjectrefs attribute. The DITA Technical + Committee expects to specify such expectations in the future.

    + + diff --git a/specification/common/conref-file.dita b/specification/common/conref-file.dita index dd50ee1d..416e6a96 100644 --- a/specification/common/conref-file.dita +++ b/specification/common/conref-file.dita @@ -126,6 +126,7 @@ to alert more birds to the presence of your bird feeder.</shortdesc> translate
  • processing-role
  • cascade
  • +
  • subjectrefs
  • diff --git a/specification/dita-2.0-key-definitions-cover-pages.ditamap b/specification/dita-2.0-key-definitions-cover-pages.ditamap index 8e2d4f03..6198b4c5 100644 --- a/specification/dita-2.0-key-definitions-cover-pages.ditamap +++ b/specification/dita-2.0-key-definitions-cover-pages.ditamap @@ -13,14 +13,14 @@ - Working Draft 27 + Working Draft 28 - 20 June 2022 + 29 July 2022 diff --git a/specification/langRef/attributes/commonAttributes.dita b/specification/langRef/attributes/commonAttributes.dita index bf2d4ab0..3355bb18 100644 --- a/specification/langRef/attributes/commonAttributes.dita +++ b/specification/langRef/attributes/commonAttributes.dita @@ -38,7 +38,8 @@ chunk, collection-type, keyscope, linking, processing-role, search, - and toc.

    + toc, and subjectrefs.

    @@ -756,6 +757,13 @@ @props/audience @props/deliveryTarget @base/newBaseAtt. + +
    subjectrefs (common + map attributes)
    +
    Specifies one or more keys that are each defined by a subject + definition in a subject scheme map. Multiple values are + separated by white space.
    +
    title-role
    diff --git a/specification/langRef/base-elements.ditamap b/specification/langRef/base-elements.ditamap index e2373842..4ccf7617 100644 --- a/specification/langRef/base-elements.ditamap +++ b/specification/langRef/base-elements.ditamap @@ -20,7 +20,6 @@ - diff --git a/specification/non-normative/revision-history.dita b/specification/non-normative/revision-history.dita index b7e23514..0e1de288 100644 --- a/specification/non-normative/revision-history.dita +++ b/specification/non-normative/revision-history.dita @@ -138,6 +138,14 @@
  • #297 Allow example in more places
  • + + 13 + 29 July 2022 + Kristen James Eberlein + Generated working draft # 28. Implementation of #647, + "Replace classification domain with the + subjectrefs attribute". +