[DTD]............... problème de code

Fermé
hugo - 25 juin 2004 à 12:11
 hugo102 - 25 juin 2004 à 14:04
Bonjour à tous.

Voila, j ai un probleme au niveau des lignes de code du dtd, et quand je corrige une erreur, il m'en affiche une autre et ansi de suite. Enfin je decouvre le dtd....donc c 'est probablement pour ça.
Alors si qq veut bien me dire où se situe mon (mes) erreur(s), ce serait tres gentils de sa part.
<!NOTATION cgm    PUBLIC "-//USA-DOD//NOTATION Computer Graphics Metafile//EN">
<!ELEMENT amm - - ((title,mfmatr,chapter*)|increv|tr+)
				+(revst|revend|cocst|cocend|docunit|hotlink) >
<!ATTLIST   amm
		spl      CDATA    #REQUIRED
		model    CDATA    #REQUIRED
		oidate      NUMBER   #REQUIRED
		revdate     NUMBER   #REQUIRED
		tsn      CDATA    #REQUIRED
		cus      CDATA    #IMPLIED
		docnbr      CDATA    #IMPLIED
		lang     CDATA    #REQUIRED
		chg      (N|R|U)     'N'            >
A voir également:

2 réponses

Salut,
Premiere chose, si tu te lances dans les DTD, pourquoi ne passes tu pas aux XSD, c'est ce qui est actuel, et c'est enfin un lanage SGML, ce qui veut dire que c'est dans un fichier xml que tu decris ton fichier xml (schematiquement), c'est plus precise et potentiellement plus rapide a verifier pour le parser dans le cas des gros fichiers...
Ceci etant dit, ca serait plus constructifs que tu nous dises QUELLE erreur il affiche, ou au moins que tu nous donnes ton fichier XML pourque l'on puisse tester nous meme :o)
0
Bon, en fait, on m a donné 2 dtd et je dois comparer les balises une a une. Etant donné que cela represente un travail enorme, j aurais aimé voir les dtd sous forme de schéma en forme d'arbre. Pour cela j ai téléchargé "Visual Dtd Editor". Je joins le dtd complet :
<!-- ======================================================= -->
<!--  This is the DTD for Task Numbered JEMTOSS              -->
<!--  TURBOMECA Engine Manual, Version 1.0  01/06/03         -->
<!-- ======================================================= -->
<!--  Original DTD :                                         -->
<!--                 DTD ATA em.dtd Version 2.2    01/14/97  -->
<!-- ======================================================= -->
<!--  Update :                       Version number :        -->
<!--          First version                          001     -->
<!--                                                         -->
<!--          02/10/2003                             002     -->
<!--                                                         -->
<!-- Changement de structure des pr?requis, -->
<!-- suite a evolution des modeles Turbomeca -->
<!-- -->
<!-- Prise en charge des equations (ajout 31/03/2004) -->
<!-- -->
<!-- ======================================================= -->
<!-- -->
<!-- DTD reference: "-//ATA-TASK//DTD EM-VER1.0-TURBOMECA//EN" -->
<!-- -->
<!-- The following set of declarations may be referred -->
<!-- to using a public entity as follows: -->
<!-- -->
<!-- <!DOCTYPE em PUBLIC "-//ATA-TASK//DTD EM-VER1.0-TURBOMECA//EN" -->
<!-- -->
<!-- ======================================================= -->
<!-- DOCTYPE em [ -->
<!-- ======================================================= -->
<!-- NOTATIONS -->
<!-- ======================================================= -->
<!-- -->
<!NOTATION cgm PUBLIC "-//USA-DOD//NOTATION Computer Graphics Metafile//EN">
<!NOTATION ccitt4 PUBLIC "-//USA-DOD//NOTATION CCITT Group 4 Facsimile//EN">
<!-- -->
<!-- ====================================================== -->
<!-- ENTITIES -->
<!-- ======================================================= -->
<!ENTITY % g.r "(reftask*, grphcref*, refext*, refint*)" >
<!ENTITY % w.c.n "(warning*, caution*, note*)" >
<!ENTITY % text "(para | tabdat | table |
unlist | numlist | deflist | graphic)+">
<!ENTITY % deleted "(deleted, chgdesc*)" >
<!ENTITY % yesorno "NUMBER" >
<!ENTITY % revatt
"chg (N | D | R | U) #REQUIRED
key ID #REQUIRED
revdate NUMBER #REQUIRED" >
<!-- -->
<!ENTITY % ISOtech PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN">
%ISOtech;
<!ENTITY % ISOpub PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN">
%ISOpub;
<!ENTITY % ISOnum PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN">
%ISOnum;
<!ENTITY % ISOgrk1 PUBLIC "ISO 8879-1986//ENTITIES Greek Letters//EN">
%ISOgrk1;
<!ENTITY % ISOlat1 PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" >
%ISOlat1;

<!-- -->
<!-- ====================================================== -->
<!-- EM TOP LEVEL STRUCTURE -->
<!-- ======================================================= -->
<!ELEMENT em - - (issue, (task | tr), endverso?)
+(revst | revend) >
<!ATTLIST em
spl CDATA #REQUIRED
e_family CDATA #REQUIRED
e_version CDATA #REQUIRED
manual (MM | MR | MRPM | COM | COR | CR | TCI) #REQUIRED
oidate NUMBER #REQUIRED
tsn CDATA #IMPLIED
docnbr CDATA #REQUIRED
lang (FR |EN |DE |SP) #REQUIRED
chg (N | R | U | D) 'N' >

<!-- ====================================================== -->
<!-- ISSUE - REVISION DATE -->
<!-- ======================================================= -->

<!ELEMENT issue - o EMPTY >
<!ATTLIST issue
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED
revnum NUMBER #REQUIRED
quality (UNVERIFIED | DRAFT | DRAFT2| PREMASTER | MASTER) #REQUIRED >

<!-- -->
<!-- ======================================================= -->
<!-- TR - TEMPORARY REVISION -->
<!-- ======================================================= -->
<!ELEMENT tr - - (trfmatr, (task+ | graphic+ | sblist))>
<!-- -->
<!-- ======================================================= -->
<!-- TR - FRONT MATTER -->
<!-- ======================================================= -->
<!ELEMENT trfmatr - - (title, trreason, (%text;)?) >
<!ATTLIST trfmatr
trnbr CDATA #REQUIRED
issdate NUMBER #REQUIRED
trdel CDATA #IMPLIED
trrepl CDATA #IMPLIED >
<!ELEMENT trreason - - %text; >


<!-- ====================================================== -->
<!-- TASK -->
<!-- -->
<!-- ======================================================= -->
<!ELEMENT task - - (effect,title,
(mfmatr | ((tfmatr|repair|si)?,
(proc+ | tabperiodinspect+))),
graphic*) >
<!-- -->
<!-- ======================================================= -->
<!ATTLIST task
chapnbr CDATA #REQUIRED
sectnbr CDATA #REQUIRED
subjnbr CDATA #REQUIRED
func CDATA #REQUIRED
seq CDATA #REQUIRED
confltr CDATA #REQUIRED
varnbr CDATA #REQUIRED
pgblknbr CDATA #REQUIRED
%revatt; >

<!-- -->
<!-- ====================================================== -->
<!-- ENGINE MANUAL FRONT MATTER -->
<!-- ======================================================= -->
<!-- -->
<!-- ======================================================= -->
<!-- trlist and intro made optional so the em DTD can be -->
<!-- used for a Consumable Materials Index -->
<!-- ======================================================= -->
<!-- -->
<!ELEMENT mfmatr - - (transltr?, frontpage?, info?, approval?,
nulist?, trlist?, conindex?, sblist*,
chapnbrli?, chaptitleli?, chaplocli?,
intro?, howtouse?, warninglist?, lists?,
lep?, contents?)>
<!ELEMENT transltr - - (chgdesc*, locadate, (%text;), auth, table)+ >
<!ELEMENT locadate - - (#PCDATA) >
<!ELEMENT auth - - (%text;) >
<!ELEMENT info - - (para+)>
<!ELEMENT approval - - (para+, agreenbr?, docnum?,
(approdate | isempty), note*) >
<!ELEMENT agreenbr - - (#PCDATA) >
<!ELEMENT approdate - o EMPTY >
<!ATTLIST approdate
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED >
<!ELEMENT trlist - - (trdata+ | isempty | table) >
<!ELEMENT trdata - - (effect?, trnbr, trstatus, trloc+)>
<!ELEMENT conindex - - (chgdesc*, title, (prclist1 | table)+)+>
<!ELEMENT sblist - - (effect?, chgdesc*, title, %text;,
(sbdata+ | isempty)) >
<!ELEMENT sbdata - - (sbnbr, sbdesc?, issdate?, ics) >
<!ELEMENT intro - - ((chgdesc*, title, prclist1) | proc)+ >
<!ELEMENT howtouse - - ((chgdesc*, title, prclist1) | proc)+ >
<!ELEMENT warninglist - - (proc+ | warning+ | isempty) >
<!ELEMENT (sbnbr | sbdesc | issdate | ics |
trnbr | trstatus | trloc) - - (#PCDATA)>
<!-- -->
<!ATTLIST (transltr | trlist | conindex | intro | howtouse)
oldkey NAME #IMPLIED
%revatt; >
<!ATTLIST sblist
%revatt; >

<!-- ====================================================== -->
<!-- FRONT PAGE -->
<!-- ======================================================= -->
<!ELEMENT frontpage - - (volnum, docnum, oiprintdate) >

<!ELEMENT volnum - o (#PCDATA) >
<!ATTLIST volnum
volnbr NUMBER #REQUIRED
voltotal NUMBER #REQUIRED >
<!ELEMENT docnum - o (#PCDATA) >
<!ELEMENT oiprintdate - o EMPTY >
<!ATTLIST oiprintdate
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED >

<!-- ====================================================== -->
<!-- LIST OF NORMAL UPDATES -->
<!-- ======================================================= -->
<!ELEMENT nulist - - (nudata+ | isempty | table) >
<!ELEMENT nudata - - (nunbr, nuupdate, nuoperator, nuinsdate)>
<!ELEMENT nunbr - - (#PCDATA) >
<!ELEMENT nuupdate - o EMPTY >
<!ATTLIST nuupdate
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED >
<!ELEMENT nuoperator - - (#PCDATA) >
<!ELEMENT nuinsdate - o EMPTY >
<!ATTLIST nuinsdate
year NUMBER #IMPLIED
month CDATA #IMPLIED
day CDATA #IMPLIED >

<!-- ====================================================== -->
<!-- LIST OF CHAPTERS BY NUMBER -->
<!-- ======================================================= -->
<!ELEMENT chapnbrli - - (title, note,
(chapternbr+ | isempty | table)) >
<!ELEMENT chapternbr - - (chapnbr, title, chapterdate,
chapterrev, sectionnbr+) >
<!ELEMENT chapnbr - - (#PCDATA) >
<!ELEMENT chapterdate - o EMPTY >
<!ATTLIST chapterdate
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED >
<!ELEMENT chapterrev - - (#PCDATA) >
<!ELEMENT sectionnbr - - (sectsubj, title, chapterdate?, chapterrev?) >
<!ELEMENT sectsubj - o EMPTY >
<!ATTLIST sectsubj
sectnbr NUMBER #REQUIRED
subjnbr NUMBER #REQUIRED >


<!-- ====================================================== -->
<!-- LIST OF CHAPTERS BY TITLE -->
<!-- ======================================================= -->
<!ELEMENT chaptitleli - - (title, note,
(chaptitle+ | isempty | table)) >
<!ELEMENT chaptitle - - (title, chapcss) >
<!ELEMENT chapcss - o EMPTY >
<!ATTLIST chapcss
chapnbr NUMBER #REQUIRED
sectnbr NUMBER #REQUIRED
subjnbr NUMBER #REQUIRED >

<!-- ====================================================== -->
<!-- LIST OF CHAPTERS BY LOCATION -->
<!-- ======================================================= -->
<!ELEMENT chaplocli - - (title, note?,
(chaploc+ | isempty | table)) >
<!ELEMENT chaploc - - (sheet, title) >
<!ATTLIST chaploc
chapnbr NUMBER #REQUIRED
sectnbr NUMBER #REQUIRED
subjnbr NUMBER #REQUIRED
chg (N | D | R | U) #REQUIRED >

<!-- ====================================================== -->
<!-- LIST OF EFFECTIVE PAGES -->
<!-- ======================================================= -->
<!ELEMENT lep - - (lepcontents) >
<!ATTLIST lep
chapnbr CDATA #REQUIRED >
<!ELEMENT lepcontents - o (lepentry+) >

<!ELEMENT lepentry - o (leptcss?, leptask?,
leptname, leppage, lepdate) >
<!ATTLIST lepentry
chapnbr CDATA #IMPLIED
sectnbr CDATA #IMPLIED
subjnbr CDATA #IMPLIED
func CDATA #IMPLIED
seq CDATA #IMPLIED
confltr CDATA #IMPLIED
varnbr CDATA #IMPLIED >
<!ELEMENT leptcss - o (#PCDATA) >
<!ELEMENT leptask - o (#PCDATA) >
<!ELEMENT leptname - o (#PCDATA) >
<!ELEMENT leppage - o (#PCDATA) >
<!ATTLIST leppage
chg %yesorno; "0" >
<!ELEMENT lepdate - o EMPTY >
<!ATTLIST lepdate
year NUMBER #REQUIRED
month CDATA #REQUIRED
day CDATA #REQUIRED >

<!-- ====================================================== -->
<!-- TABLE OF CONTENTS -->
<!-- ======================================================= -->
<!ELEMENT contents - o (chapname, toctcss, tocsect+) >
<!ATTLIST contents chapnbr CDATA #REQUIRED >
<!ELEMENT chapname - o (#PCDATA) >

<!ELEMENT tocsect - o (sectname, toctcss, toctask?, tocsubj+) >
<!ELEMENT tocsubj - o (subjname, toctcss, tocentry+) >
<!ELEMENT sectname - o (#PCDATA) >
<!ELEMENT subjname - o (#PCDATA) >

<!ELEMENT tocentry - o (toctname, toctcss, toctask,
tocpage, toceffect) >
<!ATTLIST tocentry
chapnbr CDATA #IMPLIED
sectnbr CDATA #IMPLIED
subjnbr CDATA #IMPLIED
func CDATA #IMPLIED
seq CDATA #IMPLIED
confltr CDATA #IMPLIED
varnbr CDATA #IMPLIED >
<!ELEMENT toctname - o (#PCDATA) >
<!ELEMENT toctcss - o (#PCDATA) >
<!ELEMENT toctask - o (#PCDATA) >
<!ELEMENT tocpage - o (#PCDATA) >
<!ELEMENT toceffect - o (#PCDATA) >

<!-- ======================================================= -->
<!-- WARNING LIST -->
<!-- ======================================================= -->
<!ELEMENT warningli - - (warning+) >

<!-- ======================================================= -->
<!-- REPERTOIRES -->
<!-- ======================================================= -->

<!ELEMENT lists - - ((title?, (%text;)*,
(toolitemindex | tooltaskindex | storeindex
| repairgenindex | repairindex | siindex
| adl | vendlist))
| proc+) >

<!ELEMENT toolitemindex - - (isempty | table) >
<!ELEMENT tooltaskindex - - (isempty | table) >
<!ELEMENT storeindex - - (isempty | table) >
<!ELEMENT repairgenindex - - (isempty | table) >
<!ELEMENT repairindex - - (isempty | table) >
<!ELEMENT siindex - - (isempty | table) >

<!-- ======================================================= -->
<!-- LIST OF ADDITIONAL DOCUMENTATION -->
<!-- ======================================================= -->
<!ELEMENT adl - - (adlentry+) >
<!ELEMENT adlentry - - (manualtype, manualref) >
<!ELEMENT manualtype - - (#PCDATA) >
<!ELEMENT manualref - - (#PCDATA) >

<!-- ======================================================= -->
<!-- Vendors list -->
<!-- ======================================================= -->

<!ELEMENT vendlist - - (title, (%text;)?, vendata+) >
<!ATTLIST vendlist
oldkey NAME #IMPLIED
%revatt; >

<!ELEMENT vendata - - (mfr, mad) >

<!ELEMENT mfr - - (#PCDATA) >
<!ELEMENT mad - - (venname?, venaddr*, veninfo*) >
<!ELEMENT venname - - (#PCDATA) >
<!ELEMENT venaddr - - (#PCDATA) >
<!ELEMENT veninfo - - (#PCDATA) >

<!-- ====================================================== -->
<!-- PROC -->
<!-- ======================================================= -->
<!ELEMENT proc - - ((
(chgdesc*, warning*, caution*, title,(%g.r;),(%w.c.n;),
((%text;), warningli?, note*)*,
(tfmatr? | ((taskproc, graphic*)|ctrl|
uselimitedpartli |
tbomoduleli | disassref |
tboaccessoryli | cpvlli |
tabperiodinspect)*) )
| %deleted;)
) >
<!-- -->
<!-- ======================================================= -->
<!-- -->
<!-- ======================================================= -->
<!-- TFMATR -->
<!-- ======================================================= -->
<!ELEMENT tfmatr - - (tprereq+) >
<!-- title not optional, so tprereq would never be empty -->
<!ELEMENT tprereq - - (title, ((((%w.c.n;) | (%text;))*, list1?) |
(stdli, tedli?, sspareli?, spareli?,
conli?, reqprotectli?, reqpersli?) |
(tedli, sspareli?, spareli?, conli?,
reqprotectli?, reqpersli?) |
reqtaskli | isempty?)) >
<!-- -->
<!-- ======================================================= -->
<!-- TASKPROC -->
<!-- ======================================================= -->
<!ELEMENT taskproc - - (warning*, caution*, title, (%g.r;), (%w.c.n;),
(((subtask*, graphic*)*
| tolerance+
| list1
| (para | tabdat |table | unlist | numlist))*
| isempty))
>
<!-- -->
<!-- ======================================================= -->
<!-- SUBTASK -->
<!-- ======================================================= -->
<!ELEMENT subtask - - (effect?,
((chgdesc*, title,(%g.r;), (%w.c.n;),
(list2 | table* | tabdat*)) | %deleted;)) >
<!ATTLIST subtask
chapnbr NUMBER #REQUIRED
sectnbr NUMBER #REQUIRED
subjnbr NUMBER #REQUIRED
func CDATA #REQUIRED
seq CDATA #REQUIRED
confltr CDATA ' '
varnbr CDATA ' '
key ID #REQUIRED >

<!-- -->
<!-- ======================================================= -->
<!-- Controle visuel et dimensionnel -->
<!-- ======================================================= -->
<!ELEMENT ctrl - - (ctrlhead, headctrl, malfunction+,
note*, fighead, sheet) >
<!ATTLIST ctrl
fignbr NUMBER #REQUIRED >
<!ELEMENT ctrlhead - - (title, (csn | itr)+ , remarks) >
<!ELEMENT remarks - - %text; >
<!ELEMENT malfunction - - (location, anomaly+, note*) >
<!ELEMENT location - - (#PCDATA) >
<!ELEMENT anomaly - - (constatation, code, criteria+, note*) >
<!ELEMENT constatation - - (#PCDATA) >
<!ELEMENT code - - (#PCDATA) >
<!ELEMENT criteria - - (para, action) >
<!ATTLIST criteria
cat NUMBER #IMPLIED
rep %yesorno; "0"
rev %yesorno; "0" >
<!ELEMENT action - - (para+) >
<!ELEMENT headctrl - o EMPTY >
<!ELEMENT fighead - o EMPTY >

<!-- Item de reparation -->
<!ELEMENT itr - o EMPTY >
<!ATTLIST itr
itrnbr NUMBER #REQUIRED >
<!-- -->
<!-- ======================================================= -->
<!-- Jeux et tolerances -->
<!-- ======================================================= -->
<!ELEMENT tolerance - - (tolhead, headtol, tol+, note*,
fighead, sheet) >
<!ATTLIST tolerance
fignbr NUMBER #REQUIRED >
<!ELEMENT tolhead - - (title, csn+) >
<!ELEMENT tol - - (location, csn?, partname,
size, fits, note*, comments) >
<!ATTLIST tol
type (D | R | L | A) #REQUIRED
cat NUMBER #REQUIRED >
<!ELEMENT partname - - (#PCDATA) >
<!ELEMENT size - - (sizemax, sizemin) >
<!ELEMENT sizemax - - (#PCDATA) >
<!ELEMENT sizemin - - (#PCDATA) >
<!ELEMENT fits - - (fitsmin, fitsmax, fitslimit) >
<!ELEMENT fitsmin - - (#PCDATA) >
<!ELEMENT fitsmax - - (#PCDATA) >
<!ELEMENT fitslimit - - (#PCDATA) >
<!ELEMENT comments - - (#PCDATA) >

<!ELEMENT headtol - o EMPTY >
<!-- -->
<!-- ======================================================= -->
<!-- Controle des pieces a vie limite -->
<!-- ======================================================= -->
<!ELEMENT cpvlli - - (((cpvl+) | isempty), note*) >
<!ELEMENT cpvl - - (componentname, csn) >
<!-- -->
<!-- ======================================================= -->
<!-- Reparation -->
<!-- ======================================================= -->
<!ELEMENT repair - - (repfinding, repsoluce, repcomments, repprereqli) >
<!ATTLIST repair
repairnbr NUMBER #REQUIRED >
<!ELEMENT repfinding - - (para) >
<!ELEMENT repsoluce - - (para) >
<!ELEMENT repcomments - - (para) >
<!ELEMENT repprereqli - - (repprereq+ | isempty) >
<!ELEMENT repprereq - - (repreqnum, repreqdescript, repreqproced) >
<!ELEMENT repreqnum - - (#PCDATA) >
<!ELEMENT repreqdescript - - (#PCDATA) >
<!ELEMENT repreqproced - - (#PCDATA) >

<!-- SOLUTION DE REPARATION -->
<!ELEMENT sr - - (srname?, srnbr?) >
<!ATTLIST sr
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT srname - - (#PCDATA) >
<!ELEMENT srnbr - - (#PCDATA) >

<!-- -->
<!-- ======================================================= -->
<!-- IMS -->
<!-- ======================================================= -->
<!ELEMENT si - - (simodif, sichapeffect, siparteffect,
sinewpartli, sisalpartli, sidelpartli) >
<!ATTLIST si
sinbr NUMBER #REQUIRED >
<!ELEMENT simodif - - (#PCDATA) >
<!ELEMENT sichapeffect - - (#PCDATA) >
<!ELEMENT siparteffect - - (#PCDATA) >
<!ELEMENT sinewpartli - - (sinewpart+ | isempty) >
<!ELEMENT sinewpart - - (sinewpartname, sinewpartnbr,
sinewpartqty, csn) >
<!ELEMENT sinewpartname - - (#PCDATA) >
<!ELEMENT sinewpartnbr - - (#PCDATA) >
<!ELEMENT sinewpartqty - - (#PCDATA) >
<!ELEMENT sisalpartli - - (sisalpart+ | isempty) >
<!ELEMENT sisalpart - - (sisalpartname, sisaloldpartnbr,
sisalnewpartnbr, sisalpartqty, csn) >
<!ELEMENT sisalpartname - - (#PCDATA) >
<!ELEMENT sisaloldpartnbr - - (#PCDATA) >
<!ELEMENT sisalnewpartnbr - - (#PCDATA) >
<!ELEMENT sisalpartqty - - (#PCDATA) >
<!ELEMENT sidelpartli - - (sidelpart+ | isempty) >
<!ELEMENT sidelpart - - (sidelpartname, sidelpartnbr,
sidelpartqty, csn) >
<!ELEMENT sidelpartname - - (#PCDATA) >
<!ELEMENT sidelpartnbr - - (#PCDATA) >
<!ELEMENT sidelpartqty - - (#PCDATA) >
<!-- -->
<!-- ======================================================= -->
<!-- DISASSEMBLY/ASSEMBLY REFERENCE DOCUMENT -->
<!-- ====================================================== -->

<!ELEMENT disassref - - (title?, (componentgroup | componentrep)+) >
<!ATTLIST disassref
orient (port | land) #REQUIRED
nbcols NUMBER "16"
chapnbr CDATA #REQUIRED
sectnbr CDATA #REQUIRED
subjnbr CDATA #REQUIRED
func CDATA #REQUIRED
task801 %yesorno; "1"
task802 %yesorno; "1"
task803 %yesorno; "1"
task804 %yesorno; "1"
task805 %yesorno; "1"
task806 %yesorno; "1"
task807 %yesorno; "1"
task808 %yesorno; "1"
task809 %yesorno; "1"
task810 %yesorno; "1"
task811 %yesorno; "1"
task812 %yesorno; "1"
task813 %yesorno; "1"
task814 %yesorno; "1"
task815 %yesorno; "1"
task816 %yesorno; "1"
task817 %yesorno; "0"
task818 %yesorno; "0"
task819 %yesorno; "0"
task820 %yesorno; "0"
task821 %yesorno; "0"
task822 %yesorno; "0"
task823 %yesorno; "0"
task824 %yesorno; "0"
task825 %yesorno; "0"
task826 %yesorno; "0" >
<!ELEMENT componentgroup - - (#PCDATA) >
<!ELEMENT componentrep - - ((componentname | csn), task801?,
task802?, task803?,
task804?, task805?, task806?, task807?,
task808?, task809?, task810?, task811?,
task812?, task813?, task814?, task815?,
task816?, task817?, task818?, task819?,
task820?, task821?, task822?, task823?,
task824?, task825?, task826?) >
<!ELEMENT (task801 | task802 | task803 | task804 | task805 |
task806 | task807 | task808 | task809 | task810 |
task811 | task812 | task813 | task814 | task815 |
task816 | task817 | task818 | task819 | task820 |
task821 | task822 | task823 | task824 | task825 |
task826) - o EMPTY>
<!ATTLIST (task801 | task802 | task803 | task804 | task805 |
task806 | task807 | task808 | task809 | task810 |
task811 | task812 | task813 | task814 | task815 |
task816 | task817 | task818 | task819 | task820 |
task821 | task822 | task823 | task824 | task825 |
task826)
taskorder NUMBER #REQUIRED >

<!-- -->
<!-- -->
<!-- ======================================================= -->
<!-- Structures used in chapter 05 MM -->
<!-- ====================================================== -->
<!-- ENGINE LIFE LIMIT VALUES -->
<!ELEMENT lifelimitli - - (((lifelimit+) | isempty), note*) >
<!ELEMENT lifelimit - - (componentname, itemref,
lifelimitcycles, counters) >
<!ELEMENT componentname - - (#PCDATA) >
<!ELEMENT itemref - - (#PCDATA) >
<!ELEMENT lifelimitcycles - - (#PCDATA) >
<!ELEMENT counters - - (#PCDATA) >
<!-- DAILY INSPECTIONS -->
<!ELEMENT dailyinspectli - - (((dailyinspect+) | isempty), note*) >
<!ELEMENT dailyinspect - - (maintop, reftask) >
<!ELEMENT maintop - - (#PCDATA) >
<!-- PERIODIC INSPECTIONS -->
<!ELEMENT periodinspectli - - (((periodinspect+) | isempty), note*) >
<!ELEMENT periodinspect - - (periodtol, maintask, reftask, applicond) >
<!ELEMENT periodtol - - (#PCDATA) >
<!ELEMENT maintask - - (%text;) >
<!ELEMENT applicond - - (#PCDATA) >
<!-- NON PERIODIC INSPECTIONS -->
<!ELEMENT nonperiodinspectli - - (((nonperiodinspect+) | isempty), note*) >
<!ELEMENT nonperiodinspect - - (event, (maintask, (reftask|isempty))+) >
<!ELEMENT event - - (#PCDATA) >
<!-- NON PERIODIC INSPECTIONS FOLLOWING ENGINE OPERATION -->
<!-- IN A SPECIFIC ENVIRONNEMENT -->
<!ELEMENT npifollowuseli - - (((npifollowuse+) | isempty), note*) >
<!ELEMENT npifollowuse - - (condofuse, (maintask, (reftask|isempty))+) >
<!ELEMENT condofuse - - (#PCDATA) >
<!-- NON PERIODIC INSPECTIONS FOLLOWING A MAINTENANCE ACTION -->
<!ELEMENT npifollowactli - - (((npifollowact+) | isempty), note*) >
<!ELEMENT npifollowact - - (maintaction, (maintask, (reftask|isempty))+) >
<!ELEMENT maintaction - - (#PCDATA) >
<!-- SUMMARY TABLE OF PERIODIC INSPECTIONS -->
<!ELEMENT tabperiodinspect - - (tbihead, headtbi, inspection+) >
<!ATTLIST tabperiodinspect
flow (0|1) "0" >
<!ELEMENT tbihead - - (visithour, tbipg) >
<!ELEMENT headtbi - o EMPTY >
<!ELEMENT inspection - - (tasktype, maintask, enginevar,
(reftask|tasktxt|isempty), applicond,
inspectdate, inspectsignature) >
<!ELEMENT visithour - - (%text;) >
<!ELEMENT tbipg - - (%text;) >
<!ELEMENT tasktype - - (#PCDATA) >
<!ELEMENT enginevar - - (#PCDATA) >
<!ELEMENT tasktxt - - (%text;) >
<!ELEMENT inspectdate - - (#PCDATA) >
<!ELEMENT inspectsignature - - (#PCDATA) >
<!-- TBO OF MODULE/ENGINE -->
<!ELEMENT tbomoduleli - - (((tbomodule+) | isempty), note*) >
<!ELEMENT tbomodule - - (modulename, modifstd,
maintenancemet, tbocalendar) >
<!ELEMENT modulename - - (#PCDATA) >
<!ELEMENT modifstd - - (#PCDATA) >
<!ELEMENT maintenancemet - - (#PCDATA) >
<!ELEMENT tbocalendar - - (#PCDATA) >
<!-- ACCESSORY AND EQUIPMENT TBO -->
<!ELEMENT tboaccessoryli - - (((tboaccessory+) | isempty), note*) >
<!ELEMENT tboaccessory - - (accessoryname, tboitem,
maintenancemet, tbocalendar) >
<!ELEMENT accessoryname - - (#PCDATA) >
<!ELEMENT tboitem - - (#PCDATA) >
<!-- USE LIMITED PARTS -->
<!ELEMENT uselimitedpartli - - (((uselimitedpart+) | isempty), note*) >
<!ELEMENT uselimitedpart - - (ulpmodule, ulpnomen,
ulpreference, ulpuselimit) >
<!ELEMENT ulpmodule - - (#PCDATA) >
<!ELEMENT ulpnomen - - (#PCDATA) >
<!ELEMENT ulpreference - - (#PCDATA) >
<!ELEMENT ulpuselimit - - (#PCDATA) >
<!-- ======================================================= -->
<!-- Tabular data in subtasks -->
<!-- ====================================================== -->
<!ELEMENT tabdat - - ((title?, tabgroup,
ftnote*) | graphic* | %deleted;) -(tabdat) >
<!ATTLIST tabdat
formal (F | I) 'I'
frame (top | bottom | topbot | all | sides | none) #IMPLIED
colsep %yesorno; #IMPLIED
rowsep %yesorno; #IMPLIED
orient (port | land) #IMPLIED
pgwide %yesorno; #IMPLIED
id ID #IMPLIED
alt (C | B) 'B' >
<!ELEMENT tabgroup - o (colspec*, spanspec*, thead?,
tfoot?, tabody) >
<!ATTLIST tabgroup
cols NUMBER #REQUIRED
colsep %yesorno; #IMPLIED
rowsep %yesorno; #IMPLIED
align (left | right | center | justify | char)
"left"
charoff NUTOKEN "50"
char CDATA #IMPLIED >
<!-- -->
<!ELEMENT tabody - o (subtask*, row*)+ >
<!-- -->
<!-- ======================================================= -->
<!-- TABLE (CELLULAR, CALS BASED) -->
<!-- -->
<!-- ATTRIBUT FLOW : 1 = a la suite 0 = nouvelle page -->
<!-- ====================================================== -->
<!ELEMENT table - - ((title?, tgroup, ftnote*) |
graphic+) -(table) >
<!ATTLIST table
tabstyle NMTOKEN #IMPLIED
flow (0|1) "1"
frame (top | bottom | topbot | all |
sides | none) #IMPLIED
colsep %yesorno; #IMPLIED
rowsep %yesorno; #IMPLIED
orient (port | land) #IMPLIED
pgwide %yesorno; #IMPLIED
id ID #IMPLIED
formal (F | I) 'I' >
<!ELEMENT tgroup - o (colspec*, spanspec*, thead?, tfoot?,
tbody) >
<!ATTLIST tgroup
cols NUMBER #REQUIRED
colsep %yesorno; #IMPLIED
rowsep %yesorno; #IMPLIED
align (left | right | center | justify | char)
"left"
charoff NUTOKEN "50"
char CDATA "" >
<!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 spanspec - o EMPTY >
<!ATTLIST spanspec
namest NMTOKEN #REQUIRED
nameend NMTOKEN #REQUIRED
spanname NMTOKEN #IMPLIED
align (left | right | center | justify | char)
"center"
charoff NUTOKEN #IMPLIED
char CDATA #IMPLIED
rowsep %yesorno; #IMPLIED
colsep %yesorno; #IMPLIED >
<!ELEMENT (thead | tfoot)
- o (colspec*, row+) >
<!ELEMENT tbody - o (row+) >
<!ATTLIST thead
valign (top | middle | bottom)
"bottom" >
<!ATTLIST (tfoot|tbody)
valign (top | middle | bottom)
"top" >
<!ELEMENT row - o (entry+) >
<!ATTLIST row
rowsep %yesorno; #IMPLIED >
<!ELEMENT entry - o (%text; | note)+ >
<!ATTLIST entry
colname NMTOKEN #IMPLIED
namest NMTOKEN #IMPLIED
nameend 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 >
<!ELEMENT ftnote - - %text; >
<!ATTLIST ftnote
ftnoteid ID #REQUIRED >
<!-- -->
<!-- -->
<!-- ======================================================= -->
<!-- PROCEDURE LIST STRUCTURE (NON-TASKED) -->
<!-- ======================================================= -->
<!ELEMENT prclist1 - - (prcitem1+) >
<!ELEMENT prclist2 - - (prcitem2+) >
<!ELEMENT prclist3 - - (prcitem3+) >
<!ELEMENT prclist4 - - (prcitem4+) >
<!ELEMENT prclist5 - - (prcitem5+) >
<!ELEMENT prclist6 - - (prcitem6+) >
<!ELEMENT prclist7 - - (prcitem7+) >
<!-- -->
<!ELEMENT prcitem1 - - (prcitem, prclist2?) >
<!ELEMENT prcitem2 - - (prcitem, prclist3?) >
<!ELEMENT prcitem3 - - (prcitem, prclist4?) >
<!ELEMENT prcitem4 - - (prcitem, prclist5?) >
<!ELEMENT prcitem5 - - (prcitem, prclist6?) >
<!ELEMENT prcitem6 - - (prcitem, prclist7?) >
<!ELEMENT prcitem7 - - (prcitem) >
<!-- -->
<!ELEMENT prcitem - - (title?, (%text;)) >
<!-- -->
<!-- ======================================================= -->
<!-- STANDARD LISTS -->
<!-- ======================================================= -->
<!ELEMENT list1 - - (l1item+) >
<!ELEMENT list2 - - (l2item+) >
<!ELEMENT list3 - - (l3item+) >
<!ELEMENT list4 - - (l4item+) >
<!ELEMENT list5 - - (l5item+) >
<!ELEMENT list6 - - (l6item+) >
<!ELEMENT list7 - - (l7item+) >
<!-- -->
<!ATTLIST (list1 | list2 | list3 | list4 | list5 | list6 | list7)
cont %yesorno; "0" >
<!-- -->
<!ELEMENT l1item - - (((%w.c.n;), (%text; | entry)),
(dailyinspectli |lifelimitli |
periodinspectli | nonperiodinspectli |
npifollowuseli | npifollowactli)?,
note*, (list2, graphic*)?) >
<!ELEMENT l2item - - (((%w.c.n;), (%text; | entry)), dailyinspectli?,
note*, (list3, graphic*)?) >
<!ELEMENT l3item - - (((%w.c.n;), (%text; | entry)),note*, (list4, graphic*)?) >
<!ELEMENT l4item - - (((%w.c.n;), (%text; | entry)),note*, (list5, graphic*)?) >
<!ELEMENT l5item - - (((%w.c.n;), (%text; | entry)),note*, (list6, graphic*)?) >
<!ELEMENT l6item - - (((%w.c.n;), (%text; | entry)),note*, (list7, graphic*)?) >
<!ELEMENT l7item - - ((%w.c.n;), (%text; | entry*)) >
<!-- -->
<!ATTLIST (l1item | l2item | l3item | l4item | l5item | l6item | l7item)
cont %yesorno "0" >
<!-- ======================================================= -->
<!-- GRAPHICS -->
<!-- ======================================================= -->
<!-- -->
<!-- ======================================================= -->
<!-- seq attribute change from NUMBER to CDATA and all -->
<!-- attributes changed to #IMPLIED so graphic can be used -->
<!-- in front matter, where chapnbr, etc. is not applicable. -->
<!-- ======================================================= -->
<!-- -->
<!ELEMENT graphic - - ((chgdesc*, title?, sheet+) | %deleted;)>
<!ATTLIST graphic
chapnbr NUMBER #IMPLIED
sectnbr NUMBER #IMPLIED
subjnbr NUMBER #IMPLIED
func CDATA #IMPLIED
seq CDATA #IMPLIED
confltr CDATA #IMPLIED
varnbr NUMBER #IMPLIED
%revatt; >


<!-- ATTRIBUT FLOW : 1 = a la suite 0 = nouvelle page -->
<!-- -->
<!ELEMENT sheet - - ((chgdesc*, title?, gdesc?) | %deleted;) >
<!ATTLIST sheet
gnbr ENTITY #REQUIRED
fignbr CDATA #REQUIRED
sheetnbr CDATA #REQUIRED
sheettotal CDATA #REQUIRED
flow (0|1) "0"
%revatt; >
<!-- -->
<!ELEMENT gdesc - - (%text;) >
<!-- -->
<!-- ======================================================= -->
<!-- NUMBERED AND UN-NUMBERED LISTS -->
<!-- ====================================================== -->
<!-- UNNUMBERED LIST -->
<!ELEMENT unlist - - (title?, unlitem+) >
<!ATTLIST unlist
bulltype (NONE | BULLET | NDASH | MDASH | DIAMOND |
ASTERISK | DELTA | SQUARE | SYSTEM)
'SYSTEM' >
<!ELEMENT unlitem - - (para, (unlist | para)*, table*, note*) >
<!-- NUMBERED LIST - see ATA spec 2100 -->
<!ELEMENT numlist - - (numlitem+) >
<!ATTLIST numlist
numtype (NNP | AUP | NNB | ALB | NNS | ALS | DBR |
RUP | RLP | RUR | RLR | NNR | AUR |
ALR) 'NNP' >
<!ELEMENT numlitem - - (para+) >
<!ATTLIST numlitem
label CDATA #IMPLIED >
<!-- -->
<!-- ======================================================= -->
<!-- DEFLIST (Definition List) -->
<!-- ======================================================= -->
<!ELEMENT deflist - - (title?, (term,def)+) >
<!ATTLIST deflist
type (simple | unordered | numbered) 'unordered' >
<!ELEMENT term - O (para)+ >
<!ATTLIST term
id ID #IMPLIED >
<!ELEMENT def - O (para)+ >
<!-- -->
<!-- ======================================================= -->
<!-- PARAGRAPH -->
<!-- ======================================================= -->
<!ELEMENT para - - (#PCDATA | csn | pnr | toc | equ |
grphcref | reffigp | reffigdf |
refext | reftask | refint | eqinline |
txtgrphc | sub | super |emphasis)+ >
<!ATTLIST para
key ID #IMPLIED >
<!ELEMENT emphasis - - (#PCDATA | csn | pnr | toc | equ |
grphcref | reffigp | reffigdf |
refext | reftask | refint |
txtgrphc | sub | super)+ >
<!ATTLIST emphasis
type (b | u | i | bi | bu | ui) #REQUIRED >
<!-- -->
<!-- ======================================================= -->
<!-- REQUIRED ELEMENTS -->
<!-- AND PARAGRAPH CONTENTS -->
<!-- ======================================================= -->
<!-- CONSUMABLE LIST -->
<!ELEMENT conli - - (((con+, ncon*) | ncon+ | isempty), note*) >
<!-- CONSUMABLE -->
<!ELEMENT con - - (conname, connbr?, conqty) >
<!ATTLIST con
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT conname - - (#PCDATA) >
<!ELEMENT connbr - - (#PCDATA) >
<!ELEMENT conqty - - (#PCDATA) >
<!-- NON SPECIFIC CONSUMABLE -->
<!ELEMENT ncon - - (#PCDATA) >
<!ATTLIST ncon
key ID #REQUIRED
chg (N | R | U | D) 'N' >

<!-- STANDARD TOOLS AND EQUIPMENT LIST -->
<!ELEMENT stdli - - (((std+) | isempty), note*) >
<!-- STANDARD TOOLS AND EQUIPMENT -->
<!ELEMENT std - - (stdname, stdnbr?, stdqty) >
<!ATTLIST std
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT stdname - - (#PCDATA) >
<!ELEMENT stdnbr - - (#PCDATA) >
<!ELEMENT stdqty - - (#PCDATA) >

<!-- SPECIAL TOOLS AND EQUIPMENT LIST -->
<!ELEMENT tedli - - (((ted+) | isempty), note*) >
<!-- SPECIAL TOOLS AND EQUIPMENT DESCRIPTION -->
<!ELEMENT ted - - (toolname, (toolnbr | csn), toolqty) >
<!ATTLIST ted
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT toolname - - (#PCDATA) >
<!ELEMENT toolnbr - - (#PCDATA) >
<!ELEMENT toolqty - - (#PCDATA) >


<!-- SYSTEMATIC SPARES LIST -->
<!ELEMENT sspareli - - (((sspare+) | isempty), note*) >
<!-- SYSTEMATIC SPARES -->
<!ELEMENT sspare - - (sspname, (csn | pnr), sspqty) >
<!ATTLIST sspare
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT sspname - - (#PCDATA) >
<!ELEMENT sspqty - - (#PCDATA) >

<!-- NON SYSTEMATIC SPARES LIST -->
<!ELEMENT spareli - - (((spare+) | isempty), note*) >
<!-- NON SYSTEMATIC SPARES -->
<!ELEMENT spare - - (spaname, (csn | pnr), spaqty) >
<!ATTLIST spare
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT spaname - - (#PCDATA) >
<!ELEMENT spaqty - - (#PCDATA) >
<!-- CSN - Catalog Sequence Number - EIPC -->
<!ELEMENT csn - o EMPTY >
<!ATTLIST csn
chapnbr CDATA #IMPLIED
sectnbr CDATA #IMPLIED
unitnbr CDATA #IMPLIED
fignbr CDATA #REQUIRED
itemnbr CDATA #REQUIRED >
<!-- PART NUMBER -->
<!ELEMENT pnr - - (#PCDATA) >

<!-- INDIVIDUAL PROTECTION MATERIAL LIST -->
<!ELEMENT reqprotectli - - (((reqprotect+) | isempty), note*) >
<!-- REQUIRED PERSONS -->
<!ELEMENT reqprotect - - (protectname, protectqty) >
<!ATTLIST reqprotect
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT protectname - - (#PCDATA) >
<!ELEMENT protectqty - - (#PCDATA) >

<!-- PRE-REQUIRED SUPPORT FROM TASKS -->
<!ELEMENT reqtaskli - - (((reqtask+) | isempty), note*) >
<!-- REQUIRED PERSONS -->
<!ELEMENT reqtask - - (reftask, reqtaskname) >
<!ELEMENT reqtaskname - - (#PCDATA) >


<!-- REQUIRED PERSONS LIST -->
<!ELEMENT reqpersli - - (((reqpers+) | isempty), note*) >
<!-- REQUIRED PERSONS -->
<!ELEMENT reqpers - - (perscat, persqual, persnum, perstime?) >
<!ATTLIST reqpers
key ID #REQUIRED
chg (N | R | U | D) 'N' >
<!ELEMENT perscat - - (#PCDATA) >
<!ELEMENT persqual - - (#PCDATA) >
<!ELEMENT persnum - - (#PCDATA) >
<!ELEMENT perstime - - (#PCDATA) >


<!ELEMENT equ - - (#PCDATA) >
<!ATTLIST equ
key ID #IMPLIED
chg (N | R | U | D) 'N' >

<!-- -->
<!-- SUBSCRIPT -->
<!ELEMENT sub - - (#PCDATA) >
<!-- -->
<!-- SUPSCRIPT -->
<!ELEMENT super - - (#PCDATA) >
<!-- -->

<!-- ======================================================= -->
<!-- EQUATIONS -->
<!-- ======================================================= -->
<!ELEMENT eqinline - - (f*) >


<!ENTITY % p.emph "b|it|rm">
<!ENTITY % p.fnt.ph "blkbd|ig|sc|ge|ty|mit">
<!ENTITY % sp.pos "vmk|vmkr|vsp|hsp|tu">
<!ENTITY % f-cs "a|%p.emph|%p.fnt.ph|g|bg|%sp.pos">
<!ENTITY % f-cstxt "#PCDATA|%f-cs">
<!ENTITY % f-scs "rf|inc|v|dy|fi">
<!ENTITY % limits "pr|in|sum">
<!ENTITY % f-bu "fr|rad|lim|ar|stk|cases|eqaln|fen">
<!ENTITY % f-ph "unl|ovl|unb|ovb|sup|inf">
<!ENTITY % f-butxt "%f-bu|%limits|%f-cstxt|%f-scs|%f-ph|phr">
<!ENTITY % f-phtxt "#PCDATA|%p.emph">
<!ENTITY % f-post "par|sqb|llsqb|rrsqb|cub|ceil|fl|ang
|sol|vb|uc|dc">
<!ENTITY % f-style "s|d|t|da|dot|b|bl|n">

<!ELEMENT fd - - (fl)*>
<!ELEMENT fl O O (%f-butxt)*>

<![IGNORE [
<!ELEMENT fd - - (la?,fl)+>
<!ELEMENT la - - (%f-cstxt;|%f-ph;)*>
<!ATTLIST la loc CDATA #IMPLIED>
]]>

<!ELEMENT f - - (%f-butxt)*>

<!ELEMENT fr - - (nu,de)>
<!ATTLIST fr shape CDATA #IMPLIED
align CDATA #IMPLIED
style CDATA #IMPLIED>
<!ELEMENT (nu|de) O O (%f-butxt)*>
<![IGNORE [
<!ELEMENT lim - - (op,ll,ul,opd?)>
]]>
<!ELEMENT lim - - (op,ll?,ul?,opd?)>
<!ATTLIST lim align (r|c) #IMPLIED>
<![IGNORE [
<!ELEMENT op - - (%f-cstxt|rf|%f-ph) -(tu)>
]]>
<!ELEMENT op - - (%f-cstxt|rf|%f-ph)* -(tu)>
<!ELEMENT (ll|ul) O O (%f-butxt)*>
<!ELEMENT opd - O (%f-butxt)*>
<![IGNORE [
<!ELEMENT (%limits) - - (ll,ul,opd?)>
]]>
<!ELEMENT (%limits) - - (ll?,ul?,opd?)>
<!ATTLIST (%limits) align CDATA #IMPLIED>
<!ELEMENT rad - - (rcd,rdx?)>
<!ELEMENT rcd O O (%f-butxt)*>
<!ELEMENT rdx - O (%f-butxt)* -(tu)>
<![IGNORE [
<!ELEMENT fen - - ((%f-butxt)*,(cp,(%f-butxt)*)*,rp)>
]]>
<!ELEMENT fen - - (%f-butxt|cp|rp)*>
<!ATTLIST fen lp (%f-post;) vb
style (%f-style;) s>
<!ELEMENT (cp|rp) - O EMPTY>
<!ATTLIST (cp|rp) post (%f-post;) vb
style (%f-style;) s>
<!ELEMENT ar - - (arr+)>
<!ATTLIST ar cs CDATA #IMPLIED
rs CDATA #IMPLIED
ca CDATA #IMPLIED>
<!ELEMENT arr - O (arc+)>
<!ELEMENT arc O O (%f-butxt)*>
<!ATTLIST arc align CDATA #IMPLIED>
<!ELEMENT cases - - (arr+)>
<!ELEMENT eqaln - - (eqline+)>
<!ELEMENT eqline - - (%f-butxt)*>
<!ELEMENT stk - - (lyr+)>
<!ELEMENT lyr O O (%f-butxt)* -(tu)>
<!ATTLIST lyr align CDATA #IMPLIED>
<!ELEMENT ach - - (%f-butxt)*>
<!ATTLIST ach atom CDATA #IMPLIED>
<!ELEMENT (sup|inf) - - (%f-butxt)* -(tu)>
<!ATTLIST (sup|inf) loc CDATA #IMPLIED>
<!ELEMENT (unl|ovl) - - (%f-butxt)*>
<!ATTLIST (unl|ovl) style CDATA #IMPLIED>
<!ELEMENT (unb|ovb) - - (%f-butxt)*>
0