Home : Home : Warfare Centers : NSWC Carderock : Resources : Technical Information Systems : Navy XML/SGML Repository : DTDs & Schemas : NAVSEA Class 2 ETM DTD : Early Revisions : Rev C Changes
Changes from August 14, 1995 version

1. GENERAL COMMENTS

1.1 This NAVSEA ETM Class 2 Revision C (August 30, 1996) DTD is the NAVSEA 043 APPROVED DTD for MIL-STD-38784-like ETMS.

1.2 The purpose of the first 3 changes is to make the NAVSEAC2 Rev C DTD as downward compatible as possible so that the majority of instances tagged to the four previous NAVSEA DTDs (the "Philly2" DTD dated January 1, 1994; the NAVSEAC2 original release DTD dated September 14,1994; the NAVSEAC2 Revision A DTD dated July 14, 1995; and the NAVSEAC2 Revision B DTD dated August 14, 1995) will parse against the NAVSEAC2 Revision C DTD.

The other 12 changes were submitted by the following organizations: NSWCCD-DTMB Code 183, NSWCCD-SSES Code 1351, Puget Sound Naval Shipyard Detachment Boston, Naval Undersea Warfare Center Code 411, Lockheed Martin Corporation - Syracuse, and Electric Boat. All of these recommended changes were reviewed by NSWCCD-DTMB Code 183 with regard to their technical merit and for consistency with the intent of the NAVSEA Class 2 DTD before they were sent to NAVSEA 043 for administrative approval.

1.3 The changes from the NAVSEA ETM Class 2 Revision B (August 14, 1995) DTD are detailed below.

2. SPECIFIC COMMENTS

2.1 The default value of "xidtype" attribute in the Revision B DTD

          xidtype (figure | table | text) #REQUIRED

has been changed to #IMPLIED in the Revision C DTD to maintain compatibility with previously tagged instances.

2.2 The "colspec" attribute "colwidth" in the Revision B DTD

          colwidth NUMBER #REQUIRED

has been redefined as

          colwidth CDATA #IMPLIED

in the Revision C DTD to provide greater flexibility in applications and to maintain compatibility with previously tagged instances.

2.3 In the "Philly2" DTD and the original release of the NAVSEAC2 DTD, the "front" element was declared as

<!ELEMENT front - - (title?, docno, (fsection | graphic | graphicalts)+)
          +(ftnote | brk | external | xelemloc | figure | table |
          chart)>

In Revisions A and B of the NAVSEAC2 DTD, the "front" element was declared as

<!ELEMENT front - - ((idinfo | warnsum | chgsheet | lep | promul | chgrec
          | foreword | preface | intro | contents | illuslist |
          tablelist | safesum | howtouse)+,
          (fsection | graphic | graphicalts)+)
          +(ftnote | brk | external | xelemloc | figure | table |
          chart)>

The "front" element has been declared as

<!ELEMENT front - - (((title?, docno) | (idinfo | warnsum | chgsheet |
          | lep | promul| chgrec | foreword | preface
          | intro | contents | illuslist | tablelist | safesum
          | howtouse )+),
          (fsection | graphic | graphicalts)+)
          +(ftnote | brk | external | xelemloc | figure | table |
          chart)>

in the Revision C DTD to maintain compatibility with "front" contents in existing instances of the "Philly2" and the other NAVSEAC2 DTDs.

2.4 The "warnsum" (warning summary) element and the "safesum" (safety summary) element now have the same attributes

          tocentry %yesorno; "0"
          id ID #IMPLIED
          label CDATA #IMPLIED
          chglvl NUMBER #IMPLIED
          delchlvl NUMBER #IMPLIED
          inschlvl NUMBER #IMPLIED
          security (u | c | s | ts) #IMPLIED

in the Revision C DTD for the sake of consistency.

2.5 The "deflist" (definition list) element

          <!ELEMENT deflist - - (title?, (term, def)+)>

its "term" (definition list term) subelement

          <!ELEMENT term - - (%text;) +(xref)>

and its "def" (definition list definition) subelement

          <!ELEMENT def - - (para | paraalts)+>

now have the same attributes

          id ID #IMPLIED
          security (u | c | s | ts) #IMPLIED

in the Revision C DTD for consistency in maintaining security classifications.

2.6 The "entrytbl" (row entry table) element and the "entry" (row entry) now have the following 14 attributes in common

          colname NMTOKEN #IMPLIED
          spanname NMTOKEN #IMPLIED
          namest NMTOKEN #IMPLIED
          nameend NMTOKEN #IMPLIED
          colsep %yesorno; #IMPLIED
          rowsep %yesorno; #IMPLIED
          align (left | right | center |
          justify | char) #IMPLIED
          charoff NUTOKEN #IMPLIED
          char CDATA #IMPLIED
          chglvl NUMBER #IMPLIED
          delchlvl NUMBER #IMPLIED
          inschlvl NUMBER #IMPLIED
          id ID #IMPLIED
          security (u | c | s | ts) #IMPLIED

in the Revision C DTD. Several "entrybl" attributes were added since the former "entrytbl" attributes did not completely define an entry table. Also the three change level attributes and the "id" attribute of the "entry" element were included for the sake of consistency.

In addition the "entrytbl" element has two other attributes "cols" and "tgroupstyle"

          cols NUMBER #REQUIRED
          tgroupstyle NMTOKEN #IMPLIED

The "entry" element has an additional attribute

          morerows NUMBER "0"

2.7 The "change" attribute

          change (add | delete) #IMPLIED

has been added to the the "change" element's attributes

          level NUMBER #IMPLIED
          mark %yesorno; #IMPLIED

in the Revision C DTD to specify the nature of the change.

2.8 The inclusions exception

+(ftnote | brk | databrk | figure | external | xelemloc | chart | table)

has been moved from the "chapter" element up to its containing "body" element in the Revision C DTD. This will allow tables and figures in the "body" element so that all "paras" (paragraph texts) in the body matter can contain them. In the Revision B DTD, if a document consists of sections that are not in a chapter, then a paragraph text can not contain a figure or a table. Figures and tables are inclusions to the "front" element, so all paragraph texts in the front matter can contain them. As regards the rear matter, only the paragraph texts in glossaries can not contain included figures and tables.

2.9 In the Revision B DTD, the "chglvl", "delchlvl", and "inschlvl" attributes occur together (for the "foreword", "preface", "intro", "promul", 'chgrec", "safesum", "howtouse", "fsection", "chapter", "section", "subsection", "rsection", "appendix", "para0", "subpara1" through "subpara7","step1" through "step7", "step1r" through "step7r", "seqlist", "item", "figure", "table", "chart", "warning", "caution", "note", "para", and "external" elements) except in the cases noted below. For consistency, the following changes were made.

a. The "delchlvl" and "inschlvl" attributes have been added to the "entry" attributes.

b. The "chglvl" attribute has been added to the "warnsum" attributes.

c. These three attributes were added to the "randlist" attributes.

2.10 According to the Revision B DTD definition of the "chapter" element, a chapter must have one or more sections OR one or more "para0s" (primary paragraphs, i.e., "(section+ | para0+)" but not a non-null mixture of sections and para0s, i.e., "(section | para0)+". However, the definition of the "section" element "(subsection | para0)*" allows such a (possibly null) mixture of subsections and para0s. Accordingly, the "section" element is re-defined as "(subsection+ | para0+)" in the Revision C DTD for consistency. This defines a section as having one or more subsections OR one or more para0s and also eliminates the possibility of null "section" element content.

2.11 The Revision B DTD "chapter" element

<!ELEMENT chapter - - (title?, (%paracon;)*, (section+ | para0+))>

is re-defined in the Revision C DTD as

<!ELEMENT chapter - - (title?, (%paracon;)*, intro?, (section+ | para0+))>

to include the element "intro" (introduction) to accommodate the presence of introductory data in the chapters of some documents.

However, the joint "foreword", "preface", "intro" ELEMENT definition

<!ELEMENT ( ... intro) - o ((%paracon;)*, para0*) -(indxflag)
          +(ftnote | brk | figure | external | xelemloc |
          table | chart)>

in the Revision C DTD does not require an "intro" end-tag for "intro" content.

This could cause a problem when "intro" content in "chapter" content consists of "para0" content and is not terminated with an "intro" end-tag. Suppose such unterminated "intro" content is followed by "para0" contents intended to correspond to the "para0+" choice of the "(section+ | para0+)" option for "chapter" content. However, an SGML parser will associate these last "para0" contents with the "intro" content token "para0*" with the result that the "chapter" content model will not be satisfied and the instance will not parse against the DTD.

Accordingly, the following comment declaration

<!-- WARNING: THE "INTRO" END-TAG SHALL ALWAYS BE PROVIDED - EVEN THOUGH THE "INTRO" ELEMENT DECLARATION ALLOWS ITS OMISSION - TO PREVENT POSSIBLE PARSING PROBLEMS WITH REGARD TO THE "PARA0+" OPTION FOLLOWING "INTRO?" IN THE "CHAPTER" CONTENT MODEL. -->

is placed before the joint "foreword", "preface", "intro" definition in the Revision C DTD.

2.12 The occurrence of the "stepx" element for x=1, ... 6 is changed from the content token "(stepx, stepx+)?" in the Revision B DTD to that of "stepx*" in the Revision C DTD. The "stepx" occurrence in the Revision B DTD is that of either no steps or two or more steps at each level of a procedure. In some cases, there is a need to allow only one step at procedure levels. This change has been implemented in the "para0" and the different "subpara" element definitions as well as those of the different "step" elements in the Revision C DTD.

For example, the Revision B DTD "para0" element

<!ELEMENT para0 - - (title?, (%paracon;)*, (step1, step1+)?, subpara1*)>

is redefined in the Revision C DTD as

<!ELEMENT para0 - - (title?, (%paracon;)*, step1*, subpara1*)>

Similar changes were made to all other elements listed above containing "(stepx, stepx+)?" in their content models.

2.13 The "ISOgrk1" character set

<!ENTITY % ISOgrk1 PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN">

is declared and referenced in the Revision C DTD to provide a greater variety of Greek symbolic notation.

2.14 The "pgwide" attribute

          pgwide %yesorno; #IMPLIED

has been added to the "table" and "chart" attributes in the Revision C DTD to provide greater flexibility in table layout.

2.15 The following provisions were made in the Revision C DTD for the spanning of table columns.

a. The "span" element was removed and replaced with the CALS "spanspec" element.

b. The "spanspec" element was introduced as follows.

<! ELEMENT spanspec - o EMPTY>

<! ATTLIST spanspec namest NMTOKEN #REQUIRED
           nameend NMTOKEN #REQUIRED
           spanname NMTOKEN #REQUIRED
           align (left | right | center
           justify | char) "center"
           charoff NUTOKEN #IMPLIED
           char CDATA #IMPLIED
           colsep %yesorno; #IMPLIED
           rowsep %yesorno; #IMPLIED>

<! ELEMENT tgroup - - (colspec*, spanspec*, thead?, tbody, tfoot?)>

c. The "spanname" attribute

          spanname NMTOKEN #IMPLIED

was added to the "entry" and "entrytbl" attributes to enable "spanspec" use.