Removed some leftovers from media.xsl.
[enkel.git] / enkel / rngdata / form.rng
blobb8c723584d50eda035d29b916175e0a08f188f35
1 <?xml version="1.0" encoding="utf-8"?>
2 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
3 ns="http://enkel.sourceforge.net/xml/form">
6 <define name="id-attribute">
7 <attribute name="id">
8 <text/>
9 </attribute>
10 </define>
12 <define name="field-common">
13 <interleave>
14 <ref name="id-attribute"/>
15 <attribute name="required">
16 <choice>
17 <value>yes</value>
18 <value>no</value>
19 </choice>
20 </attribute>
21 <attribute name="typehint">
22 <text/>
23 </attribute>
24 <element name="label">
25 <text/>
26 </element>
27 <element name="tooltip">
28 <text/>
29 </element>
30 <optional>
31 <element name="error">
32 <text/>
33 </element>
34 </optional>
35 </interleave>
36 </define>
40 <!--
41 Simple fields (with only one value)
42 -->
44 <define name="simple-field-common">
45 <interleave>
46 <ref name="field-common"/>
47 <element name="value">
48 <text/>
49 </element>
50 </interleave>
51 </define>
53 <define name="string-element">
54 <element name="string">
55 <ref name="simple-field-common"/>
56 </element>
57 </define>
59 <define name="longstring-element">
60 <element name="longstring">
61 <ref name="simple-field-common"/>
62 </element>
63 </define>
65 <define name="bool-element">
66 <element name="bool">
67 <ref name="simple-field-common"/>
68 </element>
69 </define>
71 <define name="int-element">
72 <element name="int">
73 <ref name="simple-field-common"/>
74 </element>
75 </define>
77 <define name="long-element">
78 <element name="long">
79 <ref name="simple-field-common"/>
80 </element>
81 </define>
83 <define name="date-element">
84 <element name="date">
85 <ref name="simple-field-common"/>
86 </element>
87 </define>
89 <define name="datetime-element">
90 <element name="datetime">
91 <ref name="simple-field-common"/>
92 </element>
93 </define>
95 <define name="time-element">
96 <element name="time">
97 <ref name="simple-field-common"/>
98 </element>
99 </define>
101 <define name="float-element">
102 <element name="float">
103 <ref name="simple-field-common"/>
104 </element>
105 </define>
107 <define name="text-element">
108 <element name="text">
109 <ref name="simple-field-common"/>
110 </element>
111 </define>
113 <define name="readonly-element">
114 <element name="readonly">
115 <ref name="simple-field-common"/>
116 </element>
117 </define>
119 <define name="hidden-element">
120 <element name="hidden">
121 <ref name="id-attribute"/>
122 <text/>
123 </element>
124 </define>
128 <!--
129 Advanced fields
132 <define name="item-common">
133 <attribute name="value">
134 <text/>
135 </attribute>
136 <text/>
137 </define>
139 <define name="item-element">
140 <element name="item">
141 <ref name="item-common"/>
142 </element>
143 </define>
145 <define name="sel_item-element">
146 <element name="sel_item">
147 <ref name="item-common"/>
148 </element>
149 </define>
151 <define name="one-element">
152 <element name="one">
153 <interleave>
154 <ref name="field-common"/>
155 <element name="onevalue">
156 <interleave>
157 <optional>
158 <ref name="sel_item-element"/>
159 </optional>
160 <zeroOrMore><ref name="item-element"/></zeroOrMore>
161 </interleave>
162 </element>
163 </interleave>
164 </element>
165 </define>
167 <define name="many-element">
168 <element name="many">
169 <interleave>
170 <ref name="field-common"/>
171 <element name="manyvalue">
172 <interleave>
173 <zeroOrMore><ref name="sel_item-element"/></zeroOrMore>
174 <zeroOrMore><ref name="item-element"/></zeroOrMore>
175 </interleave>
176 </element>
177 </interleave>
178 </element>
179 </define>
183 <define name="group-element">
184 <element name="group">
185 <attribute name="title">
186 <text/>
187 </attribute>
188 <ref name="field-elements"/>
189 </element>
190 </define>
192 <define name="field-elements">
193 <interleave>
194 <zeroOrMore><ref name="string-element"/></zeroOrMore>
195 <zeroOrMore><ref name="longstring-element"/></zeroOrMore>
196 <zeroOrMore><ref name="bool-element"/></zeroOrMore>
197 <zeroOrMore><ref name="int-element"/></zeroOrMore>
198 <zeroOrMore><ref name="float-element"/></zeroOrMore>
199 <zeroOrMore><ref name="long-element"/></zeroOrMore>
200 <zeroOrMore><ref name="text-element"/></zeroOrMore>
201 <zeroOrMore><ref name="date-element"/></zeroOrMore>
202 <zeroOrMore><ref name="datetime-element"/></zeroOrMore>
203 <zeroOrMore><ref name="time-element"/></zeroOrMore>
204 <zeroOrMore><ref name="readonly-element"/></zeroOrMore>
205 <zeroOrMore><ref name="hidden-element"/></zeroOrMore>
206 <zeroOrMore><ref name="one-element"/></zeroOrMore>
207 <zeroOrMore><ref name="many-element"/></zeroOrMore>
208 <zeroOrMore><ref name="group-element"/></zeroOrMore>
209 </interleave>
210 </define>
212 <define name="form-element">
213 <element name="form">
214 <attribute name="action">
215 <text/>
216 </attribute>
217 <attribute name="submit_label">
218 <text/>
219 </attribute>
220 <attribute name="method">
221 <choice>
222 <value>post</value>
223 <value>get</value>
224 <value>multipart</value>
225 </choice>
226 </attribute>
227 <optional>
228 <attribute name="id">
229 <text/>
230 </attribute>
231 </optional>
232 <ref name="field-elements"/>
233 </element>
234 </define>
236 </grammar>