<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by MIYAKE Manabu (THE YOMIURI SHIMBUN) -->
<xs:schema targetNamespace="urn:iptc:std-draft:ProgramGuideML:1.0:spec:xml-schema:1.0:xsd" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:pgml="urn:iptc:std-draft:ProgramGuideML:1.0:spec:xml-schema:1.0:xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tva="urn:tva:metadata:2002" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="urn:tva:metadata:2002" schemaLocation="./tva/tva_metadata_v13.xsd"/>
	<xs:simpleType name="ConditionType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="prohibition"/>
			<xs:enumeration value="onetime"/>
			<xs:enumeration value="permission"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ProgramItemRoleType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="main"/>
			<xs:enumeration value="sub"/>
			<xs:enumeration value="substitution"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:attributeGroup name="NewsMLcodeType">
		<xs:annotation>
			<xs:documentation> 
===================newsml_code========================

			</xs:documentation>
			<xs:documentation> 
newsml_formalname
==================
A string of characters whose meaning is determined by a controlled vocabulary.

			</xs:documentation>
			<xs:documentation> 
newsml_urn
==========
The newsml_urn attribute,if present,provides a pointer to a TopicSet which is the 
controlled vocabulary that can be used to resolve the meaning of the newsml_formalname.

			</xs:documentation>
			<xs:documentation> 
newsml_scheme
==============
The newsml_scheme attribute, if present, serves to distinguish which of possibly
multiple naming schemes in the controlled vocabulary is the one that governs
this newsml_formalname. For a match to be obtained within the controlled vocabulary,
the rule is that the newsml_formalname and the Scheme must both match. If there is
no newsml_scheme attribute on the current element, the match will be to an item in
the vocabulary that has the current formal name and no scheme. If there is a
newsml_scheme attribute on the current element, then both the formal name and the
scheme in the controlled vocabulary must match.

			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="newsml_formalname" type="xs:string" use="required"/>
		<xs:attribute name="newsml_urn" type="xs:string"/>
		<xs:attribute name="newsml_scheme" type="xs:string"/>
	</xs:attributeGroup>
	<xs:annotation>
		<xs:documentation>===== ProgramGuideML =====</xs:documentation>
	</xs:annotation>
	<xs:element name="ProgramGuideML" type="pgml:ProgramGuideMLType"/>
	<xs:complexType name="ProgramGuideMLType">
		<xs:annotation>
			<xs:documentation> 
======================ProgramGuide====================
The "dtd" extension is used to deccribe programs on radio, TV, satelite, CS and cable broadcasting, etc.
======================================================

			</xs:documentation>
			<xs:documentation> 
======================xml:lang=========================
The language using for ProgramGuideML management information. 
======================================================
======================version==========================
The optional version attribute provides an indication of the version of ProgramGuideML DTD or Schema used to validate the document
.======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:element name="ProgramTable" type="pgml:ProgramTableType"/>
				<xs:element name="ProgramItem" maxOccurs="unbounded">
					<xs:complexType>
						<xs:complexContent>
							<xs:extension base="pgml:ProgramItemType">
								<xs:attribute name="programItemRole" type="pgml:ProgramItemRoleType" use="optional" default="main"/>
							</xs:extension>
						</xs:complexContent>
					</xs:complexType>
				</xs:element>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="version" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:annotation>
		<xs:documentation>===== ProgramInformation=====</xs:documentation>
	</xs:annotation>
	<xs:complexType name="ProgramInformationType">
		<xs:annotation>
			<xs:documentation> 
================= ProgramInformation=====================
The management information on a program.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="tva.ClassificationSchemeTable" type="tva:ClassificationSchemeTableType" minOccurs="0"/>
			<xs:element name="tva.ProgramDescription" type="tva:ProgramDescriptionType"/>
			<xs:element name="ProgramRightsInformation" type="pgml:ProgramRightsInformationType"/>
			<xs:element name="ProgramServiceInformation" type="pgml:ProgramServiceInformationType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProgramRightsInformationType">
		<xs:annotation>
			<xs:documentation> 
====================rights.information====================
Rights information (information on copyright and usagerights).
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Copyright" type="pgml:CopyrightType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CopyrightType">
		<xs:annotation>
			<xs:documentation> 
=====================copyright========================
The copyright that pertains to a program object.
====================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="CopyrightHolder">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="CopyrightDate">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="CopyrightDescription" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" use="optional"/>
							<xs:attribute name="variant" type="xs:string"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UsageRightsType">
		<xs:annotation>
			<xs:documentation> 
====================usagerights========================
Usage rights information
(analog copy flag, digital copy flag, recording purchase flag, and accumulation data flag/single attention flag)
(It is based on ARIB in Japan)
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="AnalogCopy" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="condition" type="pgml:ConditionType" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="DigitalCopy" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="condition" type="pgml:ConditionType" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="TeleRecording" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="condition" type="pgml:ConditionType" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="OnDemand" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="permission" type="xs:boolean" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Accumulation" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="permission" type="xs:boolean" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="SingleView" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="permission" type="xs:boolean" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProgramServiceInformationType">
		<xs:annotation>
			<xs:documentation> 
================ProgramServiceInformation===================

==========================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Recommendable" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="value" type="xs:NMTOKEN" use="required"/>
					<xs:attribute ref="xml:lang" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="AlsoShown" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Station" type="tva:ServiceInformationType"/>
						<xs:element name="StartDate" type="xs:dateTime"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="FirstShown" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Station" type="tva:ServiceInformationType"/>
						<xs:element name="StartDate" type="xs:dateTime"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:annotation>
		<xs:documentation>===== ProgramContent =====</xs:documentation>
	</xs:annotation>
	<xs:complexType name="ProgramContentType">
		<xs:annotation>
			<xs:documentation> 
================== ProgramContent======================

======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Body" type="pgml:BodyType" maxOccurs="unbounded"/>
			<xs:element name="Record" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="pgml:NewsMLcodeType"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="SubProgram" type="pgml:SubProgramType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="programContentId" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:complexType name="BodyType">
		<xs:annotation>
			<xs:documentation> 
====================body==============================
The contents of a program. 
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Modification" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="BodyContent" type="pgml:BodyContentType"/>
		</xs:sequence>
		<xs:attributeGroup ref="pgml:NewsMLcodeType"/>
	</xs:complexType>
	<xs:complexType name="BodyContentType" mixed="true">
		<xs:annotation>
			<xs:documentation> 
====================body.content=======================
The contents of a program.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="P" type="pgml:ParagraphType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute ref="xml:lang" use="optional"/>
		<xs:attribute name="metadataRef" type="mpeg7:xPathType" use="optional"/>
	</xs:complexType>
	<xs:complexType name="ParagraphType" mixed="true">
		<xs:annotation>
			<xs:documentation> 
===================== p ========================
To lay out one line within a program cell's width, in other words to distinguish the line from 
the following line, the line is put between <p> and </p>.
(EX):
        <p>9.00 Today's sepcial</p>
				<p>       is resort hotels</p>
================================================

			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="Symbol">
				<xs:complexType>
					<xs:attributeGroup ref="pgml:NewsMLcodeType"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Function">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="pgml:NewsMLcodeType"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute ref="xml:lang" use="optional"/>
	</xs:complexType>
	<xs:annotation>
		<xs:documentation>-- SubProgram --</xs:documentation>
	</xs:annotation>
	<xs:complexType name="SubProgramType">
		<xs:annotation>
			<xs:documentation> 
======================SubProgram====================

======================================================

			</xs:documentation>
			<xs:documentation> 
======================Order==========================
It expresses the order of sub-program.
======================================================

			</xs:documentation>
			<xs:documentation> 
======================Role===========================
It expresses the role of sub-program.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="SubProgramInformation" type="pgml:SubProgramInformationType" minOccurs="0"/>
			<xs:element name="SubProgramContent" type="pgml:SubProgramContentType"/>
		</xs:sequence>
		<xs:attribute name="order" type="xs:positiveInteger"/>
		<xs:attribute name="role" type="xs:string"/>
		<xs:attribute ref="xml:lang" use="optional"/>
	</xs:complexType>
	<xs:complexType name="SubProgramInformationType">
		<xs:annotation>
			<xs:documentation> 
================= SubProgramInformation=====================
The management information on a sub-program which includes administrative information, rights information, and descriptive information.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="tva.ProgramDescription" type="tva:ProgramDescriptionType" minOccurs="0"/>
			<xs:element name="ProgramRightsInformation" type="pgml:ProgramRightsInformationType"/>
			<xs:element name="ProgramServiceInformation" type="pgml:ProgramServiceInformationType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="metadataRef" type="mpeg7:xPathType" use="optional"/>
	</xs:complexType>
	<xs:complexType name="SubProgramContentType">
		<xs:annotation>
			<xs:documentation> 
================== SubProgramContent======================
It shows a content of sub-program, such as title, titlepronunce, subtitle, body, performer, chinema, or record.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Body" type="pgml:BodyType" maxOccurs="unbounded"/>
			<xs:element name="Record" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="pgml:NewsMLcodeType"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="programContentId" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:annotation>
		<xs:documentation>===== ProgramTable =====</xs:documentation>
	</xs:annotation>
	<xs:complexType name="ProgramTableType">
		<xs:annotation>
			<xs:documentation> 
================== program.table======================
It shows a table of program.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ProgramTableInformation" type="pgml:ProgramTableInformationType"/>
			<xs:element name="ProgramItem" type="pgml:ProgramItemType" maxOccurs="unbounded"/>
			<xs:element name="SubstitutionalTable" type="pgml:SubstitutionalTableType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProgramTableInformationType">
		<xs:annotation>
			<xs:documentation> 
================== ProgramTableInformation======================
The management information on a program table.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Station" type="tva:ServiceInformationType"/>
			<xs:element name="StartDate" type="xs:dateTime"/>
			<xs:element name="EndDate" type="xs:dateTime"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProgramItemType">
		<xs:annotation>
			<xs:documentation> 
================== ProgramItem======================
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ProgramInformation" type="pgml:ProgramInformationType"/>
			<xs:element name="ProgramContent" type="pgml:ProgramContentType"/>
		</xs:sequence>
		<xs:attribute name="order" type="xs:positiveInteger" use="optional"/>
	</xs:complexType>
	<xs:complexType name="SubstitutionalTableType">
		<xs:annotation>
			<xs:documentation> 
==================== SubstitutionalTable ================
Substitutional program.
It is broadcasted when broadcast of the planned program becomes impossible.
======================================================

			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Comment" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="StartDate" type="xs:dateTime"/>
			<xs:element name="EndDate" type="xs:dateTime"/>
			<xs:element name="ProgramItem" type="pgml:ProgramItemType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="order" type="xs:positiveInteger"/>
	</xs:complexType>
</xs:schema>
