From zedwiki
<!-- RNIB Magazine DTD version 1.33 (SJP 14/2/08) -->
<!-- Added article3 (SJP 14/2/08) -->
<!-- Added bannerlogo tag (SJP 9/1/08) -->
<!-- Allowed linkto in b and i (SJP 7/8/07) -->
<!-- Allowed email and web in b and i (SJP 20/4/07) -->
<!-- Added brlincl attribute for cover (SJP: 30/03/06) -->
<!-- Added brlform attribute for poetry and tables (SJP: 23/09/04) -->
<!-- Added chessdiag element (9/9/04 SJP) -->
<!-- Added linkto element (16/2/04 SJP) -->
<!-- Added chess and chessgame (SJP: 7/7/03) -->
<!-- Added textbreak (SJP: 2/5/03) -->
<!-- Added cover (SJP: 11/3/03) -->
<!-- Added ppage, sup and sub (SJP: 18/10/02) -->
<!-- Added pb element for paragraph break (=3 space para in braille) (SJP 8/1/02) -->
<!-- Added back containing index. Added poem to topic (SJP 3/9/01) -->
<!-- Added p, entryp to contents. Added minor attribute to
article2 (SJP 11/7/01) -->
<!-- Added subhead to topic element (SJP 16/6/01) -->
<!-- Added email and web address elements (SJP 2/2/00) -->
<!-- Added ver for system version number (SJP 5/1/00) -->
<!-- Added lqtext (SJP 2/11/99) -->
<!-- Added subtitle, subhead, subauthor, address, addline (SJP 21/10/99) -->
<!-- Added medium attribute to elements in front (SJP 30/9/99) -->
<!-- Changed contents entries to be non-nesting;
added daisy attribute; contents and other front matter
optional. Removed bookent and bookdes. (SJP 22/9/99) -->
<!-- Version 1.11 (SJP 6/9/99) -->
<!-- Added bookent and bookdes for book lists (SJP 6/9/99)) -->
<!-- (Version 1.1 (SJP 31/8/99)) -->
<!-- Removed msaddition: replaced by stext and medium attribute (SJP 31/8/99)-->
<!-- Converted to XML version (for WP9). (SJP 10/8/99) -->
<!-- (Version 1.0 (SJP 16/1/98)) -->
<!ENTITY % text "#PCDATA | i | b | acronym | computer | email | web | linkto | stext | ppage | sup | sub | chess">
<!ENTITY % para-sequence "(p | list | longquote | textbreak | chessgame | chessdiag)*">
<!ELEMENT mag (ver, front , body, back?, cover?)>
<!ELEMENT front (bannerlogo?, title , subtitle*, date , issue? , (editor | pubinfo | price | p | list | contents)*)>
<!ELEMENT bannerlogo (#PCDATA)>
<!ELEMENT contents (head , p*, (entry1 | entry2 | entry3 | entry4 | entryp)+)>
<!ELEMENT article (head , subhead* , author? , subauthor*, source? , intro? , (
(%para-sequence;) | topic | poem |
table | address | article2)+)>
<!ELEMENT article2 (head , subhead* , author? , subauthor*, source? , intro? , (
(%para-sequence;) | topic | poem |
table | address | article3)+)>
<!ELEMENT article3 (head , subhead* , author? , subauthor*, source? , intro? , (
(%para-sequence;) | topic | poem |
table | address)+)>
<!ELEMENT p (%text; | pb | list | longquote | poem |
source)*>
<!ELEMENT source (%text;)*>
<!ELEMENT author (%text;)*>
<!ELEMENT subauthor (%text;)*>
<!ELEMENT date (%text;)*>
<!ELEMENT title (%text;)*>
<!ELEMENT subtitle (%text;)*>
<!ELEMENT ver (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT linkto (#PCDATA | acronym)*>
<!ELEMENT sup (#PCDATA)>
<!ELEMENT sub (#PCDATA)>
<!ELEMENT pageno (#PCDATA)>
<!ELEMENT artname (%text;)*>
<!ELEMENT price (%text;)*>
<!ELEMENT pubinfo (%text;)*>
<!ELEMENT editor (%text;)*>
<!ELEMENT body (p | article)+>
<!ELEMENT i (#PCDATA | acronym | web | email | linkto)*>
<!ELEMENT b (#PCDATA | acronym | web | email | linkto)*>
<!ELEMENT ppage (#PCDATA)>
<!ELEMENT pb (#PCDATA)>
<!ELEMENT stext (%text;)*>
<!ELEMENT intro (%text;)*>
<!ELEMENT head (%text;)*>
<!ELEMENT subhead (%text;)*>
<!ELEMENT acronym (#PCDATA)>
<!ELEMENT litem (%text;)*>
<!ELEMENT lqtext (%text; | list)*>
<!ELEMENT longquote (lqtext | lqpara | list | source)*>
<!ELEMENT list (litem+)>
<!ELEMENT poem (head? , (pline* , stanza*) , author?)>
<!ELEMENT pline (%text;)*>
<!ELEMENT stanza (pline+)>
<!ELEMENT address (addline+)>
<!ELEMENT addline (%text;)*>
<!ELEMENT table (head? , p* , tablebody+ , source?)>
<!ELEMENT tablebody (colheads* , row+)>
<!ELEMENT chead (%text;)*>
<!ELEMENT row (rowhead? , di+)>
<!ELEMENT rowhead (%text;)*>
<!ELEMENT topic (head? , subhead*, ((%para-sequence;) | table | poem)+)>
<!ELEMENT entry1 (artname , pageno)>
<!ELEMENT entry2 (artname , pageno)>
<!ELEMENT entry3 (artname , pageno)>
<!ELEMENT entry4 (artname , pageno)>
<!ELEMENT entryp (artname)>
<!ELEMENT lqpara (%text; | list)*>
<!ELEMENT colheads (chead+)>
<!ELEMENT computer (#PCDATA)>
<!ELEMENT issue (%text;)*>
<!ELEMENT di (%text;)*>
<!ELEMENT textbreak (%text;)*>
<!ELEMENT chessgame (#PCDATA)>
<!ELEMENT chessdiag (#PCDATA)>
<!ELEMENT chess (#PCDATA)>
<!ELEMENT back (index+)>
<!ELEMENT index (head , (%para-sequence;)? , (ientry1 | ientry2 | ientry3 | isect)+)>
<!ELEMENT isect (head?, (ientry1 | ientry2 | ientry3)+)>
<!ELEMENT ientry1 (%text;)*>
<!ELEMENT ientry2 (%text;)*>
<!ELEMENT ientry3 (%text;)*>
<!ELEMENT cover (%para-sequence;)>
<!ATTLIST p medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST pubinfo medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST price medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST editor medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST issue medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST contents medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST stext medium (braille | print | html | moon | etext | daisy) #IMPLIED>
<!ATTLIST topic type CDATA #REQUIRED>
<!ATTLIST article2 type (minor) #IMPLIED>
<!ATTLIST linkto location CDATA #REQUIRED>
<!ATTLIST table brlform (para | table) #IMPLIED>
<!ATTLIST poem brlform (linebyline | linesign) #IMPLIED>
<!ATTLIST cover brlincl (yes | no) #IMPLIED>