/
ttml2-animation.rnc
82 lines (68 loc) · 2.37 KB
/
ttml2-animation.rnc
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
# .......................................................................
# TTML2 Animation Module ................................................
# .......................................................................
namespace xlink = "http://www.w3.org/1999/xlink"
# animate reference attribute; must reference /head/animation/{animate,set}
TTAF.animate.attrib
= attribute animate { xsd:IDREFS }?
# animation binding attribute class
TTAF.AnimationBinding.attrib.class &=
TTAF.animate.attrib
# animation - generic animation container
TTAF.animation =
element animation {
TTAF.animation.attlist,
TTAF.animation.content
}
TTAF.animation.attlist &=
TTAF.Core.attrib.class
TTAF.animation.content.extra = empty
TTAF.animation.content =
(TTAF.Metadata.class*,
TTAF.animation.animate*,
TTAF.animation.content.extra*)
# animate - general animation
TTAF.animation.animate =
element animate {
TTAF.animation.animate.attlist,
TTAF.animation.animate.content
}
TTAF.animation.animate.attlist &=
TTAF.Core.attrib.class,
TTAF.Core.Condition.attrib.class,
TTAF.Styled.NoBinding.attrib.class,
TTAF.Timed.attrib.class,
attribute calcMode { TTAF.CalcMode.datatype }?,
attribute fill { TTAF.Fill.datatype }?,
attribute keySplines { TTAF.KeySplines.datatype }?,
attribute keyTimes { TTAF.KeyTimes.datatype }?,
attribute repeatCount { TTAF.RepeatCount.datatype }?
TTAF.animation.animate.content.extra = empty
TTAF.animation.animate.content =
(TTAF.Metadata.class*,
TTAF.animation.animate.content.extra*)
# set - discrete animation
TTAF.animation.set =
element set {
TTAF.animation.set.attlist,
TTAF.animation.set.content
}
TTAF.animation.set.attlist &=
TTAF.Core.attrib.class,
TTAF.Core.Condition.attrib.class,
TTAF.Styled.NoBinding.attrib.class,
TTAF.Timed.attrib.class,
attribute fill { TTAF.Fill.datatype }?,
attribute repeatCount { TTAF.RepeatCount.datatype }?
TTAF.animation.set.content.extra = empty
TTAF.animation.set.content =
(TTAF.Metadata.class*,
TTAF.animation.set.content.extra*)
TTAF.Animation.extra = empty
TTAF.Animation.class |=
TTAF.animation.animate |
TTAF.animation.set |
TTAF.Animation.extra
# .......................................................................
# .......................................................................
# .......................................................................