<!DOCTYPE doc PUBLIC "-//USA-DOD//DTD TEMPLATE 900102//EN" [

<!-- NOTE:  In order to parse the following Document Type Declaration Subset 
alone, append the 
                 Document Type Declaration statement below to the 
beginning of the file:

         <!DOCTYPE doc [

                 and the associated "]>" to the end of the file.       -->

<!-- ENTITY DECLARATIONS -->

<!-- MATH PACKAGE INCLUSION: To include the standard math package in a 
document, include in the document's document type declaration subset the 
following declaration:

<!ENTITY % math "include" >

-->

<!ENTITY % math "ignore" >

<![ %math; [

  <!ENTITY % mathpac PUBLIC 

          "-//USA-DOD//DTD SUP MIL-M-28001 MATHPACK 900102//EN">

   %mathpac;

]]>

<!-- NOTE: Additionally required character sets must be explicitly designated 
           in the document's document type declaration subset. -->

<!-- The following entity is referenced in %text; -->

<![ %math; [

  <!ENTITY % mathtxt " | dfref | f " > 

<!-- only if %math; is "include" -->

]]>

  <!ENTITY % mathtxt "" >            

<!-- otherwise -->

<!-- The following entity is referenced in %paracon; -->

<![ %math; [

  <!ENTITY % mathcon " | df | dfg " > 

<!-- only if %math; is "include" -->

]]>

  <!ENTITY % mathcon "" >            

<!-- ATTRIBUTE DEFINITION COLLECTIONS AND PARTS THEREOF -->

<!-- Many attributes have a Boolean value. They are
uniformly given the declared value "%yesorno;"
rather than NUMBER to indicate this intent. 0
is interpreted as false; all other numbers as
true. -->

<!ENTITY % yesorno "NUMBER" >

<!-- The itemid attribute group provides the ability to describe the text to which the attribute group pertains by the identifiers associated with the part to which the text refers. This group is also used within the standard body attributes (described below). -->

<!ENTITY % itemid
"sssn CDATA #IMPLIED
unit CDATA #IMPLIED
module CDATA #IMPLIED
lru CDATA #IMPLIED
assem CDATA #IMPLIED
subassem CDATA #IMPLIED
ssubassm CDATA #IMPLIED
compon CDATA #IMPLIED
partno CDATA #IMPLIED
refdes CDATA #IMPLIED" >

<!-- The content attribute group provides the ability to describe the text to which the attribute group pertains by the type of content, applicability, skilltrack, figures, and tables associated with the text. This group is also used within the standard body attributes (described below). -->

<!ENTITY % content
"texttype NUMBER #IMPLIED
applictype IDREFS #IMPLIED
applicrefid IDREFS #IMPLIED
skilltrk NMTOKENS #IMPLIED
contype (desc | proc) #IMPLIED
assocfig IDREFS #IMPLIED
assoctab IDREFS #IMPLIED" >

<!-- Some elements get a collection of attributes
known collectively as body attributes. The
%bodyatt entity contains all of the appropriate
attribute definitions. -->

<!ENTITY % bodyatt
"id ID #IMPLIED
inschlvl NUTOKENS #IMPLIED
delchlvl NUTOKENS #IMPLIED
label CDATA #IMPLIED
hcp %yesorno; '0'
%itemid;
%content;" >

<!-- Many elements get a security-related collection
of attributes. The %secur entity contains all
of the appropriate attribute definitions. -->

<!ENTITY % secur
"security (u | c | s | ts) #IMPLIED
restrict NMTOKENS #IMPLIED
release NMTOKENS #IMPLIED
codeword NMTOKENS #IMPLIED
scilevel %yesorno; '0'
diglyph NMTOKENS #IMPLIED" >

<!-- %branch is one option in the name list group
declared value of the branch attribute of <doc>.
It may be redefined (beginning with a connector) to provide 
for additional acceptable values for this attribute.  -->

<!ENTITY % branch "af | navy | army | mc | dla | cg" >

<!-- %erptype is one option in the name list group
declared value of the errptype attribute of <errpt>.
It may be redefined (beginning with a connector) to provide 
for additional acceptable values for this attribute.  -->

<!ENTITY % erptype "tmder | afto22 | da2028" >

<!-- %notctype is one option in the name list group
declared value of the notctype attribute of <notice>.
It may be redefined (beginning with a connector) to provide 
for additional acceptable values for this attribute.  -->

<!ENTITY % notctype "dist | auth | fuou | branch | pgclass | 
disclos | supersed | effdate | suppl | nopg | noclaspg | warning | 
destr | safesup | opersup | maintsup" >

<!-- %sigtype is the declared value of the sigtype
attribute of <sigblk>. It may be redefined to
include additional or remove existing acceptable
values for this attribute. -->

<!ENTITY % sigtype "preparer | approval | review | concur | other" >

<!-- ELEMENT TYPE COLLECTIONS AND MODEL GROUPS -->

<!-- TITLES -->

<!-- Some elements which have either required or optional titles may at times 
also require shortened forms of the title. If shorttened titles are to be 
allowed in the instance then the parameter entity %shortitleuse; 
should be redefined as "include". -->

<!ENTITY % shortitleuse "ignore" >

<![ %shortitleuse; [

   <!ENTITY % shortitle ", shorttitle?" >

]]>

<!ENTITY % shortitle "" >

<!-- RUNNING TEXT -->

<!-- Various numbers embedded in running text are
tagged to permit easy identification for data
base work. They generally have no special
display formatting requirements. -->

<!ENTITY % nums "(partno | serno | partdesc | smrcode | nsn | modelno |
sssn | refdes | docno | figindex | lin | faultcode)" >

<!--  NOTE:  regarding the adaptation of this document type declaration set
for use with other document classes.  Per the rules of FIPS PUB 152, regarding 
the timing of the resolution of parameter entities, the replacement text 
of the following parameter entity cannot be used directly within a content 
model, due to the parameter entity references within it.   -->

<!ENTITY % text "((#PCDATA | ftnref | xref | indxflag | verbatim | emergency | 
change | emphasis | applicabil | graphic | subscrpt | supscrpt |
%nums; | tool | testeq | material | torqueval | extref | 
dataiden  %mathtxt;)+)" >

<!-- PARAGRAPH CONTENT -->

<!-- Various types of lists can occur within the body
of a paragraph, and generally where one can occur, so can any other type. -->

<!ENTITY % list "(seqlist | randlist | deflist)" >

<!-- Unnumbered paragraph content consists of text, with optionally intermixed 
lists, applicability definitions (and math displays, 
if the math package is included).  -->

<!ENTITY % paracon "((%text; | %list; | applicdef  %mathcon;)+)" >

<!--  (UNNUMBERED) PARAGRAPHS AND PARAGRAPH-LIKE ELEMENTS -->

<!-- Special paragraphs usually are just an appropriately labelled paragraph, but in certain cases they can have more than one paragraph within them. -->

<!ENTITY % spcpara "(warning | caution | note)" >

<!--  NUMBERED/TITLED "PARAGRAPHS" AND OTHER SUBSECTION-LIKE ELEMENTS  -->

<!-- Step content consists of optional warnings, cautions, and 
notes (in that order, and applying to the following paragraphs), 
and then an unnumbered paragraph, followed optionally by notes.  
Numbered paragraph content consists of a title, the same special 
and unnumbered paragraphs followed optionally by notes as are 
in step content, and finally optional steps. -->

<!ENTITY % stepcon "((specpara | para)+)" >

<!--  NOTE:  regarding the adaptation of this document type declaration set
for use with other document classes.  Per the rules of FIPS PUB 152, regarding 
the timing of the resolution of parameter entities, the replacement text 
of the following parameter entity cannot be used directly within a content 
model, due to the parameter entity references within it.   -->

<!ENTITY % titles "((title %shortitle;)?)" >

<!--  NOTE:  regarding the adaptation of this document type declaration set
for use with other document classes.  Per the rules of FIPS PUB 152, regarding 
the timing of the resolution of parameter entities, the replacement text 
of the following parameter entity cannot be used directly within a content 
model, due to the parameter entity references within it.   -->

<!ENTITY % nparcon "(%titles;, (specpara | para)+)" >

<!--  FRONT, BODY, REAR MATTER ELEMENTS  -->

<!-- The content models for <front>, <idinfo>, <section>, and <rear> 
are entities so that they can be redefined. -->

<!ENTITY % frnt "((idinfo | warnsum | chgsheet | lep | promul | chgrec |
foreword | preface | intro | contents | illuslist | tablelist | safesum | howtouse )+)" >

<!ENTITY % idinf "((pubno | prepubno | nsn | chgnum | revnum | titleblk | mfr 
| contractno | docmfr | seal | notice | downgrd | pubdate | chgdate)+)" >

<!-- %chgsht is a parameter entity reference for 
the content model of the element type chgsheet. It 
is used as is or it may be changed for use with a specific
class of documents. An example of how it may be changed
would be if the system were to generate the change sheet.
Then the content model would be changed to a declared 
content of EMPTY. -->

<!ENTITY % chgsht "(chgnum, address, date, prtitle, para?, chglist)" >

<!ENTITY % sect "(%titles;, para0*)" >

<!ENTITY % rr "((appendix | glossary | index | errpt | foldsect)+)" >

<!-- MISCELLANEOUS -->

<!-- SPECIAL CHARACTER SETS -->

<!-- The following public character entity sets are
required to meet the general requirements of
most service applications. Exceptional character
requirements may be met by selecting additional
public character entity sets from Appendix C.
Those exceptional requirements must be separately
specified in the contract (refer to paragraph
6.2). -->

<!ENTITY % ISOlat1 PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" >

<!ENTITY % ISOpub PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN" >

<!ENTITY % ISOgrk3 PUBLIC "ISO 8879-1986//ENTITIES Greek Symbols//EN" >

<!ENTITY % ISOnum PUBLIC
"ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN" >

<!ENTITY % ISOtech PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN" >

%ISOlat1; %ISOpub; %ISOgrk3; %ISOnum; %ISOtech;

<!-- ELEMENT DEFINITIONS -->

<!-- BIG ELEMENTS (BIGGER THAN FRONT MATTER, BODY, OR REAR MATTER) -->

<!-- A document contains volumes, a volume contains
parts, a part has front matter, body, and rear
matter. -->

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT doc           - -              

(volume+ | docpart+ | (front?, body?, rear?)) 

+(ftnote | pgbrk | brk | arbtext | hrule) >
 
<!ATTLIST doc   branch           

(%branch;)

        #REQUIRED 
        docid            

CDATA 

        #IMPLIED 
        docstat          

(revision | change | prelim | draft | formal) 

        "formal" 
        mantype          

(standard | card | decal) 

        "standard" 
        %secur;          

        >

<!ELEMENT volume                - -              

(docpart+ | (front?, body?, rear?)) 

>
 
<!ATTLIST volume        tocentry                 

%yesorno; 

        "1" 
        %bodyatt;                

        %secur;          

        >

<!ELEMENT docpart               - -              

(front?, body?, rear?) 

>
 
<!ATTLIST docpart       %bodyatt;                

        %secur;          

        >

<!-- FRONT MATTER AND ELEMENTS PECULIAR THERETO -->
 
<!-- Front matter contains identifying information for the document: 
title and cover pages, foreword, various lists, 
and various special-purpose types of information
interspersed. The %frnt; entity permits specialization to a particular
variant DOCTYPE. -->
 
<!-- entity % frnt "(idinfo | warnsum | chgsheet | lep | promul | chgrec |
foreword | preface | intro | contents | illuslist | tablelist | safesum | howtouse )+" -->
 
<!ELEMENT front         - -              

(%frnt;) 

>
 
<!ATTLIST front %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!-- entity % idinf "(pubno | prepubno | nsn | chgnum | revnum | 
titleblk | mfr | contractno | docmfr | 
seal | notice | downgrd | pubdate | chgdate)+" -->
 
<!ELEMENT idinfo                - -              

(%idinf;) 

>
 
<!ATTLIST idinfo        %secur;          

        >

<!ELEMENT (pubno | prepubno)            - o              

(user?, docno)+ 

>
 
<!ATTLIST (pubno | prepubno)    %secur;          

        >

<!ELEMENT user          - o              

(%text;) 

>
 
<!ATTLIST user  %secur;          

        >

<!ELEMENT titleblk              - -              

(revnum | volnum | docpartn | doctype | maintlvl | prtitle | stitle)+ 

>
 
<!ATTLIST titleblk      %secur;          

        >

<!ELEMENT (volnum | docpartn | revnum |
                   doctype | maintlvl | chgnum)         - o              

(%text;) 

>
 
<!ATTLIST (volnum | docpartn | revnum |
                   doctype | maintlvl | chgnum) %secur;          

        >

<!ELEMENT prtitle               - -              

(nomen | eqpttype | modelno | partno | pslist | nsn | serno | subject)+ 

>
 
<!ATTLIST prtitle       %secur;          

        >

<!ELEMENT nomen         - o              

(%text;) 

>
 
<!ATTLIST nomen %secur;          

        >

<!ELEMENT eqpttype              - o              

(%text;) 

>
 
<!ATTLIST eqpttype      %secur;          

        >

<!ELEMENT pslist                - -              

(partno, serno)+

>
 
<!ATTLIST pslist        %secur;          

        >

<!-- partno, serno, modelno, nsn found in %nums under "TEXT". -->
 
<!ELEMENT subject               - o              

(%text;) 

-(graphic) >
 
<!ATTLIST subject       %secur;          

        >

<!-- end <prtitle>, continue <titleblk> . -->
 
<!ELEMENT stitle                - o              

(%text;) 

>
 
<!ATTLIST stitle        %secur;          

        >

<!-- end <titleblk>, continue <idinfo> . -->
 
<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT (mfr | contractno | docmfr)           - o              

(%text;) 

>
 
<!ATTLIST (mfr | contractno | docmfr)   %secur;          

        >

<!ELEMENT seal          - o              

(graphic) 

>
 
<!-- A <notice> usually contains standard text as defined
in entity declarations in Appendix C, e.g.:
<notice notctype="dist">&distrib;</notice>.  
If a notice containing other text is needed, the
text should be directly included as the content
of the <notice> element, e.g.:
<notice notctype="auth">Published by Authority of the 
Secretary of Defense</notice>. -->
 
<!ELEMENT notice                - o              

(para+ | %paracon;) 

+(table) >
 
<!ATTLIST notice        notctype                 

(%notctype;)

        #IMPLIED 
        %secur;          

        >

<!ELEMENT downgrd               - o              

(authrty | phrase | oadr | date)+

>
 
<!ATTLIST downgrd       %secur;          

        >

<!ELEMENT authrty               - o              

(%text;) 

>
 
<!ATTLIST authrty       %secur;          

        >

<!ELEMENT (phrase | oadr)               - o              

(%text;) 

>
 
<!ATTLIST (phrase | oadr)       %secur;          

        >

<!-- end <downgrd>, continue <idinfo> . -->
 
<!ELEMENT (pubdate | chgdate)           - o              

(%text;) 

>
 
<!ATTLIST (pubdate | chgdate)   %secur;          

        >

<!-- end <idinfo>, continue <front> -->
 
<!ELEMENT lep           - o              

EMPTY 

>
 
<!ELEMENT warnsum               - o              

(para0 | para | warning)+

>
 
<!ATTLIST warnsum       inschlvl                 

NUTOKENS 

        #IMPLIED 
        delchlvl                 

NUTOKENS 

        #IMPLIED 
        tocentry                 

%yesorno; 

        "0" 
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT chgsheet              - o              

(%chgsht;) 

>
 
<!ATTLIST chgsheet      %secur;          
        >

<!ELEMENT chglist               - o              

(removepg, insertpg)+ 

>
 
<!ATTLIST chglist       %secur;          
        >

<!ELEMENT (removepg | insertpg)         - o              

(#PCDATA) 

>
 
<!ATTLIST (removepg | insertpg) %secur;          
        >

<!ELEMENT promul                - -              

(title?, para*, (sigblk | graphic)*) 

>
 
<!ATTLIST promul        %bodyatt;                

        %secur;          

        >

<!ELEMENT chgrec                - o              

(table | graphic) 

>
 
<!ATTLIST chgrec        %bodyatt;                

        %secur;          

        >

<!ELEMENT (foreword | preface | intro)          - o              

(para0 | para | symbsect | abbrsect | %spcpara; | internatlstd | sigblk)+

+(figure | table | chart) >
 
<!ATTLIST (foreword | preface | intro)  tocentry                 

%yesorno; 

        "1" 
        %bodyatt;                

        %secur;          

        >

<!ELEMENT (symbsect | abbrsect)         - o              

(deflist)+ 

>
 
<!ATTLIST (symbsect | abbrsect) %bodyatt;                

        %secur;          

        >

<!ELEMENT internatlstd          - o              

(para+ | %paracon;) 

>
 
<!ATTLIST internatlstd  %secur;          

        >

<!ELEMENT sigblk                - o              

(purpose | graphic | signer | position | organiz | address | date)+ 

>
 
<!ATTLIST sigblk        sigtype          

(%sigtype;)

        #IMPLIED 
        %secur;          

        >

<!ELEMENT purpose               - o              

(%text;) 

>
 
<!ATTLIST purpose       %secur;          

        >

<!ELEMENT signer                - o              

(%text;) 

>
 
<!ATTLIST signer        %secur;          

        >

<!ELEMENT (position | organiz | address)                - o              

(%text;) 

>
 
<!ATTLIST (position | organiz | address)        %secur;          

        >

<!-- end <sigblk> and <foreword>, 
continue <front> . -->
 
<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT howtouse              - o              

(%sect; | para+ | %paracon;) 

>
 
<!ATTLIST howtouse      tocentry                 

%yesorno; 

        "0" 
        shortentry               

%yesorno; 

        "0"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT contents              - o              

EMPTY 

>
 
<!ATTLIST contents      shortentry               

%yesorno; 

        "0">

<!ELEMENT (illuslist | tablelist)               - o              

EMPTY 

>
 
<!ATTLIST (illuslist | tablelist)       tocentry                 

%yesorno; 

        "1"
        shortentry               

%yesorno; 

        "0">

<!ELEMENT safesum               - o              

(para | precaut | warning | caution)+

>
 
<!ATTLIST safesum       tocentry                 

%yesorno; 

        "0"
        shortentry               

%yesorno; 

        "0"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT precaut               - o              

(%text;) 

>
 
<!ATTLIST precaut       %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!-- BODY AND ELEMENTS PECULIAR THERETO -->
 
<!-- The body contains two or more chapters, a chapter contains
two or more sections, a section contains numbered paragraphs.  
If there is only one, its content may
be used as the content of the next higher level, 
except that a one-chapter body cannot have sections. -->
 
<!ELEMENT body          - -              

(chapter | section | ftnsec | para0 | ddunit)+ 

>
 
<!ATTLIST body  %secur;          

        >

<!ELEMENT chapter               - -              

(%titles;, ((section | ftnsec)+ | para0+))

>
 
<!ATTLIST chapter       tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0" 
        %bodyatt;                

        %secur;          

        >

<!--ENTITY % sect "(%titles;, para0*)" -->
 
<!ELEMENT (section | ftnsec)            - -              

(%sect;) 

>
 
<!ATTLIST (section | ftnsec)    tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0" 
        %bodyatt;                

        %secur;          

        >
<!ELEMENT ddunit                - -              

(ddintro | ddsheet)+ 

>
 
<!ATTLIST ddunit        portion          

(section | chapter) 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT ddintro               - o              

(title | dddesc | ddindex)+ 

>
 
<!ATTLIST ddintro       %secur;          

        >

<!ELEMENT dddesc                - o              

(para0 | para)+

>
 
<!ATTLIST dddesc        %secur;          

        >

<!ELEMENT ddindex               - o              

(para0 | para | ddlist)+ 

>
 
<!ATTLIST ddindex       %secur;          

        >

<!ELEMENT ddlist                - o              

(partno | pgno)+ 

>
 
<!ATTLIST ddlist        %secur;          

        >

<!ELEMENT pgno          - o              

(%text;) 

>
 
<!ATTLIST pgno  %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT ddsheet               - -              

(partname | partno | modelno | serno | eqpttype | para0 | para)+ 

>
 
<!ATTLIST ddsheet       %secur;          

        >

<!ELEMENT partname              - o              

(%text;) 

>
 
<!ATTLIST partname      %secur;          

        >

<!-- REAR MATTER AND ELEMENTS PECULIAR THERETO -->
 
<!-- entity % rr "(appendix | glossary | index | errpt | foldsect)+" -->
 
<!ELEMENT rear          - -              

(%rr;) 

>
 
<!ATTLIST rear  %secur;          

        >

<!ELEMENT appendix              - -              

(%titles;, ((section | ftnsec)+ | para0+)) 

>
 
<!ATTLIST appendix      tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT glossary              - -              

(para | deflist)+ 

>
 
<!ATTLIST glossary      tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0"
        %secur;          

        >

<!ELEMENT index         - o              

EMPTY 

>
 
<!ATTLIST index shortentry               

%yesorno; 

        "0">

<!ELEMENT errpt         - o              

EMPTY

>
 
<!ATTLIST errpt erptype          

(%erptype;)

        #REQUIRED
        %secur;          

        >

<!ELEMENT foldsect              - -              

(foldout+) 

>
 
<!ATTLIST foldsect      %secur;          

        >

<!ELEMENT foldout               - o              

(figure | table | chart) 

>
 
<!ATTLIST foldout       pgstyle          

NUMBER 

        #IMPLIED 
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!--  NUMBERED/TITLED PARAGRAPHS AND OTHER SUBSECTION-LIKE ELEMENTS  -->
 
<!--  <!ENTITY % nparcon "(%titles;, (specpara | para)+)"  -->
 
<!ELEMENT specpara              - -              

(warning*, caution*, note*, para, note*)

>
 
<!ATTLIST specpara      %secur;          

        >

<!ELEMENT para0         - o              

(%nparcon;, step1*, subpara1*) 

+(figure | chart | table) >
 
<!ATTLIST para0 tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT subpara1              - o              

(%nparcon;, (step1+ | step2+)?, subpara2*) 

>
 
<!ATTLIST (subpara1 | subpara2 | 

subpara3 | subpara4 | subpara5 | 

subpara6 | subpara7 | subpara8) tocentry                 

%yesorno; 

        "0" 
        shortentry               

%yesorno; 

        "0"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT subpara2              - o              

(%nparcon;, (step1+ | step3+)?, subpara3*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT subpara3              - o              

(%nparcon;, (step1+ | step4+)?, subpara4*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT subpara4              - o              

(%nparcon;, (step1+ | step5+)?, subpara5*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT subpara5              - o              

(%nparcon;, (step1+ | step6+)?, subpara6*) 

>
 
<!-- See above for attribute list. -->
 
<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT subpara6              - o              

(%nparcon;, (step1+ | step7+)?, subpara7*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT subpara7              - o              

(%nparcon;, (step1+ | step8+)?, subpara8*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT subpara8              - o              

(%nparcon;, step1* ) 

>
 
<!-- See above for attribute list. -->
 
<!--  ENTITY % stepcon  "(specpara | para)+"  -->

<!ELEMENT step1         - o              

(%stepcon;, step2*) 

>
 
<!ATTLIST (step1 | step2 | step3 | step4 |
 step5 | step6 | step7 | step8) %bodyatt;                

        %secur;          

        >

<!ELEMENT step2         - o              

(%stepcon;, step3*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step3         - o              

(%stepcon;, step4*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step4         - o              

(%stepcon;, step5*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step5         - o              

(%stepcon;, step6*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step6         - o              

(%stepcon;, step7*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step7         - o              

(%stepcon;, step8*) 

>
 
<!-- See above for attribute list. -->
 
<!ELEMENT step8         - o              

(%stepcon;) 

>
 
<!-- See above for attribute list. -->
 
<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!-- (UNNUMBERED) PARAGRAPHS AND PARAGRAPH-LIKE ELEMENTS -->
 
<!--  (Unnumbered) paragraphs contain running text, possibly interrupted 
by lists, applicability definitions, and (if mathpack is included) displayed 
formulae.  Occasionally, a paragraph may consist solely of a list, 
definition, or formula without any running text.  -->
 
<!--  entity % paracon "((%text; | %list; | applicdef %mathcon;)+)"  -->
 
<!ELEMENT para          - o              

(%paracon;) 

>
 
<!ATTLIST para  %bodyatt;                

        %secur;          

        >

<!-- Various types of lists can occur within the body of a paragraph, and generally where one can occur, so can any other type. -->
 
<!-- entity % list "(seqlist | randlist | deflist)" -->
 
<!ELEMENT (seqlist | randlist)          - -              

(title?, item+) 

>
 
<!ATTLIST seqlist       prefix           

CDATA 

        #IMPLIED 
        numstyle                 

(arabic | romanuc | romanlc | alphauc | alphalc)

        #IMPLIED 
        %bodyatt;                

        %secur;          

        >

<!ATTLIST randlist      prefix           

CDATA 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT item          - o              

(para | %paracon;)+

+(table) >
 
<!ATTLIST item  id               

ID

        #IMPLIED 
        label            

CDATA 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT deflist               - -              

(title?, (term, def)+) 

>
 
<!ATTLIST deflist       %secur;          

        >

<!ELEMENT term          - o              

(%text;)

>
 
<!ATTLIST term  %secur;          

        >

<!ELEMENT def           - o              

(para | %paracon;)+ 

+(table) >
 
<!ATTLIST def   %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT applicdef             - -              

(title?, applichd, applicid+) 

>
 
<!ATTLIST applicdef     id               

ID

        #REQUIRED
        %secur;          

        >

<!ELEMENT applichd              - o              

(term, def) 

>
 
<!ATTLIST applichd      applictype               

IDREF

        #IMPLIED
        %secur;          

        >

<!ELEMENT applicid              - o              

(term, def) 

>
 
<!ATTLIST applicid      id               

ID

        #REQUIRED
        applictype               

IDREF

        #IMPLIED
        %secur;          

>
 
<!-- SPECIAL PARAGRAPH ELEMENTS   -->
 
<!-- entity % spcpara "(warning | caution | note)" -->
 
<!ELEMENT %spcpara;             - -              

(graphic | para | %list;)+ 

-(figure | table | chart) >
 
<!ATTLIST warning       type             

CDATA 

        #IMPLIED 
        xrefid           

IDREF 

        #IMPLIED 
        vital            

%yesorno; 

        "0" 
        %secur;          

        >

<!ATTLIST (caution | note)      type             

CDATA 

        #IMPLIED 
        xrefid           

IDREF 

        #IMPLIED 
        %secur;          

        >

<!-- RUNNING TEXT -->
 
<!-- Various numbers embedded in running text are
tagged to permit easy identification for data
base work. They generally have no special
display formatting requirements. -->
 
<!ELEMENT xref          - o              

EMPTY 

>
 
<!ATTLIST xref  xrefid           

IDREF 

        #REQUIRED 
        xidtype          

(text | figure | table) 

        #REQUIRED 
        pretext          

CDATA

        #IMPLIED 
        posttext                 

CDATA

        #IMPLIED 
        %secur;          

        >

<!ELEMENT extref                - o              

EMPTY 

>
 
<!ATTLIST extref        docno            

CDATA 

        #IMPLIED 
        pretext          

CDATA

        #IMPLIED 
        posttext                 

CDATA

        #IMPLIED 
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT graphic               - o              

EMPTY 

>
 
<!ATTLIST graphic       boardno          

ENTITY 

        #REQUIRED
        graphsty                 

NMTOKEN 

        #IMPLIED
        llcordra                 

NUTOKEN 

        #IMPLIED 
        rucordra                 

NUTOKEN 

        #IMPLIED 
        reprowid                 

NUTOKEN 

        #IMPLIED 
        reprodep                 

NUTOKEN 

        #IMPLIED 
        hscale           

NUTOKEN 

        #IMPLIED 
        vscale           

NUTOKEN 

        #IMPLIED 
        scalefit                 

%yesorno; 

        #IMPLIED 
        hplace           

(left | right | center | none) 

        #IMPLIED 
        vplace           

(top | middle | bottom | non) 

        #IMPLIED 
        coordst          

NUTOKEN 

        #IMPLIED 
        coordend                 

NUTOKEN 

        #IMPLIED 
        rotation                 

NUMBER 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT (subscrpt | supscrpt)         - -              

RCDATA

>
 
<!ATTLIST (subscrpt | supscrpt) %secur;          

        >

<!ELEMENT (tool | testeq | material | torqueval)                - -              

(%text;) 

>
 
<!ATTLIST (tool | testeq | material | torqueval)        %content;                

        %secur;          

        >

<!ELEMENT dataiden              - -              

(%text;) 

>
 
<!ATTLIST dataiden      %bodyatt;                

        %secur;          

        >

<!ELEMENT ftnref                - o              

EMPTY 

>
 
<!ATTLIST ftnref        xrefid           

IDREF 

        #REQUIRED    >

<!ELEMENT indxflag              - o              

EMPTY 

>
 
<!ATTLIST indxflag      ref1             

CDATA 

        #IMPLIED 
        ref2             

CDATA 

        #IMPLIED 
        ref3             

CDATA 

        #IMPLIED 
        ref4             

CDATA 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT verbatim              - -              

CDATA

>
 
<!ATTLIST verbatim      allowbrk                 

%yesorno;

        "1" 
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT emergency             - -              

(%text;)

>
 
<!ELEMENT change                - -              

(%text;)

>
 
<!ATTLIST change        level            

NUMBER 

        #IMPLIED 
        change           

(add | delete) 

        #IMPLIED 
        mark             

%yesorno; 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT emphasis              - -              

(%text;)

>
 
<!ATTLIST emphasis      emph             

NAMES 

        #REQUIRED       >

<!ELEMENT applicabil            - -              

(%text;)

>
 
<!ATTLIST applicabil    applicrefid              

IDREFS 

        #REQUIRED 
        applictype               

IDREFS 

        #IMPLIED 
        %secur;          

        >

<!-- Various numbers embedded in running text are
tagged to permit easy identification for data
base work. They generally have no special
display formatting requirements. -->
 
<!-- entity % nums "(partno | serno | modelno | nsn | partdesc | smrcode | 
sssn | refdes | lin | docno | faultcode | figindex)" -->
 
<!ELEMENT (partno | serno | modelno | nsn | partdesc |
              smrcode | sssn | refdes | lin | docno)            - -              

(%text;) 

>
 
<!ATTLIST (partno | serno | modelno | nsn | partdesc |
              smrcode | sssn | refdes | lin | docno)    %secur;          

        >

<!ELEMENT faultcode             - -              

(%text;) 

>
 
<!ATTLIST faultcode     %content;                

        %secur;          

        >

<!ELEMENT figindex              - o              

(xref, callout) 

>
 
<!ATTLIST figindex      %secur;          

        >

<!ELEMENT callout               - -              

(#PCDATA | graphic) 

>
 
<!ATTLIST callout       assocfig                 

IDREF 

        #IMPLIED        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!-- MISCELLANEOUS ELEMENTS -->
 
<!-- <pgbrk>, <brk>, <arbtext>, and <hrule>, are similar to various elements 
in %text;, but are permitted more universally. <date> 
and <title> are special purpose but oft-used elements that occur in numerous
content models. -->
 
<!ELEMENT pgbrk         - o              

EMPTY 

>
 
<!ATTLIST pgbrk pgnumber                 

CDATA 

        #IMPLIED 
        chglevel                 

NUMBER 

        #IMPLIED        >

<!ELEMENT brk           - o              

EMPTY 

>
 
<!ATTLIST brk   type             

(col | line | epg | opg | npg) 

        "line"  >

<!ELEMENT arbtext               - -              

RCDATA 

>
 
<!ATTLIST arbtext       arbtype          

NUMBER 

        #IMPLIED        >

<!ELEMENT hrule         - o              

EMPTY 

>
 
<!ATTLIST hrule thick            

NUTOKEN 

        #REQUIRED 
        offset           

NUTOKEN 

        #REQUIRED 
        length           

NMTOKEN 

        #REQUIRED       >

<!ELEMENT date          - o              

(%text;) 

>
 
<!ATTLIST date  %secur;          

        >

<!ELEMENT (title | shorttitle)          - o              

(%text;) 

-(table | chart | figure) >
 
<!ATTLIST (title | shorttitle)  %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!-- FLOATING ELEMENTS -->
 
<!-- Floating elements are only loosely attached to
a particular point in the text. They are
printed/displayed somewhere nearby their "attachment point"; just 
where is prescribed by
the FOSI. <figure>s,  <table>s, and <chart>s
have their "attachment point" at the point
where they occur in the text. The location of
the body of a <ftnote> is independent of its
"attachment point"; each <ftnote> is identified
by an ID value, and the "attachment point" is
the (first occurring) <ftnref> that references
that ID. -->
 
<!ELEMENT figure                - -              

(%titles;, (subfig+ | ((graphic | macrograph) & table? & legend?) | verbatim))

>
 
<!ATTLIST figure        tocentry                 

%yesorno; 

        "1" 
        shortentry               

%yesorno; 

        "0"
        place            

NUMBER 

        #IMPLIED 
        orient           

(port | land)

        "port" 
        %bodyatt;                

        %secur;          

        >

<!ELEMENT subfig                - -              

((graphic | macrograph) & table? & legend?)

>
 
<!ATTLIST subfig        place            

NUMBER

        #IMPLIED 
        orient           

(port | land)

        "port"
        %bodyatt;                

        %secur;          

        >

<!ELEMENT macrograph            - -              

(graphic+) 

>
 
<!ATTLIST macrograph    reprowid                 

NUTOKEN

        #IMPLIED
        reprodep                 

NUTOKEN

        #IMPLIED >

<!ELEMENT legend                - o              

(callout, def)+ 

>
 
<!ATTLIST legend        assocfig                 

IDREF

        #IMPLIED
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT (table | chart)               - -              

(%titles;, (tgroup+ | graphic+))

-(table | chart | figure) >
 
<!ATTLIST (table | chart)       tabstyle                 

NMTOKEN 

        #IMPLIED
        tocentry                 

%yesorno; 

        "1"
        shortentry               

%yesorno; 

        #IMPLIED
        frame            

(top | bottom | topbot | all | sides | none) 

        #IMPLIED
        colsep           

%yesorno; 

        #IMPLIED
        rowsep           

%yesorno; 

        #IMPLIED
        orient           

(port | land) 

        #IMPLIED
        pgwide           

%yesorno; 

        #IMPLIED
        %bodyatt;                

        %secur;          

        >

<!ELEMENT tgroup                - o              

(colspec*, spanspec*, thead?, tfoot?, tbody)

>
 
<!ATTLIST tgroup        cols             

NUMBER 

        #REQUIRED 
        tgroupstyle              

NMTOKEN 

        #IMPLIED 
        colsep           

%yesorno; 

        #IMPLIED 
        rowsep           

%yesorno; 

        #IMPLIED 
        align            

(left | right | center | justify | char ) 

        "left" 
        charoff          

NUTOKEN

        "50" 
        char             

CDATA 

        "" 
        %secur;          

        >

<!ELEMENT colspec               - o              

EMPTY 

>
 
<!ATTLIST colspec       colnum           

NUMBER 

        #IMPLIED 
        colname          

NMTOKEN 

        #IMPLIED 
        align            

(left | right | center | justify | char ) 

        #IMPLIED 
        charoff          

NUTOKEN 

        #IMPLIED 
        char             

CDATA 

        #IMPLIED 
        colwidth                 

CDATA 

        #IMPLIED 
        colsep           

%yesorno; 

        #IMPLIED 
        rowsep           

%yesorno; 

        #IMPLIED        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!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 (thead | tfoot)               - o              

(colspec*, row+) 

-(entrytbl) >
 
<!ATTLIST thead valign           

(top | middle | bottom) 

        "bottom" 
        %secur;          

        >
<!ATTLIST tfoot valign           

(top | middle | bottom) 

        "top" 
        %secur;          

        >

<!ELEMENT tbody         - o              

(row+) 

>
 
<!ATTLIST tbody valign           

(top | middle | bottom) 

        "top" 
        %secur;          

        >

<!ELEMENT row           - o              

(entry | entrytbl)+ 

>
 
<!ATTLIST row   rowsep           

%yesorno; 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT entry         - o              

((para | %spcpara; | legend)+ | %paracon;) 

>
 
<!ATTLIST entry colname          

NMTOKEN 

        #IMPLIED 
        spanname                 

NMTOKEN 

        #IMPLIED 
        morerows                 

NUMBER 

        "0" 
        colsep           

%yesorno; 

        #IMPLIED 
        rowsep           

%yesorno; 

        #IMPLIED 
        rotate           

%yesorno; 

        "0" 
        valign           

(top | bottom | middle) 

        "top" 
        align            

(left | right | center | justify | char ) 

        #IMPLIED 
        charoff          

NUTOKEN 

        #IMPLIED 
        char             

CDATA 

        #IMPLIED 
        %secur;          

        >

<!-- ELEMENT    ATTR    MIN     VALUE   CONTENT DEFAULT EXCEPT -->

<!ELEMENT entrytbl              - -              

(colspec*, spanspec*, thead?, tbody)+ 

-(entrytbl) >
 
<!ATTLIST entrytbl      cols             

NUMBER 

        #REQUIRED 
        tgroupstyle              

NMTOKEN 

        #IMPLIED 
        colname          

NMTOKEN 

        #IMPLIED 
        spanname                 

NMTOKEN 

        #IMPLIED 
        colsep           

%yesorno; 

        #IMPLIED 
        rowsep           

%yesorno; 

        #IMPLIED 
        align            

(left | right | center | justify | char ) 

        #IMPLIED 
        charoff          

NUTOKEN 

        #IMPLIED 
        char             

CDATA 

        #IMPLIED 
        %secur;          

        >

<!ELEMENT ftnote                - -              

(para+ | %paracon;)

-(ftnote | ftnref) +(table) >
 
<!ATTLIST ftnote        id               

ID 

        #REQUIRED 
        mark             

(ctr | sym) 

        "ctr" 
        label            

CDATA 

        #IMPLIED 
        %secur;          

        >

<!-- ELEMENT TYPES WHOSE USE IS NOT ILLUSTRATED IN THIS DECLARATION SET -->
 
<!ELEMENT contassurpg           - o              

EMPTY 

>
 
<!ATTLIST contassurpg   content          

ENTITY 

        #REQUIRED       >

<!ELEMENT refdoc                - o              

(docno+) 

>
 
<!ELEMENT cfgpge                - o              

EMPTY 

>
 
<!ATTLIST cfgpge        name             

ENTITY 

        #REQUIRED       >

<!ELEMENT coverindex            - o              

EMPTY 

>
 
<!ELEMENT staloc                - o              

EMPTY 

>
 
<!ATTLIST staloc        name             

ENTITY 

        #REQUIRED       >

<!ELEMENT testcode              - o              

(%text;)

>
 
<!ATTLIST testcode      codetype                 

(major | minor | sec) 

        "major"
        %content;                

]>
