diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-05-09 00:33:51 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-05-09 00:33:51 +0200 |
| commit | 1b7394d83f64a8655787d82189c3170a2128c16b (patch) | |
| tree | 7d4a3970623956b215d9e258e5dcf658c218254b /xsd/DCSubtitle.v1.mattsson.xsd | |
| parent | f3e78c300efbf7519eda8252e7f71db0e3f1caa9 (diff) | |
Verify the XML of subtitle files.
Diffstat (limited to 'xsd/DCSubtitle.v1.mattsson.xsd')
| -rw-r--r-- | xsd/DCSubtitle.v1.mattsson.xsd | 254 |
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> |
