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.