@likecoin/epubcheck-ts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +339 -0
- package/dist/index.cjs +1904 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +523 -0
- package/dist/index.d.ts +523 -0
- package/dist/index.js +1895 -0
- package/dist/index.js.map +1 -0
- package/package.json +69 -0
- package/schemas/applications.rng +429 -0
- package/schemas/aria.rng +3355 -0
- package/schemas/block.rng +488 -0
- package/schemas/common.rng +1076 -0
- package/schemas/container.rng +24 -0
- package/schemas/core-scripting.rng +950 -0
- package/schemas/data.rng +161 -0
- package/schemas/datatypes.rng +401 -0
- package/schemas/embed.rng +980 -0
- package/schemas/epub-mathml3-inc.rng +161 -0
- package/schemas/epub-nav-30.rnc +44 -0
- package/schemas/epub-nav-30.rng +19985 -0
- package/schemas/epub-nav-30.sch +87 -0
- package/schemas/epub-prefix-attr.rng +17 -0
- package/schemas/epub-shared-inc.rng +29 -0
- package/schemas/epub-ssml-attrs.rng +17 -0
- package/schemas/epub-svg-30.rnc +17 -0
- package/schemas/epub-svg-30.rng +19903 -0
- package/schemas/epub-svg-30.sch +7 -0
- package/schemas/epub-svg-forgiving-inc.rng +315 -0
- package/schemas/epub-switch.rng +121 -0
- package/schemas/epub-trigger.rng +90 -0
- package/schemas/epub-type-attr.rng +12 -0
- package/schemas/epub-xhtml-30.rnc +6 -0
- package/schemas/epub-xhtml-30.rng +19882 -0
- package/schemas/epub-xhtml-30.sch +409 -0
- package/schemas/epub-xhtml-inc.rng +151 -0
- package/schemas/epub-xhtml-integration.rng +565 -0
- package/schemas/epub-xhtml-svg-mathml.rng +17 -0
- package/schemas/form-datatypes.rng +54 -0
- package/schemas/mathml3-common.rng +336 -0
- package/schemas/mathml3-content.rng +1552 -0
- package/schemas/mathml3-inc.rng +30 -0
- package/schemas/mathml3-presentation.rng +2341 -0
- package/schemas/mathml3-strict-content.rng +205 -0
- package/schemas/media.rng +374 -0
- package/schemas/meta.rng +754 -0
- package/schemas/microdata.rng +192 -0
- package/schemas/ncx.rng +308 -0
- package/schemas/ocf-container-30.rnc +37 -0
- package/schemas/ocf-container-30.rng +568 -0
- package/schemas/opf.rng +15 -0
- package/schemas/opf20.rng +513 -0
- package/schemas/package-30.rnc +133 -0
- package/schemas/package-30.rng +1153 -0
- package/schemas/package-30.sch +444 -0
- package/schemas/phrase.rng +746 -0
- package/schemas/rdfa.rng +552 -0
- package/schemas/revision.rng +106 -0
- package/schemas/ruby.rng +141 -0
- package/schemas/sectional.rng +278 -0
- package/schemas/structural.rng +298 -0
- package/schemas/tables.rng +420 -0
- package/schemas/web-components.rng +184 -0
- package/schemas/web-forms.rng +975 -0
- package/schemas/web-forms2.rng +1236 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar ns="http://www.w3.org/2000/svg" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:epub="http://www.idpf.org/2007/ops" xmlns="http://relaxng.org/ns/structure/1.0">
|
|
3
|
+
<!-- ##################################################################### -->
|
|
4
|
+
<define name="svg">
|
|
5
|
+
<a:documentation> RELAX NG Schema for EPUB: EPUB SVG forgiving grammar check #</a:documentation>
|
|
6
|
+
<!-- ##################################################################### -->
|
|
7
|
+
<!--
|
|
8
|
+
The schema:
|
|
9
|
+
- checks the `id` attribute datatype
|
|
10
|
+
- restricts the content model of the `title` and `foreignObject`,
|
|
11
|
+
following the EPUB SVG restrictions
|
|
12
|
+
- checks that `epub:type` is only used on allowed elements
|
|
13
|
+
(i.e. structural, shape, and text elements)
|
|
14
|
+
Ohterwise, it does not report SVG validation errors.
|
|
15
|
+
-->
|
|
16
|
+
<a:documentation>Root Element: <svg></a:documentation>
|
|
17
|
+
<element name="svg">
|
|
18
|
+
<interleave>
|
|
19
|
+
<ref name="svg.inner"/>
|
|
20
|
+
<ref name="svg.attrs"/>
|
|
21
|
+
</interleave>
|
|
22
|
+
</element>
|
|
23
|
+
</define>
|
|
24
|
+
<define name="svg.attrs">
|
|
25
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
26
|
+
</define>
|
|
27
|
+
<define name="svg.inner">
|
|
28
|
+
<ref name="svg.any.inner"/>
|
|
29
|
+
</define>
|
|
30
|
+
<!-- ID attribute is defined specifically, for type checking -->
|
|
31
|
+
<define name="svg.attr.id">
|
|
32
|
+
<a:documentation>Attributes</a:documentation>
|
|
33
|
+
<attribute name="id">
|
|
34
|
+
<ref name="datatype.html5.token"/>
|
|
35
|
+
</attribute>
|
|
36
|
+
</define>
|
|
37
|
+
<!-- Any other attribute -->
|
|
38
|
+
<define name="svg.generic.attr">
|
|
39
|
+
<attribute>
|
|
40
|
+
<anyName>
|
|
41
|
+
<except>
|
|
42
|
+
<name ns="">id</name>
|
|
43
|
+
<nsName ns="http://www.idpf.org/2007/ops"/>
|
|
44
|
+
</except>
|
|
45
|
+
</anyName>
|
|
46
|
+
</attribute>
|
|
47
|
+
</define>
|
|
48
|
+
<!-- Attribute list of elements where `epub:type` is allowed -->
|
|
49
|
+
<define name="svg.epubtype.allowed.attrs">
|
|
50
|
+
<interleave>
|
|
51
|
+
<optional>
|
|
52
|
+
<ref name="epub.type.attr"/>
|
|
53
|
+
</optional>
|
|
54
|
+
<optional>
|
|
55
|
+
<ref name="svg.attr.id"/>
|
|
56
|
+
</optional>
|
|
57
|
+
<zeroOrMore>
|
|
58
|
+
<ref name="svg.generic.attr"/>
|
|
59
|
+
</zeroOrMore>
|
|
60
|
+
</interleave>
|
|
61
|
+
</define>
|
|
62
|
+
<!-- Attribute list of elements where `epub:type` is forbidden -->
|
|
63
|
+
<define name="svg.epubtype.forbidden.attrs">
|
|
64
|
+
<interleave>
|
|
65
|
+
<optional>
|
|
66
|
+
<ref name="svg.attr.id"/>
|
|
67
|
+
</optional>
|
|
68
|
+
<zeroOrMore>
|
|
69
|
+
<ref name="svg.generic.attr"/>
|
|
70
|
+
</zeroOrMore>
|
|
71
|
+
</interleave>
|
|
72
|
+
</define>
|
|
73
|
+
<define name="svg.restricted.elem">
|
|
74
|
+
<a:documentation>Restricted Elements</a:documentation>
|
|
75
|
+
<choice>
|
|
76
|
+
<ref name="svg.foreignObject.elem"/>
|
|
77
|
+
<ref name="svg.title.elem"/>
|
|
78
|
+
</choice>
|
|
79
|
+
</define>
|
|
80
|
+
<define name="svg.foreignObject.elem">
|
|
81
|
+
<a:documentation>Restricted Element: `foreignObject`</a:documentation>
|
|
82
|
+
<element name="foreignObject">
|
|
83
|
+
<interleave>
|
|
84
|
+
<ref name="svg.foreignObject.inner"/>
|
|
85
|
+
<ref name="svg.foreignObject.attrs"/>
|
|
86
|
+
</interleave>
|
|
87
|
+
</element>
|
|
88
|
+
</define>
|
|
89
|
+
<define name="svg.foreignObject.attrs">
|
|
90
|
+
<ref name="svg.epubtype.forbidden.attrs"/>
|
|
91
|
+
</define>
|
|
92
|
+
<define name="svg.foreignObject.inner">
|
|
93
|
+
<ref name="common.inner.flow"/>
|
|
94
|
+
</define>
|
|
95
|
+
<define name="svg.title.elem">
|
|
96
|
+
<a:documentation>Restricted Element: `title`</a:documentation>
|
|
97
|
+
<element name="title">
|
|
98
|
+
<interleave>
|
|
99
|
+
<ref name="svg.title.inner"/>
|
|
100
|
+
<ref name="svg.title.attrs"/>
|
|
101
|
+
</interleave>
|
|
102
|
+
</element>
|
|
103
|
+
</define>
|
|
104
|
+
<define name="svg.title.attrs">
|
|
105
|
+
<ref name="svg.epubtype.forbidden.attrs"/>
|
|
106
|
+
</define>
|
|
107
|
+
<define name="svg.title.inner">
|
|
108
|
+
<ref name="common.inner.anyhtml"/>
|
|
109
|
+
</define>
|
|
110
|
+
<!--
|
|
111
|
+
the elements where `epub:type` is allowed and that have no
|
|
112
|
+
specific content model defined anove.
|
|
113
|
+
|
|
114
|
+
Note: an element in this list also needs to be added to the
|
|
115
|
+
exception clause in the `svg.anyother.elem` class
|
|
116
|
+
-->
|
|
117
|
+
<define name="svg.renderable.elem">
|
|
118
|
+
<a:documentation>Other elements where `epub:type` is allowed</a:documentation>
|
|
119
|
+
<choice>
|
|
120
|
+
<element name="a">
|
|
121
|
+
<interleave>
|
|
122
|
+
<ref name="svg.any.inner"/>
|
|
123
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
124
|
+
</interleave>
|
|
125
|
+
</element>
|
|
126
|
+
<element name="audio">
|
|
127
|
+
<interleave>
|
|
128
|
+
<ref name="svg.any.inner"/>
|
|
129
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
130
|
+
</interleave>
|
|
131
|
+
</element>
|
|
132
|
+
<element name="canvas">
|
|
133
|
+
<interleave>
|
|
134
|
+
<ref name="svg.any.inner"/>
|
|
135
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
136
|
+
</interleave>
|
|
137
|
+
</element>
|
|
138
|
+
<element name="circle">
|
|
139
|
+
<interleave>
|
|
140
|
+
<ref name="svg.any.inner"/>
|
|
141
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
142
|
+
</interleave>
|
|
143
|
+
</element>
|
|
144
|
+
<element name="ellipse">
|
|
145
|
+
<interleave>
|
|
146
|
+
<ref name="svg.any.inner"/>
|
|
147
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
148
|
+
</interleave>
|
|
149
|
+
</element>
|
|
150
|
+
<element name="g">
|
|
151
|
+
<interleave>
|
|
152
|
+
<ref name="svg.any.inner"/>
|
|
153
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
154
|
+
</interleave>
|
|
155
|
+
</element>
|
|
156
|
+
<element name="iframe">
|
|
157
|
+
<interleave>
|
|
158
|
+
<ref name="svg.any.inner"/>
|
|
159
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
160
|
+
</interleave>
|
|
161
|
+
</element>
|
|
162
|
+
<element name="image">
|
|
163
|
+
<interleave>
|
|
164
|
+
<ref name="svg.any.inner"/>
|
|
165
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
166
|
+
</interleave>
|
|
167
|
+
</element>
|
|
168
|
+
<element name="line">
|
|
169
|
+
<interleave>
|
|
170
|
+
<ref name="svg.any.inner"/>
|
|
171
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
172
|
+
</interleave>
|
|
173
|
+
</element>
|
|
174
|
+
<element name="path">
|
|
175
|
+
<interleave>
|
|
176
|
+
<ref name="svg.any.inner"/>
|
|
177
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
178
|
+
</interleave>
|
|
179
|
+
</element>
|
|
180
|
+
<element name="polygon">
|
|
181
|
+
<interleave>
|
|
182
|
+
<ref name="svg.any.inner"/>
|
|
183
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
184
|
+
</interleave>
|
|
185
|
+
</element>
|
|
186
|
+
<element name="polyline">
|
|
187
|
+
<interleave>
|
|
188
|
+
<ref name="svg.any.inner"/>
|
|
189
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
190
|
+
</interleave>
|
|
191
|
+
</element>
|
|
192
|
+
<element name="rect">
|
|
193
|
+
<interleave>
|
|
194
|
+
<ref name="svg.any.inner"/>
|
|
195
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
196
|
+
</interleave>
|
|
197
|
+
</element>
|
|
198
|
+
<element name="svg">
|
|
199
|
+
<interleave>
|
|
200
|
+
<ref name="svg.any.inner"/>
|
|
201
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
202
|
+
</interleave>
|
|
203
|
+
</element>
|
|
204
|
+
<element name="switch">
|
|
205
|
+
<interleave>
|
|
206
|
+
<ref name="svg.any.inner"/>
|
|
207
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
208
|
+
</interleave>
|
|
209
|
+
</element>
|
|
210
|
+
<element name="symbol">
|
|
211
|
+
<interleave>
|
|
212
|
+
<ref name="svg.any.inner"/>
|
|
213
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
214
|
+
</interleave>
|
|
215
|
+
</element>
|
|
216
|
+
<element name="text">
|
|
217
|
+
<interleave>
|
|
218
|
+
<ref name="svg.any.inner"/>
|
|
219
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
220
|
+
</interleave>
|
|
221
|
+
</element>
|
|
222
|
+
<element name="textPath">
|
|
223
|
+
<interleave>
|
|
224
|
+
<ref name="svg.any.inner"/>
|
|
225
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
226
|
+
</interleave>
|
|
227
|
+
</element>
|
|
228
|
+
<element name="tspan">
|
|
229
|
+
<interleave>
|
|
230
|
+
<ref name="svg.any.inner"/>
|
|
231
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
232
|
+
</interleave>
|
|
233
|
+
</element>
|
|
234
|
+
<element name="unknown">
|
|
235
|
+
<interleave>
|
|
236
|
+
<ref name="svg.any.inner"/>
|
|
237
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
238
|
+
</interleave>
|
|
239
|
+
</element>
|
|
240
|
+
<element name="use">
|
|
241
|
+
<interleave>
|
|
242
|
+
<ref name="svg.any.inner"/>
|
|
243
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
244
|
+
</interleave>
|
|
245
|
+
</element>
|
|
246
|
+
<element name="video">
|
|
247
|
+
<interleave>
|
|
248
|
+
<ref name="svg.any.inner"/>
|
|
249
|
+
<ref name="svg.epubtype.allowed.attrs"/>
|
|
250
|
+
</interleave>
|
|
251
|
+
</element>
|
|
252
|
+
</choice>
|
|
253
|
+
</define>
|
|
254
|
+
<define name="svg.epubtype.allowed.elem">
|
|
255
|
+
<ref name="svg.renderable.elem"/>
|
|
256
|
+
</define>
|
|
257
|
+
<!--
|
|
258
|
+
any element except:
|
|
259
|
+
- the elements with a restricted content model
|
|
260
|
+
- the elements allowing `epub:type`
|
|
261
|
+
-->
|
|
262
|
+
<define name="svg.anyother.elem">
|
|
263
|
+
<a:documentation>Any other elements</a:documentation>
|
|
264
|
+
<element>
|
|
265
|
+
<anyName>
|
|
266
|
+
<except>
|
|
267
|
+
<name>foreignObject</name>
|
|
268
|
+
<name>title</name>
|
|
269
|
+
<name>a</name>
|
|
270
|
+
<name>audio</name>
|
|
271
|
+
<name>canvas</name>
|
|
272
|
+
<name>circle</name>
|
|
273
|
+
<name>ellipse</name>
|
|
274
|
+
<name>g</name>
|
|
275
|
+
<name>iframe</name>
|
|
276
|
+
<name>image</name>
|
|
277
|
+
<name>line</name>
|
|
278
|
+
<name>path</name>
|
|
279
|
+
<name>polygon</name>
|
|
280
|
+
<name>polyline</name>
|
|
281
|
+
<name>rect</name>
|
|
282
|
+
<name>svg</name>
|
|
283
|
+
<name>switch</name>
|
|
284
|
+
<name>symbol</name>
|
|
285
|
+
<name>text</name>
|
|
286
|
+
<name>textPath</name>
|
|
287
|
+
<name>tspan</name>
|
|
288
|
+
<name>unknown</name>
|
|
289
|
+
<name>use</name>
|
|
290
|
+
<name>video</name>
|
|
291
|
+
</except>
|
|
292
|
+
</anyName>
|
|
293
|
+
<interleave>
|
|
294
|
+
<ref name="svg.any.inner"/>
|
|
295
|
+
<ref name="svg.epubtype.forbidden.attrs"/>
|
|
296
|
+
</interleave>
|
|
297
|
+
</element>
|
|
298
|
+
</define>
|
|
299
|
+
<define name="svg.any.elem">
|
|
300
|
+
<a:documentation>Anything</a:documentation>
|
|
301
|
+
<choice>
|
|
302
|
+
<ref name="svg.epubtype.allowed.elem"/>
|
|
303
|
+
<ref name="svg.restricted.elem"/>
|
|
304
|
+
<ref name="svg.anyother.elem"/>
|
|
305
|
+
</choice>
|
|
306
|
+
</define>
|
|
307
|
+
<define name="svg.any.inner">
|
|
308
|
+
<interleave>
|
|
309
|
+
<text/>
|
|
310
|
+
<zeroOrMore>
|
|
311
|
+
<ref name="svg.any.elem"/>
|
|
312
|
+
</zeroOrMore>
|
|
313
|
+
</interleave>
|
|
314
|
+
</define>
|
|
315
|
+
</grammar>
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar ns="http://www.w3.org/1999/xhtml" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns="http://relaxng.org/ns/structure/1.0">
|
|
3
|
+
<!-- ##################################################################### -->
|
|
4
|
+
<define name="epub.switch.flow">
|
|
5
|
+
<a:documentation> RELAX NG Schema for EPUB: EPUB switch element #</a:documentation>
|
|
6
|
+
<!-- ##################################################################### -->
|
|
7
|
+
<a:documentation>`epub:switch` element</a:documentation>
|
|
8
|
+
<element name="epub:switch">
|
|
9
|
+
<ref name="epub.switch.attrs"/>
|
|
10
|
+
<oneOrMore>
|
|
11
|
+
<ref name="epub.switch.case.flow"/>
|
|
12
|
+
</oneOrMore>
|
|
13
|
+
<ref name="epub.switch.default.flow"/>
|
|
14
|
+
</element>
|
|
15
|
+
</define>
|
|
16
|
+
<define name="epub.switch.phrasing">
|
|
17
|
+
<element name="epub:switch">
|
|
18
|
+
<ref name="epub.switch.attrs"/>
|
|
19
|
+
<oneOrMore>
|
|
20
|
+
<ref name="epub.switch.case.phrasing"/>
|
|
21
|
+
</oneOrMore>
|
|
22
|
+
<ref name="epub.switch.default.phrasing"/>
|
|
23
|
+
</element>
|
|
24
|
+
</define>
|
|
25
|
+
<define name="epub.switch.case.flow">
|
|
26
|
+
<element name="epub:case">
|
|
27
|
+
<interleave>
|
|
28
|
+
<ref name="epub.case.attrs"/>
|
|
29
|
+
<ref name="epub.case.flow.inner"/>
|
|
30
|
+
</interleave>
|
|
31
|
+
</element>
|
|
32
|
+
</define>
|
|
33
|
+
<define name="epub.switch.case.phrasing">
|
|
34
|
+
<element name="epub:case">
|
|
35
|
+
<interleave>
|
|
36
|
+
<ref name="epub.case.attrs"/>
|
|
37
|
+
<ref name="epub.case.phrasing.inner"/>
|
|
38
|
+
</interleave>
|
|
39
|
+
</element>
|
|
40
|
+
</define>
|
|
41
|
+
<define name="epub.switch.default.flow">
|
|
42
|
+
<element name="epub:default">
|
|
43
|
+
<interleave>
|
|
44
|
+
<ref name="epub.default.attrs"/>
|
|
45
|
+
<ref name="epub.default.flow.inner"/>
|
|
46
|
+
</interleave>
|
|
47
|
+
</element>
|
|
48
|
+
</define>
|
|
49
|
+
<define name="epub.switch.default.phrasing">
|
|
50
|
+
<element name="epub:default">
|
|
51
|
+
<interleave>
|
|
52
|
+
<ref name="epub.default.attrs"/>
|
|
53
|
+
<ref name="epub.default.phrasing.inner"/>
|
|
54
|
+
</interleave>
|
|
55
|
+
</element>
|
|
56
|
+
</define>
|
|
57
|
+
<define name="epub.case.flow.inner">
|
|
58
|
+
<ref name="epub.switch.any"/>
|
|
59
|
+
</define>
|
|
60
|
+
<define name="epub.case.phrasing.inner">
|
|
61
|
+
<ref name="epub.switch.any"/>
|
|
62
|
+
</define>
|
|
63
|
+
<define name="epub.switch.any">
|
|
64
|
+
<zeroOrMore>
|
|
65
|
+
<choice>
|
|
66
|
+
<ref name="common.elem.flow"/>
|
|
67
|
+
<ref name="epub.switch.anyElement"/>
|
|
68
|
+
<text/>
|
|
69
|
+
</choice>
|
|
70
|
+
</zeroOrMore>
|
|
71
|
+
</define>
|
|
72
|
+
<define name="epub.default.flow.inner">
|
|
73
|
+
<ref name="common.inner.flow"/>
|
|
74
|
+
</define>
|
|
75
|
+
<define name="epub.default.phrasing.inner">
|
|
76
|
+
<ref name="common.inner.phrasing"/>
|
|
77
|
+
</define>
|
|
78
|
+
<define name="epub.switch.attrs" combine="interleave">
|
|
79
|
+
<optional>
|
|
80
|
+
<ref name="common.attrs.id"/>
|
|
81
|
+
</optional>
|
|
82
|
+
</define>
|
|
83
|
+
<define name="epub.case.attrs" combine="interleave">
|
|
84
|
+
<interleave>
|
|
85
|
+
<optional>
|
|
86
|
+
<ref name="common.attrs.id"/>
|
|
87
|
+
</optional>
|
|
88
|
+
<ref name="epub.case.attrs.rn"/>
|
|
89
|
+
</interleave>
|
|
90
|
+
</define>
|
|
91
|
+
<define name="epub.default.attrs" combine="interleave">
|
|
92
|
+
<optional>
|
|
93
|
+
<ref name="common.attrs.id"/>
|
|
94
|
+
</optional>
|
|
95
|
+
</define>
|
|
96
|
+
<define name="epub.case.attrs.rn">
|
|
97
|
+
<attribute name="required-namespace">
|
|
98
|
+
<ref name="datatype.URI"/>
|
|
99
|
+
</attribute>
|
|
100
|
+
</define>
|
|
101
|
+
<define name="epub.switch.anyElement">
|
|
102
|
+
<element>
|
|
103
|
+
<anyName>
|
|
104
|
+
<except>
|
|
105
|
+
<nsName ns="http://www.w3.org/1998/Math/MathML"/>
|
|
106
|
+
<nsName/>
|
|
107
|
+
</except>
|
|
108
|
+
</anyName>
|
|
109
|
+
<zeroOrMore>
|
|
110
|
+
<choice>
|
|
111
|
+
<attribute>
|
|
112
|
+
<anyName/>
|
|
113
|
+
</attribute>
|
|
114
|
+
<text/>
|
|
115
|
+
<ref name="epub.switch.anyElement"/>
|
|
116
|
+
<ref name="common.elem.flow"/>
|
|
117
|
+
</choice>
|
|
118
|
+
</zeroOrMore>
|
|
119
|
+
</element>
|
|
120
|
+
</define>
|
|
121
|
+
</grammar>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:epub="http://www.idpf.org/2007/ops" xmlns="http://relaxng.org/ns/structure/1.0">
|
|
3
|
+
<!-- ##################################################################### -->
|
|
4
|
+
<define name="epub.trigger">
|
|
5
|
+
<a:documentation> RELAX NG Schema for EPUB: EPUB trigger element #</a:documentation>
|
|
6
|
+
<!-- ##################################################################### -->
|
|
7
|
+
<a:documentation>`epub:trigger` element</a:documentation>
|
|
8
|
+
<element name="epub:trigger">
|
|
9
|
+
<interleave>
|
|
10
|
+
<ref name="epub.trigger.attrs"/>
|
|
11
|
+
<ref name="epub.trigger.inner"/>
|
|
12
|
+
</interleave>
|
|
13
|
+
</element>
|
|
14
|
+
</define>
|
|
15
|
+
<define name="epub.trigger.attrs">
|
|
16
|
+
<interleave>
|
|
17
|
+
<optional>
|
|
18
|
+
<ref name="common.attrs.id"/>
|
|
19
|
+
</optional>
|
|
20
|
+
<ref name="epub.trigger.attrs.action"/>
|
|
21
|
+
<ref name="epub.trigger.attrs.ref"/>
|
|
22
|
+
<ref name="xml.events.attrs.event"/>
|
|
23
|
+
<ref name="xml.events.attrs.observer"/>
|
|
24
|
+
<optional>
|
|
25
|
+
<ref name="xml.events.attrs.defaultAction"/>
|
|
26
|
+
</optional>
|
|
27
|
+
<optional>
|
|
28
|
+
<ref name="xml.events.attrs.phase"/>
|
|
29
|
+
</optional>
|
|
30
|
+
<optional>
|
|
31
|
+
<ref name="xml.events.attrs.propagate"/>
|
|
32
|
+
</optional>
|
|
33
|
+
</interleave>
|
|
34
|
+
</define>
|
|
35
|
+
<define name="epub.trigger.attrs.action">
|
|
36
|
+
<attribute name="action">
|
|
37
|
+
<choice>
|
|
38
|
+
<value>show</value>
|
|
39
|
+
<value>hide</value>
|
|
40
|
+
<value>play</value>
|
|
41
|
+
<value>pause</value>
|
|
42
|
+
<value>resume</value>
|
|
43
|
+
<value>mute</value>
|
|
44
|
+
<value>unmute</value>
|
|
45
|
+
</choice>
|
|
46
|
+
</attribute>
|
|
47
|
+
</define>
|
|
48
|
+
<define name="epub.trigger.attrs.ref">
|
|
49
|
+
<attribute name="ref">
|
|
50
|
+
<ref name="datatype.IDREF"/>
|
|
51
|
+
</attribute>
|
|
52
|
+
</define>
|
|
53
|
+
<define name="xml.events.attrs.event">
|
|
54
|
+
<attribute name="ev:event">
|
|
55
|
+
<ref name="datatype.NMTOKEN"/>
|
|
56
|
+
</attribute>
|
|
57
|
+
</define>
|
|
58
|
+
<define name="xml.events.attrs.observer">
|
|
59
|
+
<attribute name="ev:observer">
|
|
60
|
+
<ref name="datatype.IDREF"/>
|
|
61
|
+
</attribute>
|
|
62
|
+
</define>
|
|
63
|
+
<define name="xml.events.attrs.defaultAction">
|
|
64
|
+
<attribute name="ev:defaultAction">
|
|
65
|
+
<choice>
|
|
66
|
+
<value>cancel</value>
|
|
67
|
+
<value>perform</value>
|
|
68
|
+
</choice>
|
|
69
|
+
</attribute>
|
|
70
|
+
</define>
|
|
71
|
+
<define name="xml.events.attrs.phase">
|
|
72
|
+
<attribute name="ev:phase">
|
|
73
|
+
<choice>
|
|
74
|
+
<value>capture</value>
|
|
75
|
+
<value>default</value>
|
|
76
|
+
</choice>
|
|
77
|
+
</attribute>
|
|
78
|
+
</define>
|
|
79
|
+
<define name="xml.events.attrs.propagate">
|
|
80
|
+
<attribute name="ev:propagate">
|
|
81
|
+
<choice>
|
|
82
|
+
<value>stop</value>
|
|
83
|
+
<value>continue</value>
|
|
84
|
+
</choice>
|
|
85
|
+
</attribute>
|
|
86
|
+
</define>
|
|
87
|
+
<define name="epub.trigger.inner">
|
|
88
|
+
<empty/>
|
|
89
|
+
</define>
|
|
90
|
+
</grammar>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:epub="http://www.idpf.org/2007/ops" xmlns="http://relaxng.org/ns/structure/1.0">
|
|
3
|
+
<!-- ##################################################################### -->
|
|
4
|
+
<define name="epub.type.attr">
|
|
5
|
+
<a:documentation> RELAX NG Schema for EPUB: `epub:type` attribute #</a:documentation>
|
|
6
|
+
<!-- ##################################################################### -->
|
|
7
|
+
<a:documentation>`epub:type` attribute</a:documentation>
|
|
8
|
+
<attribute name="epub:type">
|
|
9
|
+
<ref name="datatype.properties"/>
|
|
10
|
+
</attribute>
|
|
11
|
+
</define>
|
|
12
|
+
</grammar>
|