<?xml version="1.0" encoding="UTF-8"?>
<xs:schema	xmlns:xs="http://www.w3.org/2001/XMLSchema"
				xmlns:media="http://rets.org/xsd/Media/2007-08"
				xmlns:commons="http://rets.org/xsd/RETSCommons/2007-08"
				targetNamespace="http://rets.org/xsd/Media/2007-08"
				elementFormDefault="qualified"
				attributeFormDefault="unqualified">

	<!--
		(C)2007 National Association of REALTORS(R)

		Tab stops
		:set ts=3

		File History
		======================
		$Header: Media.xsd, 17, 10/8/2007 1:22:13 PM, Paul Stusiak$

		$Log:
		 17   055_RETS_Standard 1.16        10/8/2007 1:22:13 PM   Paul Stusiak
		      Update version timestamp
		 16   055_RETS_Standard 1.15        10/2/2007 12:19:25 PM  Gina Accawi
		      Create reusable type for systemId. Reference it where used. Ensure
		      there is a systemId on the primary single and optional on plural
		      version of resource payloads.
		 15   055_RETS_Standard 1.14        7/27/2007 9:00:39 AM   Gina Accawi
		      Add system Id.
		 14   055_RETS_Standard 1.13        7/13/2007 2:51:47 PM   Gina Accawi
		      Add comment on the keys.
		 13   055_RETS_Standard 1.12        7/13/2007 2:27:09 PM   Gina Accawi
		      Modify to follow design pattern prevalent for all other schemas.
		 12   055_RETS_Standard 1.11        7/9/2007 12:37:03 PM   Paul Stusiak
		      Update versionTimestamp to 2007-07-09T19:21:00Z
		 11   055_RETS_Standard 1.10        7/2/2007 9:45:31 AM    Gina Accawi
		      Rename ResourceKey to be the actual ResourceNameKey.
		 10   055_RETS_Standard 1.9         6/29/2007 12:34:41 PM  Gina Accawi
		      Add a key for the resource.
		 9    055_RETS_Standard 1.8         5/2/2007 1:16:58 PM    Paul Stusiak
		      change namespace reference, modify complex type names to resolve code
		      generation errors, update version time stamp
		 8    055_RETS_Standard 1.7         4/3/2007 4:59:30 PM    Paul Stusiak
		      use url resolution for include, import to test schema validation
		 7    055_RETS_Standard 1.6         4/3/2007 1:43:57 AM    Paul Stusiak
		      change namespace to remote location (www.ftc2.com) for testing
		 6    055_RETS_Standard 1.5         4/2/2007 11:26:55 AM   Paul Stusiak
		      change namespace to match responding server and to use the URI
		      versioning suggested by both HP and XFront
		 5    055_RETS_Standard 1.4         3/30/2007 6:20:40 PM   Paul Stusiak
		      Update of the versionTimestamp and the namespace (namespace to
		      200704). Change formating to a standard format
		 4    055_RETS_Standard 1.3         3/7/2007 10:50:59 PM   Paul Stusiak
		      Clean up the project information for the purposes of document
		      generation. Moved attribute into the complexType from a global -
		      clearly not what was intended.
		 3    055_RETS_Standard 1.2         2/28/2007 1:02:16 AM   Paul Stusiak
		      add standard header and refactoring RETSCommons changes
		 2    055_RETS_Standard 1.1         2/22/2007 3:34:49 PM   Gina Accawi
		      Remove all references to the schemaLocation as being
		      http://retsserver.realtors.org:8080/xsd/.  These references have been
		      changed to be relative path (as the current directory). Now,
		      regardless of where they are published, the referential internal
		      integrity will remain. The assumption is that these will all reside as
		       neighbors on the target distribution server.
		 1    055_RETS_Standard 1.0         12/20/2006 12:32:46 PM Jeff Brush      
		$
		======================
	-->

	<xs:annotation>
		<xs:documentation>
			Elements related to media documents like pictures.
		</xs:documentation>
	</xs:annotation>
	<xs:import  namespace="http://www.w3.org/XML/1998/namespace"
					schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<xs:import	namespace="http://rets.org/xsd/RETSCommons/2007-08"
					schemaLocation="../../../xsd/RETSCommons/2007-08/RETSCommons.xsd"/>

	<!-- Types -->
	<xs:complexType name="ExpressionEnum">
		<xs:simpleContent>
			<xs:restriction base="commons:OtherEnumerationDescriptionString">
				<xs:enumeration value="full"/>
				<xs:enumeration value="sample"/>
				<xs:enumeration value="nonstop"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="RestrictionRelationshipEnum">
		<xs:simpleContent>
			<xs:restriction base="commons:OtherEnumerationDescriptionString">
				<xs:enumeration value="allow"/>
				<xs:enumeration value="deny"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="RestrictionCategoryEnum">
		<xs:simpleContent>
			<xs:restriction base="commons:OtherEnumerationDescriptionString">
				<xs:enumeration value="country"/>
				<xs:enumeration value="uri"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="MediaCategory">
		<xs:sequence>
			<xs:element	name="UriScheme"
							type="xs:string"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Label"
							type="xs:string"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Detail"
							type="xs:string"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaRestriction">
		<xs:sequence>
			<xs:element	name="Relationship"
							type="media:RestrictionRelationshipEnum"
							minOccurs="1">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Category"
							type="media:RestrictionCategoryEnum"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Detail"
							type="xs:string"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaText">
		<xs:sequence>
				<xs:element	name="Category"
								type="xs:string"
								minOccurs="0">
					<xs:annotation>
						<xs:documentation>
						</xs:documentation>
						<xs:appinfo>
							<retsid></retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:element>
				<xs:element	name="StartDateTime"
								type="xs:dateTime"
								minOccurs="0">
					<xs:annotation>
						<xs:documentation>
						</xs:documentation>
						<xs:appinfo>
							<retsid></retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:element>
				<xs:element	name="EndDateTime"
								type="xs:dateTime"
								minOccurs="0">
					<xs:annotation>
						<xs:documentation>
						</xs:documentation>
						<xs:appinfo>
							<retsid></retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:element>
				<xs:element name="Detail"
								type="xs:string"
								minOccurs="0">
					<xs:annotation>
						<xs:documentation>
						</xs:documentation>
						<xs:appinfo>
							<retsid></retsid>
						</xs:appinfo>
					</xs:annotation>
				</xs:element>
		</xs:sequence>
		<xs:attribute	ref="xml:lang"
							use="optional">
			<xs:annotation>
				<xs:documentation>
				</xs:documentation>
				<xs:appinfo>
					<retsid></retsid>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="MediaHash">
		<xs:sequence>
			<xs:element	name="Algorithm"
									type="xs:string"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="HashValue"
									type="xs:string"
									minOccurs="1"
									maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaDescription">
		<xs:sequence>
				<xs:element	name="Category"
									type="xs:string"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
				<xs:element name="Detail"
									type="xs:string"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaCopyright">
		<xs:sequence>
			<xs:element		name="Uri"
									type="xs:anyURI"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element		name="Detail"
									type="xs:string"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaTitle">
		<xs:sequence>
				<xs:element	name="Uri"
									type="xs:anyURI"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
				<xs:element name="Detail"
									type="xs:string"
									minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaContent">
		<xs:sequence>
			<xs:element	name="Title"
							type="media:MediaTitle"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Description"
							type="media:MediaDescription"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Keywords"
							type="commons:SecureString"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Category"
							type="media:MediaCategory"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Hash"
							type="media:MediaHash"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Copyright"
							type="media:MediaCopyright"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Text"
							type="media:MediaText"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Restriction"
							type="media:MediaRestriction"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="Details"
							type="media:MediaDetails"
							minOccurs="0"
							maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:any		namespace="##other"
							minOccurs="0"
							maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MediaDetails">
		<xs:sequence>	
			<xs:element	name="Uri"
								type="xs:anyURI"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="FileSize"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="MimeType"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Medium"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Expression"
								type="media:ExpressionEnum">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Bitrate"
								type="xs:decimal"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Framerate"
								type="xs:decimal"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Samplingrate"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Channels"
								type="xs:decimal"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Height"
								type="xs:decimal"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="HeightUnit"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Width"
								type="xs:decimal"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="WidthUnit"
								type="xs:string"
								minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute	ref="xml:lang"
							use="optional"/>
		<xs:attribute 	name="isDefault"
							type="xs:boolean"
							use="optional"/>
	</xs:complexType>
	<xs:complexType name="MediaItem">
		<xs:sequence>
			<xs:element name="MediaItemKey"
							type="commons:resource-key"
							minOccurs="1"
							maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						This the is the keyfield for the resource.
					</xs:documentation>
				</xs:annotation>				
			</xs:element>
			<xs:element	name="Content"
							type="media:MediaContent"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="Binary"
							type="xs:base64Binary"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element	name="ModificationTimestamp"
							type="commons:ModificationTimestamp"
							minOccurs="0">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:any		namespace="##other"
							minOccurs="0"
							maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute	name="MLSKeyId"
							type="xs:string"
							use="required">
			<xs:annotation>
				<xs:documentation>
					There is also a MediaItemKey element.
					This may now be obsolete.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute	name="systemId"
							type="commons:system-id"
							use="required">
			<xs:annotation>
				<xs:documentation>
					An identifier of the system that a media
					item 'belongs' to when the event involves
					more than one system.
				</xs:documentation>
				<xs:appinfo>
					<retsid></retsid>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>

	</xs:complexType>
	<xs:complexType name="MediaType">
		<xs:choice>
			<xs:element	name="MediaItem"
							type="media:MediaItem"
							minOccurs="0"
							maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
					</xs:documentation>
					<xs:appinfo>
						<retsid></retsid>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element name="MediaItemUri"
							minOccurs="0"
							maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute	name="systemId"
												type="commons:system-id"
												use="required">
								<xs:annotation>
									<xs:appinfo>
										<retsid></retsid>
									</xs:appinfo>
								</xs:annotation>
							</xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute	name="versionTimestamp"
							type="xs:dateTime"
							use="required"
							fixed="2007-10-08T16:27:23Z">
			<xs:annotation>
				<xs:documentation>
				</xs:documentation>
				<xs:appinfo>
					<retsid></retsid>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute	name="systemId"
							type="commons:system-id"
							use="optional">
			<xs:annotation>
				<xs:documentation>
					An identifier of the system that a media item
					'belongs' to when the event involves more than
					one system.
				</xs:documentation>
				<xs:appinfo>
					<retsid></retsid>
				</xs:appinfo>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:element	name="Media"
					type="media:MediaType"/>
</xs:schema>