Rename ReelMXF -> ReelFileAsset.
[libdcp.git] / xsd / DCSubtitle.v1.mattsson.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
3   <xs:element name="DCSubtitle">
4     <xs:complexType>
5       <xs:sequence>
6         <xs:element name="SubtitleID" type="UUIDType"/>
7         <xs:element name="MovieTitle" type="xs:string"/>
8         <xs:element name="ReelNumber" type="xs:string"/>
9         <xs:element name="Language" type="xs:string"/>
10         <xs:element ref="LoadFont" minOccurs="0" maxOccurs="unbounded"/>
11         <xs:element ref="Font" minOccurs="0" maxOccurs="unbounded"/>
12         <xs:element ref="Subtitle" minOccurs="0" maxOccurs="unbounded"/>
13       </xs:sequence>
14       <xs:attribute name="Version" use="required">
15         <xs:simpleType>
16           <xs:restriction base="xs:string">
17             <xs:enumeration value="1.0"/>
18             <xs:enumeration value="1.1"/>
19           </xs:restriction>
20         </xs:simpleType>
21       </xs:attribute>
22     </xs:complexType>
23   </xs:element>
24    <xs:element name="LoadFont">
25      <xs:complexType>
26       <xs:simpleContent>
27         <xs:extension base="spaceType">
28           <xs:attribute name="Id" use="required" type="xs:string"/>
29           <xs:attribute name="URI" use="required" type="xs:anyURI"/>
30         </xs:extension>
31       </xs:simpleContent>
32      </xs:complexType>
33    </xs:element>
34   <xs:element name="Font">
35     <xs:complexType mixed="true">
36       <xs:choice minOccurs="0" maxOccurs="unbounded">
37         <xs:element ref="Font"/>
38         <xs:element ref="Subtitle"/>
39         <xs:element ref="Text"/>
40         <xs:element ref="Image"/>
41       </xs:choice>
42       <xs:attribute name="Id" type="xs:string"/>
43       <xs:attribute name="Color" type="fontColorType"/>
44       <xs:attribute name="Effect">
45         <xs:simpleType>
46           <xs:restriction base="xs:string">
47             <xs:enumeration value="none"/>
48             <xs:enumeration value="border"/>
49             <xs:enumeration value="shadow"/>
50           </xs:restriction>
51         </xs:simpleType>
52       </xs:attribute>
53       <xs:attribute name="EffectColor" type="fontColorType"/>
54       <xs:attribute name="Italic" type="yesNoType"/>
55       <xs:attribute name="Script">
56         <xs:simpleType>
57           <xs:restriction base="xs:string">
58             <xs:enumeration value="normal"/>
59             <xs:enumeration value="super"/>
60             <xs:enumeration value="sub"/>
61           </xs:restriction>
62         </xs:simpleType>
63       </xs:attribute>
64       <xs:attribute name="Size" type="xs:positiveInteger"/>
65       <xs:attribute name="AspectAdjust">
66         <xs:simpleType>
67           <xs:restriction base="xs:decimal">
68             <xs:minInclusive value="0.25"/>
69             <xs:maxInclusive value="4.0"/>
70           </xs:restriction>
71         </xs:simpleType>
72       </xs:attribute>
73       <xs:attribute name="Underlined" type="yesNoType"/>
74       <xs:attribute name="Weight">
75         <xs:simpleType>
76           <xs:restriction base="xs:string">
77             <xs:enumeration value="bold"/>
78             <xs:enumeration value="normal"/>
79           </xs:restriction>
80         </xs:simpleType>
81       </xs:attribute>
82       <xs:attribute name="Spacing" type="spacingType"/>
83     </xs:complexType>
84   </xs:element>
85   <xs:element name="Subtitle">
86     <xs:complexType>
87       <xs:choice minOccurs="0" maxOccurs="unbounded">
88         <xs:element ref="Font"/>
89         <xs:element ref="Text"/>
90         <xs:element ref="Image"/>
91       </xs:choice>
92       <xs:attribute name="SpotNumber" use="required" type="xs:string"/>
93       <xs:attribute name="TimeIn" use="required" type="timeType"/>
94       <xs:attribute name="TimeOut" use="required" type="timeType"/>
95       <xs:attribute name="FadeUpTime" type="fadeTimeType"/>
96       <xs:attribute name="FadeDownTime" type="fadeTimeType"/>
97     </xs:complexType>
98   </xs:element>
99   <xs:element name="Text">
100     <xs:complexType mixed="true">
101       <xs:choice minOccurs="0" maxOccurs="unbounded">
102         <xs:element ref="Font"/>
103         <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ruby"/>
104         <xs:element minOccurs="0" maxOccurs="unbounded" ref="Space"/>
105         <xs:element minOccurs="0" maxOccurs="unbounded" ref="HGroup"/>
106         <xs:element minOccurs="0" maxOccurs="unbounded" ref="Rotate"/>
107       </xs:choice>
108       <xs:attribute name="Direction">
109         <xs:simpleType>
110           <xs:restriction base="xs:string">
111             <xs:enumeration value="horizontal"/>
112             <xs:enumeration value="vertical"/>
113           </xs:restriction>
114         </xs:simpleType>
115       </xs:attribute>
116       <xs:attribute name="HAlign" type="hAlignType"/>
117       <xs:attribute name="HPosition" type="positionType"/>
118       <xs:attribute name="VAlign" type="vAlignType" />
119       <xs:attribute name="VPosition" type="positionType"/>
120       <xs:attribute name="ZPosition" type="positionType"/>
121     </xs:complexType>
122   </xs:element>
123   <xs:element name="Ruby">
124     <xs:complexType>
125       <xs:sequence>
126         <xs:element ref="Rb"/>
127         <xs:element ref="Rt"/>
128       </xs:sequence>
129     </xs:complexType>
130   </xs:element>
131   <xs:element name="Rb" type="xs:string"/>
132   <xs:element name="Rt">
133     <xs:complexType>
134       <xs:simpleContent>
135         <xs:extension base="xs:string">
136           <xs:attribute name="Size" type="sizeType"/>
137           <xs:attribute name="Position">
138             <xs:simpleType>
139               <xs:restriction base="xs:string">
140                 <xs:enumeration value="before"/>
141                 <xs:enumeration value="after"/>
142               </xs:restriction>
143             </xs:simpleType>
144           </xs:attribute>
145           <xs:attribute name="Offset" type="spacingType"/>
146           <xs:attribute name="Spacing" type="spacingType"/>
147           <xs:attribute name="AspectAdjust">
148             <xs:simpleType>
149               <xs:restriction base="xs:decimal">
150                 <xs:minInclusive value="0.25"/>
151                 <xs:maxInclusive value="4.0"/>
152               </xs:restriction>
153             </xs:simpleType>
154           </xs:attribute>
155         </xs:extension>
156       </xs:simpleContent>
157     </xs:complexType>
158   </xs:element>
159   <xs:element name="Space">
160     <xs:complexType>
161       <xs:attribute name="Size" type="sizeType"/>
162     </xs:complexType>
163   </xs:element>
164   <xs:element name="HGroup" type="xs:string"/>
165   <xs:element name="Rotate">
166     <xs:complexType>
167       <xs:simpleContent>
168         <xs:extension base="xs:string">
169           <xs:attribute name="Direction">
170             <xs:simpleType>
171               <xs:restriction base="xs:string">
172                 <xs:enumeration value="none"/>
173                 <xs:enumeration value="right"/>
174                 <xs:enumeration value="left"/>
175               </xs:restriction>
176             </xs:simpleType>
177           </xs:attribute>
178         </xs:extension>
179       </xs:simpleContent>
180     </xs:complexType>
181   </xs:element>
182   <xs:element name="Image">
183     <xs:complexType>
184       <xs:simpleContent>
185         <xs:extension base="xs:anyURI">
186           <xs:attribute name="HAlign" type="hAlignType"/>
187           <xs:attribute name="HPosition" type="positionType"/>
188           <xs:attribute name="VAlign" type="vAlignType"/>
189           <xs:attribute name="VPosition" type="positionType"/>
190         </xs:extension>
191       </xs:simpleContent>
192     </xs:complexType>
193   </xs:element>
194   <xs:simpleType name="spaceType">
195     <xs:restriction base="xs:string">
196       <xs:pattern value="\s*"/>
197     </xs:restriction>
198   </xs:simpleType>
199   <xs:simpleType name="UUIDType">
200     <xs:restriction base="xs:string">
201       <xs:pattern value="\s*[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\s*"/>
202     </xs:restriction>
203   </xs:simpleType>
204   <xs:simpleType name="yesNoType">
205     <xs:restriction base="xs:string">
206       <xs:enumeration value="yes"/>
207       <xs:enumeration value="no"/>
208     </xs:restriction>
209   </xs:simpleType>
210   <xs:simpleType name="hAlignType">
211     <xs:restriction base="xs:string">
212       <xs:enumeration value="left"/>
213       <xs:enumeration value="right"/>
214       <xs:enumeration value="center"/>
215     </xs:restriction>
216   </xs:simpleType>
217   <xs:simpleType name="vAlignType">
218     <xs:restriction base="xs:string">
219       <xs:enumeration value="top"/>
220       <xs:enumeration value="bottom"/>
221       <xs:enumeration value="center"/>
222     </xs:restriction>
223   </xs:simpleType>
224   <xs:simpleType name="spacingType">
225     <xs:restriction base="xs:string">
226       <xs:pattern value="-?(\d+|\d+\.\d+)em"/>
227     </xs:restriction>
228   </xs:simpleType>
229   <xs:simpleType name="sizeType">
230     <xs:restriction base="xs:string">
231       <xs:pattern value="(\d+|\d+\.\d+)em"/>
232     </xs:restriction>
233   </xs:simpleType>
234   <xs:simpleType name="timeType">
235     <xs:restriction base="xs:string">
236       <xs:pattern value="\d\d:\d\d:\d\d(:(([0-1][0-9][0-9])|([2][0-4][0-9]))|(\.\d{1,3}))"/>
237     </xs:restriction>
238   </xs:simpleType>
239   <xs:simpleType name="fadeTimeType">
240     <xs:restriction base="xs:string">
241       <xs:pattern value="(\d\d:\d\d:\d\d(:|\.)(\d){1,3})|(\d){1,3}"/>
242     </xs:restriction>
243   </xs:simpleType>
244   <xs:simpleType name="fontColorType">
245     <xs:restriction base="xs:string">
246       <xs:pattern value="[0-9A-Fa-f]{8}"/>
247     </xs:restriction>
248   </xs:simpleType>
249   <xs:simpleType name="positionType">
250     <xs:restriction base="xs:decimal">
251       <xs:minInclusive value="-100"/>
252       <xs:maxInclusive value="100"/>
253     </xs:restriction>
254   </xs:simpleType>
255 </xs:schema>