Python 3.4+ compatibility (while dropping Python < 2.6).
[texml.git] / dtd / texml.dtd
1 <!ENTITY % nomath  "#PCDATA|TeXML|cmd|env|group|ctrl|spec|pdf">
2
3 <!ENTITY % content "%nomath;|math|dmath">
4
5 <!ELEMENT TeXML  (%content;)*>
6
7 <!ATTLIST TeXML
8   mode        (text|math)  #IMPLIED
9   escape      (0|1)        #IMPLIED
10   emptylines  (0|1)        #IMPLIED
11   ligatures   (0|1)        #IMPLIED
12   ws          (0|1)        #IMPLIED
13 >
14
15 <!ELEMENT env    (%content;|opt|parm)*>
16
17 <!ATTLIST env
18   name    CDATA  #REQUIRED
19   begin   CDATA  #IMPLIED
20   end     CDATA  #IMPLIED
21   start   CDATA  #IMPLIED
22   stop    CDATA  #IMPLIED
23   nl1     (0|1)  #IMPLIED
24   nl2     (0|1)  #IMPLIED
25   nl3     (0|1)  #IMPLIED
26   nl4     (0|1)  #IMPLIED
27
28 >
29
30 <!ELEMENT group  (%content;)*>
31
32 <!ELEMENT math   (%nomath;)*>
33
34 <!ELEMENT dmath  (%nomath;)*>
35
36 <!ELEMENT cmd    (opt|parm)*>
37
38 <!ATTLIST cmd
39   name    CDATA  #REQUIRED
40   nl1     (0|1)  #IMPLIED
41   nl2     (0|1)  #IMPLIED
42   gr      (0|1)  #IMPLIED
43 >
44
45 <!ENTITY % inopt "%content;">
46
47 <!ELEMENT opt    (%inopt;)*>
48
49 <!ELEMENT parm   (%inopt;)*>
50
51 <!ELEMENT ctrl   EMPTY>
52
53 <!ATTLIST ctrl
54   ch      CDATA  #REQUIRED
55 >
56
57 <!ELEMENT spec   EMPTY>
58
59 <!ELEMENT pdf    (#PCDATA)>
60
61 <!--
62 ; Should be so:
63
64 ; <!ATTLIST spec
65 ;   cat (esc|bg|eg|mshift|align|parm|sup|sub|tilde|comment|vert|lt|gt|nl|nl?|space|nil) #REQUIRED
66 ; >
67 ;
68 ; but 'nl?' is not valid in NmToken. So I use CDATA
69 -->
70 <!ATTLIST spec
71   cat     CDATA  #REQUIRED
72 >