summaryrefslogtreecommitdiff
path: root/xsd/DCSubtitle.v1.mattsson.xsd
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-05-09 00:33:51 +0200
committerCarl Hetherington <cth@carlh.net>2020-05-09 00:33:51 +0200
commit1b7394d83f64a8655787d82189c3170a2128c16b (patch)
tree7d4a3970623956b215d9e258e5dcf658c218254b /xsd/DCSubtitle.v1.mattsson.xsd
parentf3e78c300efbf7519eda8252e7f71db0e3f1caa9 (diff)
Verify the XML of subtitle files.
Diffstat (limited to 'xsd/DCSubtitle.v1.mattsson.xsd')
-rw-r--r--xsd/DCSubtitle.v1.mattsson.xsd254
1 files changed, 254 insertions, 0 deletions
diff --git a/xsd/DCSubtitle.v1.mattsson.xsd b/xsd/DCSubtitle.v1.mattsson.xsd
new file mode 100644
index 00000000..acdfcd84
--- /dev/null
+++ b/xsd/DCSubtitle.v1.mattsson.xsd
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="DCSubtitle">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SubtitleID" type="UUIDType"/>
+ <xs:element name="MovieTitle" type="xs:string"/>
+ <xs:element name="ReelNumber" type="xs:string"/>
+ <xs:element name="Language" type="xs:string"/>
+ <xs:element ref="LoadFont" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="Font" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="Subtitle" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="Version" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="1.0"/>
+ <xs:enumeration value="1.1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LoadFont">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="spaceType">
+ <xs:attribute name="Id" use="required" type="xs:string"/>
+ <xs:attribute name="URI" use="required" type="xs:anyURI"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Font">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="Font"/>
+ <xs:element ref="Subtitle"/>
+ <xs:element ref="Text"/>
+ <xs:element ref="Image"/>
+ </xs:choice>
+ <xs:attribute name="Id" type="xs:string"/>
+ <xs:attribute name="Color" type="fontColorType"/>
+ <xs:attribute name="Effect">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="border"/>
+ <xs:enumeration value="shadow"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="EffectColor" type="fontColorType"/>
+ <xs:attribute name="Italic" type="yesNoType"/>
+ <xs:attribute name="Script">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="super"/>
+ <xs:enumeration value="sub"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Size" type="xs:positiveInteger"/>
+ <xs:attribute name="AspectAdjust">
+ <xs:simpleType>
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0.25"/>
+ <xs:maxInclusive value="4.0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Underlined" type="yesNoType"/>
+ <xs:attribute name="Weight">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="bold"/>
+ <xs:enumeration value="normal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Spacing" type="spacingType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Subtitle">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="Font"/>
+ <xs:element ref="Text"/>
+ <xs:element ref="Image"/>
+ </xs:choice>
+ <xs:attribute name="SpotNumber" use="required" type="xs:string"/>
+ <xs:attribute name="TimeIn" use="required" type="timeType"/>
+ <xs:attribute name="TimeOut" use="required" type="timeType"/>
+ <xs:attribute name="FadeUpTime" type="fadeTimeType"/>
+ <xs:attribute name="FadeDownTime" type="fadeTimeType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Text">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="Font"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ruby"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="Space"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="HGroup"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="Rotate"/>
+ </xs:choice>
+ <xs:attribute name="Direction">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="horizontal"/>
+ <xs:enumeration value="vertical"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="HAlign" type="hAlignType"/>
+ <xs:attribute name="HPosition" type="positionType"/>
+ <xs:attribute name="VAlign" type="vAlignType" />
+ <xs:attribute name="VPosition" type="positionType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Ruby">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="Rb"/>
+ <xs:element ref="Rt"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Rb" type="xs:string"/>
+ <xs:element name="Rt">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Size" type="sizeType"/>
+ <xs:attribute name="Position">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="after"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Offset" type="spacingType"/>
+ <xs:attribute name="Spacing" type="spacingType"/>
+ <xs:attribute name="AspectAdjust">
+ <xs:simpleType>
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0.25"/>
+ <xs:maxInclusive value="4.0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Space">
+ <xs:complexType>
+ <xs:attribute name="Size" type="sizeType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="HGroup" type="xs:string"/>
+ <xs:element name="Rotate">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Direction">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="left"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Image">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="HAlign" type="hAlignType"/>
+ <xs:attribute name="HPosition" type="positionType"/>
+ <xs:attribute name="VAlign" type="vAlignType"/>
+ <xs:attribute name="VPosition" type="positionType"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="spaceType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UUIDType">
+ <xs:restriction base="xs:string">
+ <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*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="yesNoType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="yes"/>
+ <xs:enumeration value="no"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="hAlignType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="vAlignType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="bottom"/>
+ <xs:enumeration value="center"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="spacingType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="-?(\d+|\d+\.\d+)em"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="sizeType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\d+|\d+\.\d+)em"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d\d:\d\d:\d\d(:(([0-1][0-9][0-9])|([2][0-4][0-9]))|(\.\d{1,3}))"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fadeTimeType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\d\d:\d\d:\d\d(:|\.)(\d){1,3})|(\d){1,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontColorType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9A-Fa-f]{8}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="positionType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="-100"/>
+ <xs:maxInclusive value="100"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>