-
Notifications
You must be signed in to change notification settings - Fork 5.2k
/
simple.rng
88 lines (80 loc) · 1.94 KB
/
simple.rng
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="urn:test:simple.rng">
<start>
<choice>
<element name="simple-element">
<ref name="simple-element" />
</element>
<element name="optional-element">
<ref name="optional-element" />
</element>
<element name="simple-attribute">
<ref name="simple-attribute" />
</element>
<element name="optional-attribute">
<ref name="optional-attribute" />
</element>
<element name="fixed-attribute">
<ref name="fixed-attribute" />
</element>
<element name="attribute-choice">
<ref name="attribute-choice" />
</element>
<element name="value-choice">
<ref name="value-choice" />
</element>
</choice>
</start>
<define name="attribute-choice">
<choice>
<group>
<attribute name="type">
<value>a</value>
</attribute>
<element name="a"><empty /></element>
</group>
<group>
<attribute name="type">
<value>b</value>
</attribute>
<element name="b"><empty /></element>
</group>
</choice>
</define>
<define name="simple-element">
<element name="b">
<empty />
</element>
</define>
<define name="optional-element">
<element name="b">
<optional>
<element name="c">
<empty />
</element>
</optional>
</element>
</define>
<define name="simple-attribute">
<attribute name="x" />
</define>
<define name="optional-attribute">
<optional>
<attribute name="x" />
</optional>
</define>
<define name="fixed-attribute">
<attribute name="x">
<value>1.0</value>
</attribute>
</define>
<define name="value-choice">
<attribute name="x">
<choice>
<choice>
<value>a</value>
<value>b</value>
</choice>
</choice>
</attribute>
</define>
</grammar>