-
-
Notifications
You must be signed in to change notification settings - Fork 32
/
message.dtd
51 lines (39 loc) · 1.31 KB
/
message.dtd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!ELEMENT message (
(declaration | unsupportedStatement)*,
(pattern | (selectors,variant+))
)>
<!-- In a <declaration type="input">, the <expression> MUST contain a <variable> -->
<!ELEMENT declaration (expression)>
<!ATTLIST declaration
type (input | local) #REQUIRED
name NMTOKEN #REQUIRED
>
<!ELEMENT unsupportedStatement (expression)+>
<!ATTLIST unsupportedStatement
keyword CDATA #REQUIRED
body CDATA #IMPLIED
>
<!ELEMENT selectors (expression)+>
<!ELEMENT variant (key+,pattern)>
<!ELEMENT key (#PCDATA)>
<!ATTLIST key catchall (true | false) "false">
<!ELEMENT pattern (#PCDATA | expression | markup)*>
<!ELEMENT expression (
((literal | variable), (functionAnnotation | unsupportedAnnotation)?, attribute*) |
((functionAnnotation | unsupportedAnnotation), attribute*)
)>
<!ELEMENT literal (#PCDATA)>
<!ELEMENT variable (EMPTY)>
<!ATTLIST variable name NMTOKEN #REQUIRED>
<!ELEMENT functionAnnotation (option)*>
<!ATTLIST functionAnnotation name NMTOKEN #REQUIRED>
<!ELEMENT option (literal | variable)>
<!ATTLIST option name NMTOKEN #REQUIRED>
<!ELEMENT unsupportedAnnotation (#PCDATA)>
<!ELEMENT attribute (literal | variable)?>
<!ATTLIST attribute name NMTOKEN #REQUIRED>
<!ELEMENT markup (option*, attribute*)>
<!ATTLIST markup
kind (open | standalone | close) #REQUIRED
name NMTOKEN #REQUIRED
>