build: Get rid of gst-convenience warning
[gupnp:gupnp-dlna.git] / data / dlna-profiles.rng
1 <?xml version="1.0"?>
2
3 <!--
4 dlna-profiles
5 `- zero or more dlna-profile
6 `- zero or more restrictions
7
8 dlna-profile (name and type mime)
9 `- zero or one parent|restriction type="container"
10 `- one or more parent|restriction type!="container"
11
12 parent (name)
13
14 restrictions
15 `- zero or more restriction
16
17 restriction (type=video|audio|container)
18 `- zero-or-more fields
19 `- id if in restrictions
20
21 field (name and type=string|int|fourcc|fraction|float|boolean
22 `- value of appropriate type
23 -->
24
25 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
26         <define name="include">
27                 <element name="include">
28                         <attribute name="ref">
29                                 <text />
30                         </attribute>
31                 </element>
32         </define>
33
34         <define name="field">
35                 <element name="field">
36                         <attribute name="name">
37                                 <text />
38                         </attribute>
39
40                         <attribute name="type">
41                                 <choice>
42                                         <value>string</value>
43                                         <value>int</value>
44                                         <value>fraction</value>
45                                         <value>float</value>
46                                         <value>boolean</value>
47                                         <value>fourcc</value>
48                                 </choice>
49                         </attribute>
50
51                         <choice>
52                                 <oneOrMore>
53                                         <element name="value">
54                                                 <text />
55                                         </element>
56                                 </oneOrMore>
57                                 <element name="range">
58                                         <attribute name="min">
59                                                 <text />
60                                         </attribute>
61                                         <attribute name="max">
62                                                 <text />
63                                         </attribute>
64                                 </element>
65                         </choice>
66                 </element>
67         </define> <!-- field -->
68
69         <define name="parent">
70                 <element name="parent">
71                         <attribute name="name">
72                                 <text />
73                         </attribute>
74                 </element>
75         </define> <!-- parent -->
76
77         <define name="restriction">
78                 <element name="restriction">
79                         <attribute name="type">
80                                 <choice>
81                                         <value>container</value>
82                                         <value>image</value>
83                                         <value>audio</value>
84                                         <value>video</value>
85                                         <value>text</value>
86                                 </choice>
87                         </attribute>
88                         <optional>
89                                 <attribute name="id">
90                                         <text />
91                                 </attribute>
92                         </optional>
93
94                         <interleave>
95                                 <zeroOrMore>
96                                         <ref name="field" />
97                                 </zeroOrMore>
98                                 <zeroOrMore>
99                                         <ref name="parent" />
100                                 </zeroOrMore>
101                         </interleave>
102                 </element>
103         </define> <!-- restriction -->
104
105         <define name="restrictions">
106                 <element name="restrictions">
107                         <zeroOrMore>
108                                 <ref name="restriction" />
109                         </zeroOrMore>
110                 </element>
111         </define> <!-- restrictions -->
112
113         <define name="dlna-profile">
114                 <element name="dlna-profile">
115                         <attribute name="name">
116                                 <text />
117                         </attribute>
118                         <attribute name="mime">
119                                 <text />
120                         </attribute>
121
122                         <optional>
123                                 <attribute name="id">
124                                         <text />
125                                 </attribute>
126                         </optional>
127                         <optional>
128                                 <attribute name="base-profile">
129                                         <text />
130                                 </attribute>
131                         </optional>
132
133                         <interleave>
134                                 <zeroOrMore>
135                                         <ref name="parent" />
136                                 </zeroOrMore>
137                                 <zeroOrMore>
138                                         <ref name="restriction" />
139                                 </zeroOrMore>
140                         </interleave>
141                 </element>
142         </define> <!-- dlna-profile -->
143
144         <start>
145                 <element name="dlna-profiles">
146                         <interleave>
147                                 <zeroOrMore>
148                                         <ref name="include" />
149                                 </zeroOrMore>
150                                 <zeroOrMore>
151                                         <ref name="restrictions" />
152                                 </zeroOrMore>
153                                 <zeroOrMore>
154                                         <ref name="dlna-profile" />
155                                 </zeroOrMore>
156                         </interleave>
157                 </element>
158         </start>
159 </grammar>