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: Bugs reported on current DITA DTDs and Schemas


As mentioned during our last meeting, here is a list of DTD/Schema bugs that have been identified since the last bug patch in our files area (OASIS-DITAsubmission-01.zip). I recommend making these corrections as part of the DTD edit cycle that is coming up. Corresponding updates to the Language Reference will be required. These proposed bug fixes are in addition to the edits already directed by decisions of the OASIS DITA TC (formal use of Exchange table model, rename DTDVersion attribute, file renamings to match spec, etc.).

Recommended bug fixes going into OASIS DITA 1.0 (short list):
1. Make the body element optional in base topic as well as for task, concept, and reference
2. Make the keyref attribute CDATA instead of NMTOKEN so we can use URIs as keys
3. Retire the boolean element
4. Insert <desc> into <xref> -- for equivalence between xref and topicref
5. Choice is missing a number of elements -- should have same content model as <li>
6. Expand map DTD so meta elements are equivalent to topic meta
7. Add mapref to map -- an element that would allow nested referencing of maps


Details of proposed changes:

1. Make the body element optional in base topic as well as for task, concept, and reference

Original Context:
topic.mod:
<!ELEMENT topic (%title;, (%titlealts;)?, (%shortdesc;)?, (%prolog;)?, %body;, (%related-links;)?, (%topic-info-types;)* )>

(also for task, concept, and reference)

Changes in Context:
<!ELEMENT topic (%title;, (%titlealts;)?, (%shortdesc;)?, (%prolog;)?, (%body;)?, (%related-links;)?, (%topic-info-types;)* )>


2. Make the keyref attribute CDATA instead of NMTOKEN so we can use URIs as keys

Original Context:
DTD - keyref NMTOKEN #IMPLIED
XML Schema - <xs:attribute name="keyref" type="xs:NMTOKEN"/>

Changes in Context:
DTD - keyref CDATA #IMPLIED
meta_xml.mod, 5
programming-domain.mod, 5
software-domain.mod, 3
task.mod, 1
topic.mod, 9
ui-domain.mod, 4
utilities-domain.mod, 2

XML Schema - <xs:attribute name="keyref" type="xs:string"/>
schema\map.mod, 1
schema\meta_xml.mod, 5
schema\programming-domain.mod,
schema\software-domain.mod, 3
schema\topic.mod, 8
schema\ui-domain.mod, 4
schema\utilities-domain.mod, 2


3. Retire the boolean element

Label in the submission as deprecated, with a pointer to using state instead.

Original Context:
DTD - topic.mod:
<!-- %boolean is deprecated. use %state instead. -->
<!ENTITY % basic.ph "%ph;|%term;|%xref;|%cite;|%q;|%boolean;|%state;|%keyword;|%tm;">
<!ENTITY % basic.ph.noxref "%ph;|%term;| %q;|%boolean;|%state;|%keyword;|%tm;">
<!ENTITY % basic.ph.notm "%ph;|%term;|%xref;|%cite;|%q;|%boolean;|%state;|%keyword;">

<!ELEMENT boolean EMPTY>
<!ATTLIST boolean state (yes|no) #REQUIRED
%univ-atts;
outputclass CDATA #IMPLIED
>

topic_defn.ent:
<!ENTITY % boolean "boolean">

topic_class.ent:
<!ATTLIST boolean %global-atts; class CDATA "- topic/boolean ">


Changes in Context:
DTD - topic.mod:
<!ENTITY % basic.ph "%ph;|%term;|%xref;|%cite;|%q;|%state;|%keyword;|%tm;">
<!ENTITY % basic.ph.noxref "%ph;|%term;| %q;|%state;|%keyword;|%tm;">
<!ENTITY % basic.ph.notm "%ph;|%term;|%xref;|%cite;|%q;|%state;|%keyword;">

Remove boolean element decleration from topic.mod
Remove boolean entity decleration from topic_defn.ent
Remove boolean attlist decleration from topic_class.ent


4. Insert <desc> into <xref> -- for equivalence between xref and topicref

Original Context:
topic.mod:
<!ELEMENT xref (%xreftext.cnt;)*>

<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="xreftext.cnt"/>
</xs:choice>

Changes in Context:
topic.mod:
<!ELEMENT xref (%xreftext.cnt;|%desc;)*>

<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="xreftext.cnt"/>
<xs:group ref="desc" />
</xs:choice>


5. Choice is missing a number of elements -- should have same content model as <li>

Original Context:
task.mod:
<!ELEMENT choice (#PCDATA|%basic.ph;)*>
<xs:choice>
<xs:group ref="basic.ph"/>
</xs:choice>

Changes in Context:
task.mod:
<!ELEMENT choice (#PCDATA|%basic.ph;|%basic.block; |%itemgroup;| %txt.incl;)*>
<!ATTLIST choice &univ-atts; >
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block"/>
<xs:group ref="itemgroup"/>
<xs:group ref="txt.incl"/>
</xs:choice>
<xs:attributeGroup ref="univ-atts" />


6. Expand map DTD so meta elements are equivalent to topic meta
(needs separate description)

7. Add mapref to map -- an element that would allow nested referencing of maps
(needs separate description)

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



Regards,
--
Don Day <dond@us.ibm.com>
Chair, OASIS DITA Technical Committee
IBM Lead DITA Architect
11501 Burnet Rd., MS 9037D018, Austin TX 78758
Ph. 512-838-8550 (T/L 678-8550)

"Where is the wisdom we have lost in knowledge?
Where is the knowledge we have lost in information?"
--T.S. Eliot



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