<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:raps="urn:ARIA-Chart-Common-Type-1.0" xmlns="urn:ARIA-Chart-Common-Type-1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ARIA-Chart-Common-Type-1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- Regular Expressions -->
	<xs:simpleType name="nonemptystring" final="restriction">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Deinition for whitespace only charatcers -->
	<xs:simpleType name="whiteSpace" final="restriction">
		<xs:restriction base="xs:string">
			<xs:pattern value="^\s*$"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ddmmyy format -->
	<xs:simpleType name="DateType" final="#all">
		<xs:restriction base="xs:string">
			<xs:pattern value="(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/(175[3-9]|17[6-9][0-9]|1[89][0-9]{2}|[2-9][0-9]{3})"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="GRIDType" final="#all">
		<xs:annotation>
			<xs:documentation>
        This defines a regular expression that a GRid must conform to.
        GRids that are non conformant will cause the entire file to be rejected.
        GRids are to be formatted with no spaces or hiphens within the GRid code.
      </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="A1[-]?[A-Z0-9]{5}[-]?[A-Z0-9]{10}[-]?[A-Z0-9]{1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="APNType" final="#all">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{14}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ISRCType" final="#all">
		<xs:annotation>
			<xs:documentation>
        This defines a regular expression that a ISRC must conform to.
        ISRCs that are non conformant will cause the entire file to be rejected.
        ISRCs are to be formatted with no spaces or hiphens within the ISRC code.
      </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-Za-z]{2}[-]?[0-9A-Za-z]{3}[-]?[0-9]{2}[-]?[0-9]{5}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CatalogueNo" final="restriction">
		<xs:union memberTypes="nonemptystring"/>
	</xs:simpleType>
	<!-- Enumerations -->
	<!-- Physical Geographical Regions -->
	<xs:simpleType name="RegionBaseType" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Australia"/>
			<xs:enumeration value="AUSTRALIA"/>
			<xs:enumeration value="QLD"/>
			<xs:enumeration value="WA"/>
			<xs:enumeration value="VIC"/>
			<xs:enumeration value="TAS"/>
			<xs:enumeration value="SA"/>
			<xs:enumeration value="NT"/>
			<xs:enumeration value="NSW"/>
			<xs:enumeration value="ACT"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Grouped Regions -->
	<xs:simpleType name="RegionGroupType" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="NSW/ACT"/>
			<xs:enumeration value="VIC/TAS"/>
			<xs:enumeration value="SA/NT"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- -->
	<xs:simpleType name="RegionType">
		<xs:union memberTypes="RegionBaseType RegionGroupType"/>
	</xs:simpleType>
	<!-- Virtual Region - Used display Digital as a State in some cases. -->
	<xs:simpleType name="PseduoRegionType" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Dig"/>
			<xs:enumeration value="Digital"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Union of all possible values -->
	<xs:simpleType name="ReportRegionType" final="#all">
		<xs:union memberTypes="RegionType PseduoRegionType"/>
	</xs:simpleType>
	<xs:simpleType name="CountryType" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AFG"/>
			<xs:enumeration value="ALA"/>
			<xs:enumeration value="ALB"/>
			<xs:enumeration value="DZA"/>
			<xs:enumeration value="ASM"/>
			<xs:enumeration value="AND"/>
			<xs:enumeration value="AGO"/>
			<xs:enumeration value="AIA"/>
			<xs:enumeration value="ATA"/>
			<xs:enumeration value="ATG"/>
			<xs:enumeration value="ARG"/>
			<xs:enumeration value="ARM"/>
			<xs:enumeration value="ABW"/>
			<xs:enumeration value="AUS"/>
			<xs:enumeration value="AUT"/>
			<xs:enumeration value="AZE"/>
			<xs:enumeration value="BHS"/>
			<xs:enumeration value="BHR"/>
			<xs:enumeration value="BGD"/>
			<xs:enumeration value="BRB"/>
			<xs:enumeration value="BLM"/>
			<xs:enumeration value="BLR"/>
			<xs:enumeration value="BEL"/>
			<xs:enumeration value="BLZ"/>
			<xs:enumeration value="BEN"/>
			<xs:enumeration value="BMU"/>
			<xs:enumeration value="BTN"/>
			<xs:enumeration value="BOL"/>
			<xs:enumeration value="BIH"/>
			<xs:enumeration value="BWA"/>
			<xs:enumeration value="BVT"/>
			<xs:enumeration value="BRA"/>
			<xs:enumeration value="IOT"/>
			<xs:enumeration value="BRN"/>
			<xs:enumeration value="BGR"/>
			<xs:enumeration value="BFA"/>
			<xs:enumeration value="BDI"/>
			<xs:enumeration value="KHM"/>
			<xs:enumeration value="CMR"/>
			<xs:enumeration value="CAN"/>
			<xs:enumeration value="COD"/>
			<xs:enumeration value="CPV"/>
			<xs:enumeration value="CYM"/>
			<xs:enumeration value="CAF"/>
			<xs:enumeration value="TCD"/>
			<xs:enumeration value="CHL"/>
			<xs:enumeration value="CHN"/>
			<xs:enumeration value="CXR"/>
			<xs:enumeration value="CCK"/>
			<xs:enumeration value="COL"/>
			<xs:enumeration value="COM"/>
			<xs:enumeration value="COG"/>
			<xs:enumeration value="COK"/>
			<xs:enumeration value="CRI"/>
			<xs:enumeration value="CIV"/>
			<xs:enumeration value="HRV"/>
			<xs:enumeration value="CUB"/>
			<xs:enumeration value="CYP"/>
			<xs:enumeration value="CZE"/>
			<xs:enumeration value="DNK"/>
			<xs:enumeration value="DJI"/>
			<xs:enumeration value="DMA"/>
			<xs:enumeration value="DOM"/>
			<xs:enumeration value="TLS"/>
			<xs:enumeration value="ECU"/>
			<xs:enumeration value="EGY"/>
			<xs:enumeration value="SLV"/>
			<xs:enumeration value="GNQ"/>
			<xs:enumeration value="ERI"/>
			<xs:enumeration value="EST"/>
			<xs:enumeration value="ETH"/>
			<xs:enumeration value="FLK"/>
			<xs:enumeration value="FRO"/>
			<xs:enumeration value="FJI"/>
			<xs:enumeration value="FIN"/>
			<xs:enumeration value="FRA"/>
			<xs:enumeration value="FXX"/>
			<xs:enumeration value="GUF"/>
			<xs:enumeration value="PYF"/>
			<xs:enumeration value="ATF"/>
			<xs:enumeration value="GAB"/>
			<xs:enumeration value="GMB"/>
			<xs:enumeration value="GEO"/>
			<xs:enumeration value="DEU"/>
			<xs:enumeration value="GGY"/>
			<xs:enumeration value="GHA"/>
			<xs:enumeration value="GIB"/>
			<xs:enumeration value="GRC"/>
			<xs:enumeration value="GRL"/>
			<xs:enumeration value="GRD"/>
			<xs:enumeration value="GLP"/>
			<xs:enumeration value="GUM"/>
			<xs:enumeration value="GTM"/>
			<xs:enumeration value="GIN"/>
			<xs:enumeration value="GNB"/>
			<xs:enumeration value="GUY"/>
			<xs:enumeration value="HTI"/>
			<xs:enumeration value="HMD"/>
			<xs:enumeration value="HND"/>
			<xs:enumeration value="HKG"/>
			<xs:enumeration value="HUN"/>
			<xs:enumeration value="ISL"/>
			<xs:enumeration value="IND"/>
			<xs:enumeration value="IDN"/>
			<xs:enumeration value="IMN"/>
			<xs:enumeration value="IRN"/>
			<xs:enumeration value="IRQ"/>
			<xs:enumeration value="IRL"/>
			<xs:enumeration value="ISR"/>
			<xs:enumeration value="ITA"/>
			<xs:enumeration value="JAM"/>
			<xs:enumeration value="JEY"/>
			<xs:enumeration value="JPN"/>
			<xs:enumeration value="JOR"/>
			<xs:enumeration value="KAZ"/>
			<xs:enumeration value="KEN"/>
			<xs:enumeration value="KIR"/>
			<xs:enumeration value="PRK"/>
			<xs:enumeration value="KOR"/>
			<xs:enumeration value="KWT"/>
			<xs:enumeration value="KGZ"/>
			<xs:enumeration value="LAO"/>
			<xs:enumeration value="LVA"/>
			<xs:enumeration value="LBN"/>
			<xs:enumeration value="LSO"/>
			<xs:enumeration value="LBR"/>
			<xs:enumeration value="LBY"/>
			<xs:enumeration value="LIE"/>
			<xs:enumeration value="LTU"/>
			<xs:enumeration value="LUX"/>
			<xs:enumeration value="MAC"/>
			<xs:enumeration value="MAF"/>
			<xs:enumeration value="MKD"/>
			<xs:enumeration value="MDG"/>
			<xs:enumeration value="MWI"/>
			<xs:enumeration value="MYS"/>
			<xs:enumeration value="MDV"/>
			<xs:enumeration value="MLI"/>
			<xs:enumeration value="MLT"/>
			<xs:enumeration value="MHL"/>
			<xs:enumeration value="MTQ"/>
			<xs:enumeration value="MRT"/>
			<xs:enumeration value="MUS"/>
			<xs:enumeration value="MYT"/>
			<xs:enumeration value="MEX"/>
			<xs:enumeration value="FSM"/>
			<xs:enumeration value="MDA"/>
			<xs:enumeration value="MCO"/>
			<xs:enumeration value="MNG"/>
			<xs:enumeration value="MSR"/>
			<xs:enumeration value="MAR"/>
			<xs:enumeration value="MOZ"/>
			<xs:enumeration value="MMR"/>
			<xs:enumeration value="MNE"/>
			<xs:enumeration value="NAM"/>
			<xs:enumeration value="NRU"/>
			<xs:enumeration value="NPL"/>
			<xs:enumeration value="NLD"/>
			<xs:enumeration value="ANT"/>
			<xs:enumeration value="NCL"/>
			<xs:enumeration value="NZL"/>
			<xs:enumeration value="NIC"/>
			<xs:enumeration value="NER"/>
			<xs:enumeration value="NGA"/>
			<xs:enumeration value="NIU"/>
			<xs:enumeration value="NFK"/>
			<xs:enumeration value="MNP"/>
			<xs:enumeration value="NOR"/>
			<xs:enumeration value="OMN"/>
			<xs:enumeration value="PAK"/>
			<xs:enumeration value="PLW"/>
			<xs:enumeration value="PAN"/>
			<xs:enumeration value="PNG"/>
			<xs:enumeration value="PRY"/>
			<xs:enumeration value="PER"/>
			<xs:enumeration value="PHL"/>
			<xs:enumeration value="PCN"/>
			<xs:enumeration value="POL"/>
			<xs:enumeration value="PRT"/>
			<xs:enumeration value="PRI"/>
			<xs:enumeration value="PSE"/>
			<xs:enumeration value="QAT"/>
			<xs:enumeration value="REU"/>
			<xs:enumeration value="ROU"/>
			<xs:enumeration value="RUS"/>
			<xs:enumeration value="RWA"/>
			<xs:enumeration value="KNA"/>
			<xs:enumeration value="LCA"/>
			<xs:enumeration value="VCT"/>
			<xs:enumeration value="WSM"/>
			<xs:enumeration value="SMR"/>
			<xs:enumeration value="STP"/>
			<xs:enumeration value="SAU"/>
			<xs:enumeration value="SEN"/>
			<xs:enumeration value="SCG"/>
			<xs:enumeration value="SYC"/>
			<xs:enumeration value="SLE"/>
			<xs:enumeration value="SGP"/>
			<xs:enumeration value="SGS"/>
			<xs:enumeration value="SSD"/>
			<xs:enumeration value="SVK"/>
			<xs:enumeration value="SVN"/>
			<xs:enumeration value="SLB"/>
			<xs:enumeration value="SOM"/>
			<xs:enumeration value="ZAF"/>
			<xs:enumeration value="ESP"/>
			<xs:enumeration value="LKA"/>
			<xs:enumeration value="SHN"/>
			<xs:enumeration value="SPM"/>
			<xs:enumeration value="SDN"/>
			<xs:enumeration value="SUR"/>
			<xs:enumeration value="SJM"/>
			<xs:enumeration value="SWZ"/>
			<xs:enumeration value="SWE"/>
			<xs:enumeration value="CHE"/>
			<xs:enumeration value="SYR"/>
			<xs:enumeration value="TWN"/>
			<xs:enumeration value="TJK"/>
			<xs:enumeration value="TZA"/>
			<xs:enumeration value="THA"/>
			<xs:enumeration value="TGO"/>
			<xs:enumeration value="TKL"/>
			<xs:enumeration value="TON"/>
			<xs:enumeration value="TTO"/>
			<xs:enumeration value="TUN"/>
			<xs:enumeration value="TUR"/>
			<xs:enumeration value="TKM"/>
			<xs:enumeration value="TCA"/>
			<xs:enumeration value="TUV"/>
			<xs:enumeration value="UGA"/>
			<xs:enumeration value="UKR"/>
			<xs:enumeration value="ARE"/>
			<xs:enumeration value="GBR"/>
			<xs:enumeration value="USA"/>
			<xs:enumeration value="UMI"/>
			<xs:enumeration value="UNK"/>
			<xs:enumeration value="URY"/>
			<xs:enumeration value="UZB"/>
			<xs:enumeration value="VUT"/>
			<xs:enumeration value="VAT"/>
			<xs:enumeration value="VEN"/>
			<xs:enumeration value="VNM"/>
			<xs:enumeration value="VGB"/>
			<xs:enumeration value="VIR"/>
			<xs:enumeration value="WLF"/>
			<xs:enumeration value="ESH"/>
			<xs:enumeration value="YEM"/>
			<xs:enumeration value="YUG"/>
			<xs:enumeration value="ZAR"/>
			<xs:enumeration value="ZMB"/>
			<xs:enumeration value="ZWE"/>
			<xs:enumeration value="unk"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ParticipationTypes" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Primary Artist"/>
			<xs:enumeration value="Featured Artist"/>
			<xs:enumeration value="Composer"/>
			<xs:enumeration value="Conductor"/>
			<xs:enumeration value="Choir/Chorus"/>
			<xs:enumeration value="Orchestra"/>
			<xs:enumeration value="Soloist"/>
			<xs:enumeration value="Performer"/>
			<xs:enumeration value="Arranger"/>
			<xs:enumeration value="Remixer"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
