blob: 96383bcfe1e13c2a3c96e675b3e0d7dfce47ee75 (
plain)
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
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- just as nvset-2.9.rng, but allows for instantiated @name restrictions -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<ref name="element-nvset"/>
</start>
<!-- nvpair/@name:
* generic string by default, parent grammar may want to prohibit
enumerated names -->
<define name="element-nvset.name">
<attribute name="name">
<text/>
</attribute>
</define>
<!-- nvpair/@name:
* defer element-nvset.name grammar item
nvpair/@value:
generic string by default, parent grammar may want to restrict
enumerated pairs (i.e. related to @name) at once -->
<define name="element-nvset.name-value">
<ref name="element-nvset.name"/>
<optional>
<attribute name="value"><text/></attribute>
</optional>
</define>
<!-- Allow easy redefinition in parent grammars -->
<define name="element-nvset.rule">
<externalRef href="rule-3.9.rng"/>
</define>
<define name="element-nvset">
<choice>
<attribute name="id-ref"><data type="IDREF"/></attribute>
<group>
<attribute name="id"><data type="ID"/></attribute>
<interleave>
<optional>
<ref name="element-nvset.rule"/>
</optional>
<zeroOrMore>
<element name="nvpair">
<choice>
<group>
<attribute name="id-ref"><data type="IDREF"/></attribute>
<optional>
<attribute name="name"><text/></attribute>
</optional>
</group>
<group>
<attribute name="id"><data type="ID"/></attribute>
<ref name="element-nvset.name-value"/>
</group>
</choice>
</element>
</zeroOrMore>
<optional>
<externalRef href="score.rng"/>
</optional>
</interleave>
</group>
</choice>
</define>
</grammar>
|