Verify MCA tags.
[libdcp.git] / xsd / SMPTE-335-2012.xsd
diff --git a/xsd/SMPTE-335-2012.xsd b/xsd/SMPTE-335-2012.xsd
new file mode 100644 (file)
index 0000000..a147f90
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
+       xmlns:r0="http://www.smpte-ra.org/reg/2003/2012"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       attributeFormDefault="unqualified"
+       elementFormDefault="qualified"
+       targetNamespace="http://www.smpte-ra.org/reg/335/2012"
+       xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xmlns:r1="http://www.smpte-ra.org/reg/335/2012">
+
+<xs:import namespace="http://www.smpte-ra.org/reg/2003/2012"/>
+<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.w3.org/1999/xlink.xsd"/>
+
+<xs:simpleType name="UUID">
+<xs:restriction base="xs:anyURI">
+<xs:pattern value="urn:uuid:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}"/>
+</xs:restriction>
+</xs:simpleType>
+
+<xs:complexType name="UUIDArray">
+<xs:sequence>
+<xs:element maxOccurs="unbounded" minOccurs="0" name="Thing" type="r1:UUID"/>
+</xs:sequence>
+</xs:complexType>
+
+<xs:attribute name='escaped' type='xs:boolean'/>
+
+<xs:complexType name="UTF16String">
+<xs:simpleContent>
+<xs:extension base="xs:string">
+<xs:attribute ref="r1:escaped" use="optional"/>
+</xs:extension>
+</xs:simpleContent>
+</xs:complexType>
+
+<xs:simpleType name='AUID'>
+    <xs:restriction base='xs:anyURI'>
+        <xs:pattern 
+                value='urn:smpte:ul:([0-9a-fA-F]{8}\.){3}[0-9a-fA-F]{8}'/>
+        <xs:pattern 
+            value='urn:uuid:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}'/>
+    </xs:restriction>
+</xs:simpleType>
+
+<xs:complexType name="ISO7">
+<xs:simpleContent>
+<xs:extension base="xs:string">
+<xs:attribute ref="r1:escaped" use="optional"/>
+</xs:extension>
+</xs:simpleContent>
+</xs:complexType>
+
+<xs:simpleType name="UInt32">
+<xs:union>
+<xs:simpleType>
+<xs:restriction base="xs:unsignedInt"/>
+</xs:simpleType>
+<xs:simpleType>
+<xs:restriction base="xs:string">
+<xs:pattern value="0x[0-9a-fA-F]{1,8}"/>
+</xs:restriction>
+</xs:simpleType>
+</xs:union>
+</xs:simpleType>
+
+<xs:element name="GroupOfSoundfieldGroupsLinkID" type="r1:UUIDArray"/>
+<xs:element name="MCALinkID" type="r1:UUID"/>
+<xs:element name="MCATagName" type="r1:UTF16String"/>
+<xs:element name="MCATitleSubVersion" type="r1:UTF16String"/>
+<xs:element name="MCALabelDictionaryID" type="r1:AUID"/>
+<xs:element name="MCATagSymbol" type="r1:UTF16String"/>
+<xs:element name="RFC5646SpokenLanguage" type="r1:ISO7"/>
+<xs:element name="MCAPartitionKind" type="r1:UTF16String"/>
+<xs:element name="MCAPartitionNumber" type="r1:UTF16String"/>
+<xs:element name="MCATitleVersion" type="r1:UTF16String"/>
+<xs:element name="MCAAudioContentKind" type="r1:UTF16String"/>
+<xs:element name="MCAAudioElementKind" type="r1:UTF16String"/>
+<xs:element name="MCAEpisode" type="r1:UTF16String"/>
+<xs:element name="MCAChannelID" type="r1:UInt32"/>
+<xs:element name="InstanceID" type="r1:UUID"/>
+<xs:element name="LinkedGenerationID" type="r1:AUID"/>
+<xs:element name="MCATitle" type="r1:UTF16String"/>
+<xs:element name="SoundfieldGroupLinkID" type="r1:UUID"/>
+
+</xs:schema>