<!-- Parameter entities -->
<!ENTITY % basic.content '#PCDATA | dict | tt | em | br | url | sty | acr | image | opt | ref | term | tabular | menu | dq | TeX LaTeX | nbsp | meta | dl | app | verbinput | cs | env | hash | cont | button' >

<!-- Main elements-->

<!ELEMENT manual (preamble, document)>
<!ATTLIST manual fontenc (#PCDATA)+>
<!ELEMENT preamble (title, author+, date, newacro*, newterm*)>
<!ELEMENT document (node+ | printglossary | printacronyms | printindex)>

<!-- Preamble elements-->

<!ELEMENT date (%basic.content;)+>
<!ELEMENT newacro EMPTY>
<!ATTLIST newacro tag (#PCDATA)+ #REQUIRED>
<!ATTLIST newacro short (%basic.content;)+ #REQUIRED>
<!ATTLIST newacro long (%basic.content;)+ #REQUIRED>
<!ELEMENT newterm EMPTY>
<!ATTLIST newterm tag (#PCDATA)+ #REQUIRED>
<!ATTLIST newterm text (%basic.content;)+ #REQUIRED>
<!ATTLIST newterm description (%basic.content;)+>
<!ELEMENT author (%basic.content;)+>
<!ELEMENT translator (%basic.content;)+>

<!-- Document elements -->

<!ELEMENT node (p | float | pre | alltt | dl)+ | printacronyms | printindex >
<!ATTLIST node tag (#PCDATA)+ #REQUIRED>
<!ATTLIST node type (#PCDATA)+ #REQUIRED>
<!ATTLIST node title (%basic.content;)+ #REQUIRED>
<!ATTLIST node pos (#PCDATA)+ #REQUIRED>

<!-- Basic elements -->
<!ELEMENT p (%basic.content;)*>
<!ATTLIST p align (#PCDATA)+>
<!ATTLIST p noindent (#PCDATA)+>
<!ELEMENT url EMPTY>
<!ATTLIST url www (#PCDATA)+ #REQUIRED>
<!ATTLIST url text (#PCDATA)+>
<!ELEMENT dict EMPTY>
<!ATTLIST dict tag (#PCDATA)+ #REQUIRED>
<!ATTLIST dict arg1 (%basic.content;)+>
<!ATTLIST dict arg2 (%basic.content;)+>
<!ATTLIST dict arg3 (%basic.content;)+>
<!ATTLIST dict arg4 (%basic.content;)+>
<!ATTLIST dict arg5 (%basic.content;)+>
<!ATTLIST dict arg6 (%basic.content;)+>
<!ATTLIST dict arg7 (%basic.content;)+>
<!ATTLIST dict arg8 (%basic.content;)+>
<!ATTLIST dict arg9 (%basic.content;)+>
<!ELEMENT button EMPTY>
<!ATTLIST button tag (#PCDATA)+ #REQUIRED>
<!ELEMENT ref EMPTY>
<!ATTLIST ref tag (#PCDATA)+ #REQUIRED>
<!ELEMENT menu EMPTY>
<!ATTLIST menu tag (#PCDATA)+ #REQUIRED>
<!ELEMENT opt EMPTY >
<!ATTLIST opt tag (#PCDATA)+ #REQUIRED>
<!ELEMENT dq (%basic.content;)+>
<!ELEMENT tt (%basic.content;)+>
<!ELEMENT meta (%basic.content;)+>
<!ELEMENT sty (%basic.content;)+>
<!ELEMENT em (%basic.content;)+>
<!ELEMENT b (%basic.content;)+>
<!ELEMENT pre (%basic.content;)+>
<!ELEMENT float (%basic.content;)+>
<!ATTLIST float type (#PCDATA)+ #REQUIRED>
<!ATTLIST float tag (#PCDATA)+ #REQUIRED>
<!ATTLIST float caption (%basic.content;)+ #REQUIRED>
<!ATTLIST float listcaption (%basic.content;)+>
<!ELEMENT dl (dt, dd)+>
<!ELEMENT dt (%basic.content;)+>
<!ELEMENT dd (%basic.content;)+>

<!ELEMENT image EMPTY>
<!ATTLIST image src (%basic.content;)+>
<!ATTLIST image alt (#PCDATA)+>

<!ELEMENT verbinput EMPTY>
<!ATTLIST image src (%basic.content;)+>

<!ELEMENT cs EMPTY>
<!ATTLIST cs tag (%basic.content;)+>

<!ELEMENT env EMPTY>
<!ATTLIST env tag (%basic.content;)+>

<!ELEMENT tabular (tr)+>
<!ATTLIST tabular spec (#PCDATA)+ #REQUIRED>

<!ELEMENT tr (td)+>

<!ELEMENT td (%basic.content;)+>
<!ATTLIST td span (#PCDATA)+>
<!ATTLIST td spec (#PCDATA)+>

<!ELEMENT br EMPTY>
<!ELEMENT hr EMPTY>
<!ELEMENT printindex EMPTY>
<!ELEMENT printacronyms EMPTY>
<!ELEMENT LaTeX EMPTY>
<!ELEMENT TeX EMPTY>
<!ELEMENT app EMPTY>
<!ELEMENT nbsp EMPTY>
<!ELEMENT hash EMPTY>
<!ELEMENT cont EMPTY>
