<?xml version="1.0" encoding="UTF-8"?>
<!--
Βι¶ΉΤΌΕΔ Subtitle Schema V1.0
Last-edited: 2016-04-14 (to permit use of ebutts:linePadding)
Copyright Βι¶ΉΤΌΕΔ 2016
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.bbc.co.uk/ns/bbctt" xmlns:bbctt="http://www.bbc.co.uk/ns/bbctt" xmlns:ttm="http://www.w3.org/ns/ttml#metadata" xmlns:tt="http://www.w3.org/ns/ttml" xmlns:ebuttdt="urn:ebu:tt:datatypes">
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:import namespace="http://www.w3.org/ns/ttml#metadata" schemaLocation="ebu-tt-v1.0-lp-xml-schema/metadata.xsd"/>
<xs:import namespace="urn:ebu:tt:datatypes" schemaLocation="ebu-tt-v1.0-lp-xml-schema/ebutt_datatypes.xsd"/>
<xs:annotation>
<xs:documentation>
The Βι¶ΉΤΌΕΔ metadata element additional document level metadata.
</xs:documentation>
</xs:annotation>
<xs:element name="metadata">
<xs:complexType>
<xs:sequence>
<!-- Mandatory -->
<xs:element ref="bbctt:schemaVersion"/>
<xs:element ref="bbctt:timedTextType"/>
<xs:element ref="bbctt:timecodeType"/>
<!-- For programmes with ids -->
<xs:element minOccurs="0" maxOccurs="1" ref="bbctt:programmeId"/> <!-- minOccurs=0 for live? -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:otherId"/>
<!-- Live only -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:houseStyle"/>
<!-- Live only - allow multiple services -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:recordedLiveService"/>
<!-- Audio Description only -->
<xs:element minOccurs="0" maxOccurs="1" ref="bbctt:OriginalADVoicer"/>
<!-- Generic -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:div"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="schemaVersion">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="v1.0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="timedTextType">
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="preRecorded"/>
<xs:enumeration value="audioDescription"/>
<xs:enumeration value="recordedLive"/>
<xs:enumeration value="editedLive"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="timecodeType">
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="programme"/>
<xs:enumeration value="timeOfDay"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="programmeId" type="xs:string"/>
<xs:element name="otherId">
<xs:complexType mixed="true">
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="OriginalADVoicer" type="xs:string"/>
<xs:element name="houseStyle">
<xs:complexType mixed="true">
<xs:attribute name="owner" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="recordedLiveService">
<xs:complexType mixed="true">
<xs:attribute name="finish" use="required" type="xs:dateTime"/>
<xs:attribute name="start" use="required" type="xs:dateTime"/>
</xs:complexType>
</xs:element>
<xs:element name="div">
<xs:complexType >
<xs:all>
<!-- Include any that are applicable -->
<xs:element minOccurs="0" maxOccurs="1" ref="bbctt:systemInfo"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:chapter"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:item"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:event"/>
</xs:all>
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="chapter">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="bbctt:item"/>
</xs:sequence>
<xs:attribute ref="xml:id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="systemInfo" type="xs:string"/> <!-- String that describes the system that generated this part of this file -->
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<!-- Use identifiers to tie the item to other systems -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:itemId"/>
<xs:element minOccurs="0" maxOccurs="1" ref="bbctt:title"/>
<xs:element minOccurs="0" maxOccurs="1" ref="bbctt:associatedFile"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:p"/>
</xs:sequence>
<xs:attribute name="begin" type="ebuttdt:timingType"/>
<xs:attribute name="end" type="ebuttdt:timingType"/>
<xs:attribute ref="xml:id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="title" type="xs:string"/>
<xs:element name="p">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="bbctt:span"/>
</xs:sequence>
<!-- values for ttm:role are all those in the TTML spec and others specified in the accompanying documentation -->
<xs:attribute ref="ttm:role"/>
<xs:attribute ref="ttm:agent"/>
</xs:complexType>
</xs:element>
<xs:element name="span">
<xs:complexType mixed="true">
<xs:attribute ref="ttm:role"/>
<xs:attribute ref="ttm:agent"/>
</xs:complexType>
</xs:element>
<xs:element name="event">
<xs:complexType>
<xs:attribute name="begin" use="required" type="ebuttdt:timingType"/>
<xs:attribute name="end" type="ebuttdt:timingType"/> <!-- Mandatory for AD fades -->
<xs:attribute name="endLevel" type="xs:integer"/> <!-- Mandatory for AD fades -->
<xs:attribute name="id" type="xs:NCName"/>
<xs:attribute name="pan" type="xs:integer"/> <!-- Mandatory for AD fades -->
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="itemId">
<xs:complexType mixed="true">
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="associatedFile">
<xs:complexType mixed="true">
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
</xs:schema>