summaryrefslogtreecommitdiff
path: root/xsd
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-09-08 20:42:55 +0200
committerCarl Hetherington <cth@carlh.net>2020-09-21 21:57:18 +0200
commitcdd98db2de839a5ef14b3c9c67a58392a8e123c1 (patch)
tree49253d02f5c808dd0f3923c5b5861ea8a7182f6b /xsd
parent68b7ad9d59f73e26368b3a42d4d7ed1a77805237 (diff)
Verify MCA tags.
Diffstat (limited to 'xsd')
-rw-r--r--xsd/SMPTE-335-2012.xsd85
-rw-r--r--xsd/SMPTE-395-2014-13-1-aaf.xsd51
-rw-r--r--xsd/SMPTE-429-12-2008.xsd24
-rw-r--r--xsd/isdcf-mca.xsd16
-rw-r--r--xsd/xlink.xsd270
5 files changed, 446 insertions, 0 deletions
diff --git a/xsd/SMPTE-335-2012.xsd b/xsd/SMPTE-335-2012.xsd
new file mode 100644
index 00000000..a147f905
--- /dev/null
+++ b/xsd/SMPTE-335-2012.xsd
@@ -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>
diff --git a/xsd/SMPTE-395-2014-13-1-aaf.xsd b/xsd/SMPTE-395-2014-13-1-aaf.xsd
new file mode 100644
index 00000000..0037e43b
--- /dev/null
+++ b/xsd/SMPTE-395-2014-13-1-aaf.xsd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?><!--Created: Mon Sep 07 16:19:25 UTC 2020--><!--By: regxmllib build ff4e9909fc235f2cb20118cc967786fb46ca7e60--><xs:schema xmlns:r0="http://www.smpte-ra.org/reg/335/2012" xmlns:r1="http://www.smpte-ra.org/reg/335/2012/13/1/aaf" xmlns:r2="http://www.smpte-ra.org/reg/335/2012/13/1/amwa/rules" xmlns:r3="http://www.smpte-ra.org/reg/335/2012/13/4/archive" xmlns:r4="http://www.loc.gov/avconservation" xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.smpte-ra.org/reg/395/2014/13/1/aaf" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+<xs:import namespace="http://www.smpte-ra.org/reg/335/2012"/>
+
+<xs:element name="AudioChannelLabelSubDescriptor">
+<xs:complexType>
+<xs:all>
+<xs:element minOccurs="0" ref="r0:SoundfieldGroupLinkID"/>
+<xs:element ref="r0:MCALinkID"/>
+<xs:element minOccurs="0" ref="r0:MCATagName"/>
+<xs:element minOccurs="0" ref="r0:MCATitle"/>
+<xs:element minOccurs="0" ref="r0:MCATitleSubVersion"/>
+<xs:element ref="r0:MCALabelDictionaryID"/>
+<xs:element ref="r0:MCATagSymbol"/>
+<xs:element minOccurs="0" ref="r0:RFC5646SpokenLanguage"/>
+<xs:element minOccurs="0" ref="r0:MCAPartitionNumber"/>
+<xs:element minOccurs="0" ref="r0:MCAPartitionKind"/>
+<xs:element minOccurs="0" ref="r0:MCATitleVersion"/>
+<xs:element minOccurs="0" ref="r0:MCAAudioElementKind"/>
+<xs:element minOccurs="0" ref="r0:MCAAudioContentKind"/>
+<xs:element minOccurs="0" ref="r0:MCAEpisode"/>
+<xs:element minOccurs="0" ref="r0:MCAChannelID"/>
+<xs:element minOccurs="0" ref="r0:InstanceID"/>
+</xs:all>
+</xs:complexType>
+</xs:element>
+
+<xs:element name="SoundfieldGroupLabelSubDescriptor">
+<xs:complexType>
+<xs:all>
+<xs:element minOccurs="0" ref="r0:GroupOfSoundfieldGroupsLinkID"/>
+<xs:element ref="r0:MCALinkID"/>
+<xs:element minOccurs="0" ref="r0:MCATagName"/>
+<xs:element minOccurs="0" ref="r0:MCATitle"/>
+<xs:element minOccurs="0" ref="r0:MCATitleSubVersion"/>
+<xs:element ref="r0:MCALabelDictionaryID"/>
+<xs:element ref="r0:MCATagSymbol"/>
+<xs:element minOccurs="0" ref="r0:RFC5646SpokenLanguage"/>
+<xs:element minOccurs="0" ref="r0:MCAPartitionNumber"/>
+<xs:element minOccurs="0" ref="r0:MCAPartitionKind"/>
+<xs:element minOccurs="0" ref="r0:MCATitleVersion"/>
+<xs:element minOccurs="0" ref="r0:MCAAudioElementKind"/>
+<xs:element minOccurs="0" ref="r0:MCAAudioContentKind"/>
+<xs:element minOccurs="0" ref="r0:MCAEpisode"/>
+<xs:element minOccurs="0" ref="r0:MCAChannelID"/>
+<xs:element minOccurs="0" ref="r0:InstanceID"/>
+</xs:all>
+</xs:complexType>
+</xs:element>
+
+</xs:schema>
diff --git a/xsd/SMPTE-429-12-2008.xsd b/xsd/SMPTE-429-12-2008.xsd
new file mode 100644
index 00000000..8fd8cd84
--- /dev/null
+++ b/xsd/SMPTE-429-12-2008.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema targetNamespace="http://www.smpte-ra.org/schemas/429-12/2008/TT"
+xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:cpl="http://www.smpte-ra.org/schemas/429-7/2006/CPL"
+xmlns:tt="http://www.smpte-ra.org/schemas/429-12/2008/TT"
+elementFormDefault="qualified" attributeFormDefault="unqualified">
+<xs:import namespace="http://www.smpte-ra.org/schemas/429-7/2006/CPL"/>
+<!-- MainCaption -->
+<xs:element name="MainCaption" type="tt:CaptionTrackFileAssetType"/>
+<!-- ClosedCaption -->
+<xs:element name="ClosedCaption" type="tt:CaptionTrackFileAssetType"/>
+<!-- CaptionTrackFileAssetType -->
+<xs:complexType name="CaptionTrackFileAssetType">
+<xs:complexContent>
+<xs:extension base="cpl:TrackFileAssetType">
+<xs:sequence>
+<xs:element name="Language" type="xs:language" minOccurs="0"/>
+</xs:sequence>
+</xs:extension>
+</xs:complexContent>
+</xs:complexType>
+<!-- ClosedSubtitle -->
+<xs:element name="ClosedSubtitle" type="cpl:SubtitleTrackFileAssetType"/>
+</xs:schema>
diff --git a/xsd/isdcf-mca.xsd b/xsd/isdcf-mca.xsd
new file mode 100644
index 00000000..1714ccae
--- /dev/null
+++ b/xsd/isdcf-mca.xsd
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified" targetNamespace="http://isdcf.com/ns/cplmd/mca" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:r0="http://www.smpte-ra.org/reg/395/2014/13/1/aaf" xmlns:r1="http://www.smpte-ra.org/reg/335/2012">
+
+<xs:import namespace="http://www.smpte-ra.org/reg/395/2014/13/1/aaf"/>
+<xs:import namespace="http://www.smpte-ra.org/reg/335/2012"/>
+
+ <xs:element name="MCASubDescriptors">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element ref="r0:SoundfieldGroupLabelSubDescriptor"/>
+ <xs:element ref="r0:AudioChannelLabelSubDescriptor"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/xsd/xlink.xsd b/xsd/xlink.xsd
new file mode 100644
index 00000000..bc7f31eb
--- /dev/null
+++ b/xsd/xlink.xsd
@@ -0,0 +1,270 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <xs:annotation>
+ <xs:documentation>This schema document provides attribute declarations and
+attribute group, complex type and simple type definitions which can be used in
+the construction of user schemas to define the structure of particular linking
+constructs, e.g.
+<![CDATA[
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xl="http://www.w3.org/1999/xlink">
+
+ <xs:import namespace="http://www.w3.org/1999/xlink"
+ location="http://www.w3.org/1999/xlink.xsd">
+
+ <xs:element name="mySimple">
+ <xs:complexType>
+ ...
+ <xs:attributeGroup ref="xl:simpleAttrs"/>
+ ...
+ </xs:complexType>
+ </xs:element>
+ ...
+</xs:schema>]]></xs:documentation>
+ </xs:annotation>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <xs:attribute name="type" type="xlink:typeType"/>
+
+ <xs:simpleType name="typeType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="simple"/>
+ <xs:enumeration value="extended"/>
+ <xs:enumeration value="title"/>
+ <xs:enumeration value="resource"/>
+ <xs:enumeration value="locator"/>
+ <xs:enumeration value="arc"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attribute name="href" type="xlink:hrefType"/>
+
+ <xs:simpleType name="hrefType">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+
+ <xs:attribute name="role" type="xlink:roleType"/>
+
+ <xs:simpleType name="roleType">
+ <xs:restriction base="xs:anyURI">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attribute name="arcrole" type="xlink:arcroleType"/>
+
+ <xs:simpleType name="arcroleType">
+ <xs:restriction base="xs:anyURI">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attribute name="title" type="xlink:titleAttrType"/>
+
+ <xs:simpleType name="titleAttrType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:attribute name="show" type="xlink:showType"/>
+
+ <xs:simpleType name="showType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="new"/>
+ <xs:enumeration value="replace"/>
+ <xs:enumeration value="embed"/>
+ <xs:enumeration value="other"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attribute name="actuate" type="xlink:actuateType"/>
+
+ <xs:simpleType name="actuateType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="onLoad"/>
+ <xs:enumeration value="onRequest"/>
+ <xs:enumeration value="other"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attribute name="label" type="xlink:labelType"/>
+
+ <xs:simpleType name="labelType">
+ <xs:restriction base="xs:NCName"/>
+ </xs:simpleType>
+
+ <xs:attribute name="from" type="xlink:fromType"/>
+
+ <xs:simpleType name="fromType">
+ <xs:restriction base="xs:NCName"/>
+ </xs:simpleType>
+
+ <xs:attribute name="to" type="xlink:toType"/>
+
+ <xs:simpleType name="toType">
+ <xs:restriction base="xs:NCName"/>
+ </xs:simpleType>
+
+ <xs:attributeGroup name="simpleAttrs">
+ <xs:attribute ref="xlink:type" fixed="simple"/>
+ <xs:attribute ref="xlink:href"/>
+ <xs:attribute ref="xlink:role"/>
+ <xs:attribute ref="xlink:arcrole"/>
+ <xs:attribute ref="xlink:title"/>
+ <xs:attribute ref="xlink:show"/>
+ <xs:attribute ref="xlink:actuate"/>
+ </xs:attributeGroup>
+
+ <xs:group name="simpleModel">
+ <xs:sequence>
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType mixed="true" name="simple">
+ <xs:annotation>
+ <xs:documentation>
+ Intended for use as the type of user-declared elements to make them
+ simple links.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group ref="xlink:simpleModel"/>
+ <xs:attributeGroup ref="xlink:simpleAttrs"/>
+ </xs:complexType>
+
+ <xs:attributeGroup name="extendedAttrs">
+ <xs:attribute ref="xlink:type" fixed="extended" use="required"/>
+ <xs:attribute ref="xlink:role"/>
+ <xs:attribute ref="xlink:title"/>
+ </xs:attributeGroup>
+
+ <xs:group name="extendedModel">
+ <xs:choice>
+ <xs:element ref="xlink:title"/>
+ <xs:element ref="xlink:resource"/>
+ <xs:element ref="xlink:locator"/>
+ <xs:element ref="xlink:arc"/>
+ </xs:choice>
+ </xs:group>
+
+ <xs:complexType name="extended">
+ <xs:annotation>
+ <xs:documentation>
+ Intended for use as the type of user-declared elements to make them
+ extended links.
+ Note that the elements referenced in the content model are all abstract.
+ The intention is that by simply declaring elements with these as their
+ substitutionGroup, all the right things will happen.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="xlink:extendedAttrs"/>
+ </xs:complexType>
+
+ <xs:element name="title" type="xlink:titleEltType" abstract="true"/>
+
+ <xs:attributeGroup name="titleAttrs">
+ <xs:attribute ref="xlink:type" fixed="title" use="required"/>
+ <xs:attribute ref="xml:lang">
+ <xs:annotation>
+ <xs:documentation>
+ xml:lang is not required, but provides much of the
+ motivation for title elements in addition to attributes, and so
+ is provided here for convenience.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:group name="titleModel">
+ <xs:sequence>
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType mixed="true" name="titleEltType">
+ <xs:group ref="xlink:titleModel"/>
+ <xs:attributeGroup ref="xlink:titleAttrs"/>
+ </xs:complexType>
+
+ <xs:element name="resource" type="xlink:resourceType" abstract="true"/>
+
+ <xs:attributeGroup name="resourceAttrs">
+ <xs:attribute ref="xlink:type" fixed="resource" use="required"/>
+ <xs:attribute ref="xlink:role"/>
+ <xs:attribute ref="xlink:title"/>
+ <xs:attribute ref="xlink:label"/>
+ </xs:attributeGroup>
+
+ <xs:group name="resourceModel">
+ <xs:sequence>
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType mixed="true" name="resourceType">
+ <xs:group ref="xlink:resourceModel"/>
+ <xs:attributeGroup ref="xlink:resourceAttrs"/>
+ </xs:complexType>
+
+ <xs:element name="locator" type="xlink:locatorType" abstract="true"/>
+
+ <xs:attributeGroup name="locatorAttrs">
+ <xs:attribute ref="xlink:type" fixed="locator" use="required"/>
+ <xs:attribute ref="xlink:href" use="required"/>
+ <xs:attribute ref="xlink:role"/>
+ <xs:attribute ref="xlink:title"/>
+ <xs:attribute ref="xlink:label">
+ <xs:annotation>
+ <xs:documentation>
+ label is not required, but locators have no particular
+ XLink function if they are not labeled.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:group name="locatorModel">
+ <xs:sequence>
+ <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType name="locatorType">
+ <xs:group ref="xlink:locatorModel"/>
+ <xs:attributeGroup ref="xlink:locatorAttrs"/>
+ </xs:complexType>
+
+ <xs:element name="arc" type="xlink:arcType" abstract="true"/>
+
+ <xs:attributeGroup name="arcAttrs">
+ <xs:attribute ref="xlink:type" fixed="arc" use="required"/>
+ <xs:attribute ref="xlink:arcrole"/>
+ <xs:attribute ref="xlink:title"/>
+ <xs:attribute ref="xlink:show"/>
+ <xs:attribute ref="xlink:actuate"/>
+ <xs:attribute ref="xlink:from"/>
+ <xs:attribute ref="xlink:to">
+ <xs:annotation>
+ <xs:documentation>
+ from and to have default behavior when values are missing
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:group name="arcModel">
+ <xs:sequence>
+ <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType name="arcType">
+ <xs:group ref="xlink:arcModel"/>
+ <xs:attributeGroup ref="xlink:arcAttrs"/>
+ </xs:complexType>
+
+</xs:schema>