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: make @outputclass universal

Stage 3 proposal: Feature #17 make @outputclass universal

Make @outputclass a universal attribute on all elements defined as part of the DITA specification.


Robert D Anderson

Tracking information
Stage 1 proposal acceptedJan 24 2017https://lists.oasis-open.org/archives/dita/201701/msg00097.html
Stage 2 proposal submittedJune 12 2018
Stage 2 proposal discussedJuly 11 2018https://www.oasis-open.org/committees/download.php/61199/minutes20170711.txt
Stage 2 proposal approvedJuly 18 2018https://www.oasis-open.org/committees/document.php?document_id=61257&wg_abbrev=dita
Stage 3 proposal submitted to reviewersFebruary 28 2018Sent to Dawn Stevens, Scott Hudson
Stage 3 proposal (this document) submittedFebruary 28 2018https://tools.oasis-open.org/version-control/browse/wsvn/dita/trunk/DITA-2.0/stage-3/Issue17-stage3-universalOutputclass.dita

Approved technical requirements

Apart from the <dita> container element, add @outputclass to every element in the specification that does not already allow that attribute.

Dependencies or interrelated proposals

Any proposal for a new element in DITA 2.0 needs to ensure that @outputclass is allowed.

The original LwDITA proposal anticipated that @outputclass would be available everywhere but had to be adjusted when that was determined to be incorrect. A new version of LwDITA may want to make use of this attribute on those elements if it has not already done so.

Modified Grammar files
The @outputclass attribute should be declared for any element that does not already have it, as follows:
<optional><attribute name="outputclass"></optional>
The most reliable way to do this is to add it to the universal attribute group – assuming the other groups are not modified, this will make:
<define name="univ-atts">
     <ref name="id-atts"/>
     <ref name="select-atts"/>
     <ref name="localization-atts"/>
       <attribute name="outputclass">


All modules that independently declare @outputclass will need to be updated, EXCEPT for those that also need to override univ-atts (for example, <topic> and its specializations must override univ-atts in order to make @id required). The attribute is currently declared in a large number of files, and can likely be removed with a good search/replace _expression_. The @outputclass attribute is currently declared in 46 independent RNG files from DITA 1.3, so this proposal effectively updates every module that declares elements to remove one or more instances of the line above. Those in the base package that will need updates include:

DTD updates are comparable. The following attribute declaration will be needed in the univ-atts declaration:
outputclass     CDATA      #IMPLIED

The same declaration will need to be removed from every element that currently uses it; as with RNG, this will effectively mean removing that same declaration from every module that declares elements.

Modified terminology

No new or updated terminology.

Modified specification documentation

Migration plans for backwards incompatibilities

Most structural or domain specialization modules that declare elements will need to be updated to remove declarations of @outputclass.

There is not currently a plan for an automated way to accomplish this for DTDs, due to the wide variety of coding practices for DTD modules. XSD and RNG could likely be automated with a search/replace algorithm that handles complex regular expressions, but this may result in removing the attribute from elements that do not use the universal attribute group.

Current suggestion for migration instructions is as follows (to be clarified with addition details based on our own experience updating the OASIS shells):

Note: As Dawn pointed out during her review of my first stage 3 draft, the definition of XML itself technically allows you to declare an attribute twice, but it's considered a warning. This could reduce the urgency of migration by some small amount because this change alone will not break anything. That said, the warnings you're likely to receive from your editors and build systems will likely push you to migrate quite quickly, and long term a migration is definitely worth the relatively small effort of removing declarations.


Robert D. Anderson
DITA-OT lead and Co-editor DITA 1.3 specification,
Digital Services Group

E-mail: robander@us.ibm.com
Digital Services Group
11501 BURNET RD,, TX, 78758-3400, AUSTIN, USA

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