From zedwiki
<!-- exam version 1.1 (1/4/08 SJP) -->
<!-- Added subsect2 (1/4/04 SJP) -->
<!ENTITY % para-sequence "(p | list | box | table | graphic | figure | vdesp
| aline | poem | play)+">
<!ENTITY % text "#PCDATA | i | b | u | acronym | sup | sub | vdes | aline">
<!ELEMENT exam (ver, comment?, front, body, end?)>
<!ELEMENT ver (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
<!ELEMENT front (title, subtitle*, date?, time?, (fsection | p)*)>
<!ELEMENT fsection (head?, %para-sequence;)+>
<!ELEMENT section (head? , subhead*, (%para-sequence; | qu | subsect1)+)>
<!ELEMENT subsect1 (head? , subhead*, (%para-sequence; | qu | subsect2)+)>
<!ELEMENT subsect2 (head? , subhead*, (%para-sequence; | qu)+)>
<!ELEMENT body (p | qu | section)+>
<!ELEMENT end (p)+>
<!ELEMENT title (%text;)*>
<!ELEMENT subtitle (%text;)*>
<!ELEMENT litem (%text; | graphic)*>
<!ELEMENT acronym (#PCDATA)>
<!ELEMENT b (#PCDATA | acronym)*>
<!ELEMENT i (#PCDATA | acronym)*>
<!ELEMENT u (#PCDATA | acronym)*>
<!ELEMENT sup (#PCDATA)>
<!ELEMENT sub (#PCDATA)>
<!ELEMENT p (%text; | list | graphic)*>
<!ELEMENT qu (qnum, (%para-sequence; | qu2)+)>
<!ELEMENT qu2 (qnum, (%para-sequence; | qu3)+)>
<!ELEMENT qu3 (qnum, (%para-sequence;)+)>
<!ELEMENT qnum (#PCDATA)*>
<!ELEMENT vdesp (%text;)*>
<!ELEMENT date (%text;)*>
<!ELEMENT time (%text;)*>
<!ELEMENT table (head? , (p | tablebody)+)>
<!ELEMENT tablebody (colheads* , row+)>
<!ELEMENT colheads (chead+)>
<!ELEMENT chead (%text;)*>
<!ELEMENT row (rowhead? , di+)>
<!ELEMENT rowhead (%text;)*>
<!ELEMENT di (%text;)*>
<!ELEMENT box (head? , (%para-sequence;))>
<!ELEMENT head (%text;)*>
<!ELEMENT subhead (%text;)*>
<!ELEMENT list (list | litem)+>
<!ELEMENT figure (head?, caption?, (graphic | vdes)? )>
<!ELEMENT graphic (imgbox, vdes)>
<!ELEMENT imgbox (image)>
<!ELEMENT image (#PCDATA)>
<!ELEMENT caption (%text;)*>
<!ELEMENT vdes (#PCDATA | acronym)*>
<!ELEMENT aline EMPTY>
<!ELEMENT play (stagedir | speech)+>
<!ELEMENT speech (speaker , (stagedir | spchtext | pline)+,
(stagedir | spchtext | pline | stanza)*)>
<!ELEMENT stagedir (%text; | character | lineno)*>
<!ELEMENT spchtext (%text; | stagedir | lineno)*>
<!ELEMENT speaker (%text; | lineno)*>
<!ELEMENT character (%text;)*>
<!ELEMENT lineno (#PCDATA)>
<!ELEMENT poem (head? , ((pline* , stanza*) | author | itemnotes |
source)+)>
<!ELEMENT stanza (pline+)>
<!ELEMENT pline (%text; | stagedir | lineno)*>
<!ELEMENT itemnotes (noteid , notetext)+>
<!ELEMENT noteid (%text;)*>
<!ELEMENT notetext (%text;)*>
<!ELEMENT sourceelt (%text;)*>
<!ELEMENT source (sourceelt+)>
<!ELEMENT author (%text;)*>
<!ATTLIST list type (plain | bullet) #IMPLIED>
<!ATTLIST aline type (short, medium, full) #IMPLIED>
<!ATTLIST image source CDATA #REQUIRED
width NMTOKEN #IMPLIED>
<!ATTLIST imgbox position (centre) #IMPLIED>
<!ATTLIST play linenumbers (yes | no) #IMPLIED>