Avoid full_name() so we can build on Ubuntu 16.04.
[libdcp.git] / xsd / DCDMSubtitle-2014.xsd
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <xs:schema\r
3     targetNamespace="http://www.smpte-ra.org/schemas/428-7/2014/DCST"\r
4     xmlns:dcst="http://www.smpte-ra.org/schemas/428-7/2014/DCST"\r
5     xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
6     elementFormDefault="qualified" attributeFormDefault="unqualified">\r
7 \r
8   <!-- SubtitleReel -->\r
9   <xs:element name="SubtitleReel" type="dcst:SubtitleReelType"/>\r
10   <xs:complexType name="SubtitleReelType">\r
11     <xs:sequence>\r
12       <xs:element name="Id" type="dcst:UUID"/>\r
13       <xs:element name="ContentTitleText" type="dcst:UserText"/>\r
14       <xs:element name="AnnotationText" type="dcst:UserText" minOccurs="0"/>\r
15       <xs:element name="IssueDate" type="xs:dateTime"/>\r
16       <xs:element name="ReelNumber" type="xs:positiveInteger" minOccurs="0"/>\r
17       <xs:element name="Language" type="xs:language" minOccurs="0" default="en"/>\r
18       <xs:element name="EditRate" type="dcst:RationalType"/>\r
19       <xs:element name="TimeCodeRate" type="xs:positiveInteger"/>\r
20       <xs:element name="StartTime" type="dcst:TimeCodeType" minOccurs="0"/>\r
21       <xs:element name="DisplayType" type="dcst:scopedTokenType" minOccurs="0"/>\r
22       <xs:element name="LoadFont" minOccurs="0" maxOccurs="unbounded">\r
23         <xs:complexType>\r
24           <xs:simpleContent>\r
25             <xs:extension base="xs:anyURI">\r
26               <xs:attribute name="ID" type="xs:string"/>\r
27             </xs:extension>\r
28           </xs:simpleContent>\r
29         </xs:complexType>\r
30       </xs:element>\r
31       <xs:element name="SubtitleList">\r
32         <xs:complexType>\r
33           <xs:choice maxOccurs="unbounded">\r
34             <xs:element name="Subtitle" type="dcst:SubtitleType"/>\r
35             <xs:element name="Font">\r
36               <xs:complexType mixed="true">\r
37                 <xs:complexContent mixed="true">\r
38                   <xs:extension base="dcst:FontType">\r
39                     <xs:sequence>\r
40                       <xs:element name="Subtitle" type="dcst:SubtitleType" maxOccurs="unbounded"/>\r
41                     </xs:sequence>\r
42                   </xs:extension>\r
43                 </xs:complexContent>\r
44               </xs:complexType>\r
45             </xs:element>\r
46           </xs:choice>\r
47         </xs:complexType>\r
48       </xs:element>\r
49     </xs:sequence>\r
50     <xs:attribute name="IntrinsicPictureResolution" type="xs:string" use="optional"/>\r
51   </xs:complexType>\r
52 \r
53   <!-- Subtitle -->\r
54   <xs:complexType name="SubtitleType">\r
55     <xs:sequence>\r
56       <xs:element name="LoadVariableZ" minOccurs="0" maxOccurs="unbounded">\r
57         <xs:complexType>\r
58           <xs:simpleContent>\r
59             <xs:extension base="xs:string">\r
60               <xs:attribute name="ID" type="xs:string" use="required"/>\r
61             </xs:extension>\r
62           </xs:simpleContent>\r
63         </xs:complexType>\r
64       </xs:element>\r
65       <xs:choice maxOccurs="unbounded">\r
66         <xs:element name="Text" type="dcst:TextType"/>\r
67         <xs:element name="Image" type="dcst:ImageType"/>\r
68         <xs:element name="Font">\r
69           <xs:complexType mixed="true">\r
70             <xs:complexContent mixed="true">\r
71               <xs:extension base="dcst:FontType">\r
72                 <xs:sequence>\r
73                   <xs:element name="Text" type="dcst:TextType" maxOccurs="unbounded"/>\r
74                 </xs:sequence>\r
75               </xs:extension>\r
76             </xs:complexContent>\r
77           </xs:complexType>\r
78         </xs:element>\r
79       </xs:choice>\r
80     </xs:sequence>\r
81     <xs:attribute name="SpotNumber" type="xs:string" use="optional"/>\r
82     <xs:attribute name="TimeIn" type="dcst:TimeCodeType" use="required"/>\r
83     <xs:attribute name="TimeOut" type="dcst:TimeCodeType" use="required"/>\r
84     <xs:attribute name="FadeUpTime" type="dcst:TimeCodeType" use="optional"/>\r
85     <xs:attribute name="FadeDownTime" type="dcst:TimeCodeType" use="optional"/>\r
86   </xs:complexType>\r
87 \r
88   <!-- Image -->\r
89   <xs:complexType name="ImageType" mixed="false">\r
90     <xs:simpleContent>\r
91       <xs:extension base="xs:anyURI">\r
92         <xs:attribute name="Halign" use="optional" default="center">\r
93           <xs:simpleType>\r
94             <xs:restriction base="xs:string">\r
95               <xs:enumeration value="center"/>\r
96               <xs:enumeration value="left"/>\r
97               <xs:enumeration value="right"/>\r
98             </xs:restriction>\r
99           </xs:simpleType>\r
100         </xs:attribute>\r
101         <xs:attribute name="Hposition" use="optional" default="0">\r
102           <xs:simpleType>\r
103             <xs:restriction base="xs:decimal">\r
104               <xs:minInclusive value="-100"/>\r
105               <xs:maxInclusive value="100"/>\r
106             </xs:restriction>\r
107           </xs:simpleType>\r
108         </xs:attribute>\r
109         <xs:attribute name="Valign" use="optional" default="center">\r
110           <xs:simpleType>\r
111             <xs:restriction base="xs:string">\r
112               <xs:enumeration value="center"/>\r
113               <xs:enumeration value="bottom"/>\r
114               <xs:enumeration value="top"/>\r
115             </xs:restriction>\r
116           </xs:simpleType>\r
117         </xs:attribute>\r
118         <xs:attribute name="Vposition" use="optional" default="0">\r
119           <xs:simpleType>\r
120             <xs:restriction base="xs:decimal">\r
121               <xs:minInclusive value="-100"/>\r
122               <xs:maxInclusive value="100"/>\r
123             </xs:restriction>\r
124           </xs:simpleType>\r
125         </xs:attribute>\r
126         <xs:attribute name="Zposition" use="optional" default="0">\r
127           <xs:simpleType>\r
128             <xs:restriction base="xs:decimal">\r
129               <xs:minInclusive value="-100"/>\r
130               <xs:maxInclusive value="100"/>\r
131             </xs:restriction>\r
132           </xs:simpleType>\r
133         </xs:attribute>\r
134         <xs:attribute name="VariableZ" use="optional">\r
135           <xs:simpleType>\r
136             <xs:restriction base="xs:string"/>\r
137           </xs:simpleType>\r
138         </xs:attribute>\r
139       </xs:extension>\r
140     </xs:simpleContent>\r
141   </xs:complexType>\r
142 \r
143   <!-- Font -->\r
144   <xs:complexType name="FontType" mixed="true">\r
145     <xs:attribute name="Script" use="optional" default="normal">\r
146       <xs:simpleType>\r
147         <xs:restriction base="xs:string">\r
148           <xs:enumeration value="normal"/>\r
149           <xs:enumeration value="super"/>\r
150           <xs:enumeration value="sub"/>\r
151         </xs:restriction>\r
152       </xs:simpleType>\r
153     </xs:attribute>\r
154     <xs:attribute name="Effect" use="optional" default="shadow">\r
155       <xs:simpleType>\r
156         <xs:restriction base="xs:string">\r
157           <xs:enumeration value="none"/>\r
158           <xs:enumeration value="border"/>\r
159           <xs:enumeration value="shadow"/>\r
160         </xs:restriction>\r
161       </xs:simpleType>\r
162     </xs:attribute>\r
163     <xs:attribute name="Italic" use="optional" default="no">\r
164       <xs:simpleType>\r
165         <xs:restriction base="xs:string">\r
166           <xs:enumeration value="yes"/>\r
167           <xs:enumeration value="no"/>\r
168           <xs:enumeration value="left"/>\r
169           <xs:enumeration value="right"/>\r
170         </xs:restriction>\r
171       </xs:simpleType>\r
172     </xs:attribute>\r
173     <xs:attribute name="Underline" use="optional" default="no">\r
174       <xs:simpleType>\r
175         <xs:restriction base="xs:string">\r
176           <xs:enumeration value="yes"/>\r
177           <xs:enumeration value="no"/>\r
178         </xs:restriction>\r
179       </xs:simpleType>\r
180     </xs:attribute>\r
181     <xs:attribute name="Weight" use="optional" default="normal">\r
182       <xs:simpleType>\r
183         <xs:restriction base="xs:string">\r
184           <xs:enumeration value="bold"/>\r
185           <xs:enumeration value="normal"/>\r
186         </xs:restriction>\r
187       </xs:simpleType>\r
188     </xs:attribute>\r
189     <xs:attribute name="ID" type="xs:string" use="optional"/>\r
190     <xs:attribute name="Color" use="optional" default="FFFFFFFF">\r
191       <xs:simpleType>\r
192         <xs:restriction base="xs:hexBinary">\r
193           <xs:length value="4"/>\r
194         </xs:restriction>\r
195       </xs:simpleType>\r
196     </xs:attribute>\r
197     <xs:attribute name="EffectColor" use="optional" default="FF000000">\r
198       <xs:simpleType>\r
199         <xs:restriction base="xs:hexBinary">\r
200           <xs:length value="4"/>\r
201         </xs:restriction>\r
202       </xs:simpleType>\r
203     </xs:attribute>\r
204     <xs:attribute name="Size" use="optional" default="42">\r
205       <xs:simpleType>\r
206         <xs:restriction base="xs:positiveInteger"/>\r
207       </xs:simpleType>\r
208     </xs:attribute>\r
209     <xs:attribute name="AspectAdjust" use="optional" default="1.0">\r
210       <xs:simpleType>\r
211         <xs:restriction base="xs:decimal">\r
212           <xs:minInclusive value="0.25"/>\r
213           <xs:maxInclusive value="4.0"/>\r
214         </xs:restriction>\r
215       </xs:simpleType>\r
216     </xs:attribute>\r
217     <xs:attribute name="Spacing" use="optional" default="0.0">\r
218       <xs:simpleType>\r
219         <xs:restriction base="xs:decimal">\r
220           <xs:minInclusive value="-1.0"/>\r
221         </xs:restriction>\r
222       </xs:simpleType>\r
223     </xs:attribute>\r
224     <xs:attribute name="EffectSize" use="optional" default="0.01">\r
225       <xs:simpleType>\r
226         <xs:restriction base="xs:decimal">\r
227           <xs:minInclusive value="0.0"/>\r
228         </xs:restriction>\r
229       </xs:simpleType>\r
230     </xs:attribute>\r
231     <xs:attribute name="Feather" use="optional" default="no">\r
232       <xs:simpleType>\r
233         <xs:restriction base="xs:string">\r
234           <xs:enumeration value="yes"/>\r
235           <xs:enumeration value="no"/>\r
236         </xs:restriction>\r
237       </xs:simpleType>\r
238     </xs:attribute>\r
239   </xs:complexType>\r
240 \r
241   <!-- Text -->\r
242   <xs:complexType name="TextType" mixed="true">\r
243     <xs:choice minOccurs="0" maxOccurs="unbounded">\r
244       <xs:element name="Font" type="dcst:FontType"/>\r
245       <xs:element name="Ruby" type="dcst:RubyType"/>\r
246       <xs:element name="Space" type="dcst:SpaceType"/>\r
247       <xs:element name="HGroup" type="xs:string"/>\r
248       <xs:element name="Rotate" type="dcst:RotateType"/>\r
249     </xs:choice>\r
250     <xs:attribute name="Halign" use="optional" default="center">\r
251       <xs:simpleType>\r
252         <xs:restriction base="xs:string">\r
253           <xs:enumeration value="center"/>\r
254           <xs:enumeration value="left"/>\r
255           <xs:enumeration value="right"/>\r
256         </xs:restriction>\r
257       </xs:simpleType>\r
258     </xs:attribute>\r
259     <xs:attribute name="Hposition" use="optional" default="0">\r
260       <xs:simpleType>\r
261         <xs:restriction base="xs:decimal">\r
262           <xs:minInclusive value="-100"/>\r
263           <xs:maxInclusive value="100"/>\r
264         </xs:restriction>\r
265       </xs:simpleType>\r
266     </xs:attribute>\r
267     <xs:attribute name="Valign" use="optional" default="center">\r
268       <xs:simpleType>\r
269         <xs:restriction base="xs:string">\r
270           <xs:enumeration value="center"/>\r
271           <xs:enumeration value="bottom"/>\r
272           <xs:enumeration value="top"/>\r
273         </xs:restriction>\r
274       </xs:simpleType>\r
275     </xs:attribute>\r
276     <xs:attribute name="Vposition" use="optional" default="0">\r
277       <xs:simpleType>\r
278         <xs:restriction base="xs:decimal">\r
279           <xs:minInclusive value="-100"/>\r
280           <xs:maxInclusive value="100"/>\r
281         </xs:restriction>\r
282       </xs:simpleType>\r
283     </xs:attribute>\r
284     <xs:attribute name="Direction" use="optional" default="ltr">\r
285       <xs:simpleType>\r
286         <xs:restriction base="xs:string">\r
287           <xs:enumeration value="ltr"/>\r
288           <xs:enumeration value="rtl"/>\r
289           <xs:enumeration value="ttb"/>\r
290           <xs:enumeration value="btt"/>\r
291           <xs:enumeration value="hor"/>\r
292         </xs:restriction>\r
293       </xs:simpleType>\r
294     </xs:attribute>\r
295     <xs:attribute name="Zposition" use="optional" default="0">\r
296       <xs:simpleType>\r
297         <xs:restriction base="xs:decimal">\r
298           <xs:minInclusive value="-100"/>\r
299           <xs:maxInclusive value="100"/>\r
300         </xs:restriction>\r
301       </xs:simpleType>\r
302     </xs:attribute>\r
303     <xs:attribute name="VariableZ" use="optional">\r
304       <xs:simpleType>\r
305         <xs:restriction base="xs:string"/>\r
306       </xs:simpleType>\r
307     </xs:attribute>\r
308   </xs:complexType>\r
309 \r
310   <!-- Rational Type -->\r
311   <xs:simpleType name="RationalType">\r
312     <xs:restriction>\r
313       <xs:simpleType>\r
314         <xs:list itemType="xs:long"/>\r
315       </xs:simpleType>\r
316       <xs:length value="2"/>\r
317     </xs:restriction>\r
318   </xs:simpleType>\r
319 \r
320   <!-- TimeCode Type -->\r
321   <xs:simpleType name="TimeCodeType">\r
322     <xs:restriction base="xs:string">\r
323        <xs:pattern value="[0-2][0-9]:[0-5][0-9]:[0-5][0-9]:[0-9]+"/>\r
324     </xs:restriction>\r
325   </xs:simpleType>\r
326 \r
327   <!-- Ruby Type -->\r
328   <xs:complexType name="RubyType">\r
329     <xs:sequence>\r
330       <xs:element name="Rb">\r
331         <xs:simpleType>\r
332           <xs:restriction base="xs:string">\r
333             <xs:minLength value="1"/>\r
334           </xs:restriction>\r
335         </xs:simpleType>\r
336       </xs:element>\r
337       <xs:element name="Rt">\r
338         <xs:complexType>\r
339           <xs:simpleContent>\r
340             <xs:extension base="xs:string">\r
341               <xs:attribute name="Size" use="optional" default="0.5">\r
342                 <xs:simpleType>\r
343                   <xs:restriction base="xs:decimal">\r
344                     <xs:minExclusive value="0"/>\r
345                   </xs:restriction>\r
346                 </xs:simpleType>\r
347               </xs:attribute>\r
348               <xs:attribute name="Position" use="optional" default="before">\r
349                 <xs:simpleType>\r
350                   <xs:restriction base="xs:string">\r
351                     <xs:enumeration value="before"/>\r
352                     <xs:enumeration value="after"/>\r
353                   </xs:restriction>\r
354                 </xs:simpleType>\r
355               </xs:attribute>\r
356               <xs:attribute name="Offset" use="optional" default="0.0">\r
357                 <xs:simpleType>\r
358                   <xs:restriction base="xs:decimal">\r
359                     <xs:minInclusive value="-1.0"/>\r
360                   </xs:restriction>\r
361                 </xs:simpleType>\r
362               </xs:attribute>\r
363               <xs:attribute name="Spacing" use="optional" default="0.0">\r
364                 <xs:simpleType>\r
365                   <xs:restriction base="xs:decimal">\r
366                     <xs:minInclusive value="-1.0"/>\r
367                    </xs:restriction>\r
368                 </xs:simpleType>\r
369               </xs:attribute>\r
370               <xs:attribute name="AspectAdjust" use="optional" default="1.0">\r
371                 <xs:simpleType>\r
372                   <xs:restriction base="xs:decimal">\r
373                     <xs:minInclusive value="0.25"/>\r
374                     <xs:maxInclusive value="4.0"/>\r
375                   </xs:restriction>\r
376                 </xs:simpleType>\r
377               </xs:attribute>\r
378             </xs:extension>\r
379           </xs:simpleContent>\r
380         </xs:complexType>\r
381       </xs:element>\r
382     </xs:sequence>\r
383   </xs:complexType>\r
384 \r
385   <!-- Rotate Type -->\r
386   <xs:complexType name="RotateType">\r
387     <xs:simpleContent>\r
388       <xs:extension base="xs:string">\r
389         <xs:attribute name="Direction" use="optional" default="none">\r
390           <xs:simpleType>\r
391             <xs:restriction base="xs:string">\r
392               <xs:enumeration value="none"/>\r
393               <xs:enumeration value="left"/>\r
394               <xs:enumeration value="right"/>\r
395             </xs:restriction>\r
396           </xs:simpleType>\r
397         </xs:attribute>\r
398       </xs:extension>\r
399     </xs:simpleContent>\r
400   </xs:complexType>\r
401 \r
402   <!-- Space Type -->\r
403   <xs:complexType name="SpaceType">\r
404     <xs:simpleContent>\r
405       <xs:extension base="dcst:EmptyElement">\r
406         <xs:attribute name="Size" use="optional" default="0.5">\r
407           <xs:simpleType>\r
408             <xs:restriction base="xs:decimal">\r
409               <xs:minInclusive value="-1.0"/>\r
410             </xs:restriction>\r
411           </xs:simpleType>\r
412         </xs:attribute>\r
413       </xs:extension>\r
414     </xs:simpleContent>\r
415   </xs:complexType>\r
416 \r
417   <!-- UUID Type -->\r
418   <xs:simpleType name="UUID">\r
419     <xs:restriction base="xs:anyURI">\r
420       <xs:pattern value="urn:uuid:[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}"/>\r
421     </xs:restriction>\r
422   </xs:simpleType>\r
423 \r
424   <!-- UserText Type -->\r
425   <xs:complexType name="UserText">\r
426     <xs:simpleContent>\r
427       <xs:extension base="xs:string">\r
428         <xs:attribute name="language" type="xs:language" use="optional" default="en"/>\r
429       </xs:extension>\r
430     </xs:simpleContent>\r
431   </xs:complexType>\r
432 \r
433   <!-- Scoped Token Type -->\r
434   <xs:complexType name="scopedTokenType">\r
435     <xs:simpleContent>\r
436       <xs:extension base="xs:token">\r
437       <xs:attribute name="scope" type="xs:anyURI" use="optional"/>\r
438       </xs:extension>\r
439     </xs:simpleContent>\r
440   </xs:complexType>\r
441 \r
442   <!-- EmptyElement Type -->\r
443   <xs:simpleType name="EmptyElement">\r
444     <xs:restriction base="xs:string">\r
445       <xs:length value="0"/>\r
446     </xs:restriction>\r
447   </xs:simpleType>\r
448 </xs:schema>\r