<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Robert Woodcock (CSIRO) -->
<schema targetNamespace="http://xml.arrc.csiro.au/adx" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0.1" xmlns:adx="http://xml.arrc.csiro.au/adx" xmlns:gml="http://www.opengis.net/gml" xmlns:xmml="http://www.opengis.net/xmml" xmlns:nl="urn:oasis:names:tc:ciq:xsdschema:xNL:2.0" xmlns:al="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" xmlns:nal="urn:oasis:names:tc:ciq:xsdschema:xNAL:2.0" xmlns:cil="urn:oasis:names:tc:ciq:xsdschema:xCIL:2.0" xmlns="http://www.w3.org/2001/XMLSchema">
	<!-- ==================================================== -->
	<annotation>
		<documentation> Some base components for ADX 2 
		
Copyright (c) 2004 CSIRO - see https://www.seegrid.csiro.au/twiki/bin/view/Xmml/LegalNotices#Software_Notice
</documentation>
	</annotation>
	<!-- ==================================================== -->
	<import namespace="urn:oasis:names:tc:ciq:xsdschema:xCIL:2.0" schemaLocation="../../oasis/OASIS-CIQ/xCIL.xsd">
		<annotation>
			<documentation>Names, addresses, organisations, contacts</documentation>
		</annotation>
	</import>
	<import namespace="urn:oasis:names:tc:ciq:xsdschema:xNAL:2.0" schemaLocation="../../oasis/OASIS-CIQ/xNAL.xsd">
		<annotation>
			<documentation>Names, addresses, organisations</documentation>
		</annotation>
	</import>
	<import namespace="urn:oasis:names:tc:ciq:xsdschema:xNL:2.0" schemaLocation="../../oasis/OASIS-CIQ/xNL.xsd">
		<annotation>
			<documentation>Names</documentation>
		</annotation>
	</import>
	<import namespace="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" schemaLocation="../../oasis/OASIS-CIQ/xAL.xsd">
		<annotation>
			<documentation>addresses</documentation>
		</annotation>
	</import>
	<!-- =========================================================== -->
	<complexType name="ADXobjectType" abstract="true">
		<annotation>
			<documentation>Base type from which all ADX object types should be derived.</documentation>
		</annotation>
		<sequence>
			<element name="description" type="adx:StringOrRefType" minOccurs="0"/>
			<element name="name" type="token" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="ID" use="required"/>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="ADXnamedObjectType" abstract="true">
		<annotation>
			<documentation>Alternative base type from which ADX object types may be derived. 
      "name" property is mandatory.</documentation>
		</annotation>
		<complexContent>
			<restriction base="adx:ADXobjectType">
				<sequence>
					<element name="description" type="adx:StringOrRefType" minOccurs="0"/>
					<element name="name" type="token"/>
				</sequence>
				<attribute name="id" type="ID" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<!--  useful global elements - partly modelled after GML and XMML properties  -->
	<!-- ==================================================== -->
	<!-- ==================================================== -->
	<!-- ==================================================== -->
	<element name="comment" type="string"/>
	<!-- ====================================================================== -->
	<element name="TimePeriod">
		<complexType>
			<sequence>
				<element name="beginPosition" type="dateTime"/>
				<element name="endPosition" type="dateTime"/>
			</sequence>
		</complexType>
	</element>
	<!-- ====================================================================== -->
	<element name="TimeInstant">
		<complexType>
			<sequence>
				<element name="timePosition" type="dateTime"/>
			</sequence>
		</complexType>
	</element>
	<!-- ==================================================== -->
	<element name="time" type="adx:TimePrimitivePropertyType"/>
	<!-- ====================================================================== -->
	<complexType name="TimePrimitivePropertyType">
		<choice>
			<element ref="adx:TimeInstant"/>
			<element ref="adx:TimePeriod"/>
		</choice>
	</complexType>
	<!-- ==================================================== -->
	<!-- === useful complex objects === -->
	<!-- ==================================================== -->
	<!-- === Responsible parties === -->
	<!-- ==================================================== -->
	<group name="Party">
		<choice>
			<element ref="adx:Party"/>
			<element ref="adx:Company"/>
			<element ref="adx:Person"/>
		</choice>
	</group>
	<!-- ====================================================================== -->
	<element name="Party" type="adx:PartyType">
		<annotation>
			<documentation>Generic party using the comprehensive cil:Record type</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="PartyType">
		<complexContent>
			<extension base="cil:Record">
				<attribute name="id" type="ID" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ====================================================================== -->
	<element name="Company" type="adx:CompanyType">
		<annotation>
			<documentation>Corporate entity</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="CompanyType">
		<sequence>
			<element name="companyName" type="nl:OrganisationNameDetails"/>
			<element name="location" type="al:AddressDetails"/>
		</sequence>
		<attribute name="id" type="ID" use="required"/>
	</complexType>
	<!-- ==================================================== -->
	<element name="Person" type="adx:PersonType"/>
	<!-- ====================================================================== -->
	<complexType name="PersonType">
		<sequence>
			<element name="personName" type="nl:PersonName"/>
			<element name="location" type="al:AddressDetails"/>
		</sequence>
		<attribute name="id" type="ID" use="required"/>
	</complexType>
	<!-- ==================================================== -->
	<element name="responsibleParty" type="adx:PartyPropertyType"/>
	<element name="operator" type="adx:PartyPropertyType" substitutionGroup="adx:responsibleParty"/>
	<!-- ==================================================== -->
	<complexType name="PartyPropertyType">
		<sequence minOccurs="0">
			<group ref="adx:Party"/>
		</sequence>
		<attribute name="href" type="anyURI" use="optional"/>
	</complexType>
	<!-- ==================================================== -->
	<!-- ==================================================== -->
	<element name="Event" type="adx:EventType">
		<annotation>
			<documentation>Description of an event, particularly that causes transformation of a feature.  
      The event may be transport or administrative.  
      Specialised event types may be derived from this type. </documentation>
		</annotation>
	</element>
	<!-- ====== -->
	<complexType name="EventType">
		<annotation>
			<documentation>Description of an event, particularly that causes transformation of a feature.  
      The event may be transport or administrative.  
      Specialised event types may be derived from this type. 
      
      Use the "description" element to indicate the nature of the event or action, or to carry a pointer to a description of it. </documentation>
		</annotation>
		<complexContent>
			<extension base="adx:ADXobjectType">
				<sequence>
					<element name="input" type="adx:StringOrRefType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Reference to input (if not implied by context or listed in the description of the procedure)</documentation>
						</annotation>
					</element>
					<element name="output" type="adx:StringOrRefType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Reference to result (if not implied by context)</documentation>
						</annotation>
					</element>
					<element ref="adx:time"/>
					<element ref="adx:responsibleParty">
						<annotation>
							<documentation>Person or organisation responsible for the action</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ==================================================== -->
	<!-- === useful simpleContent types === -->
	<!-- ==================================================== -->
	<complexType name="StringOrRefType">
		<simpleContent>
			<extension base="string">
				<attribute name="href" type="anyURI"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ==================================================== -->
	<complexType name="MoneyType">
		<simpleContent>
			<extension base="decimal">
				<attribute name="currency" type="Name" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ==================================================== -->
	<simpleType name="code">
		<annotation>
			<documentation>For values from pick-lists - a shorthand version of referenceTo?</documentation>
		</annotation>
		<restriction base="token"/>
	</simpleType>
	<!-- ==================================================== -->
	<!-- === Types for reference and identifiers === -->
	<!-- =========================================================== -->
	<complexType name="referenceTo">
		<annotation>
			<documentation>Pointer to another object</documentation>
		</annotation>
		<sequence/>
		<attribute name="href" type="anyURI" use="optional">
			<annotation>
				<documentation>Identifier for the remote object</documentation>
			</annotation>
		</attribute>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="relationship">
		<annotation>
			<documentation>Rich pointer to another object</documentation>
		</annotation>
		<complexContent>
			<extension base="adx:referenceTo">
				<attribute name="role" type="anyURI" use="optional"/>
				<attribute name="arcrole" type="anyURI" use="optional">
					<annotation>
						<documentation>The nature of the relationship of between the present and remote objects</documentation>
					</annotation>
				</attribute>
				<attribute name="title" type="string" use="optional">
					<annotation>
						<documentation>A label for the link</documentation>
					</annotation>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="identifier">
		<annotation>
			<documentation>To assert an identifier assigned to this thing</documentation>
		</annotation>
		<restriction base="token"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="reference">
		<annotation>
			<documentation>To identify another thing</documentation>
		</annotation>
		<restriction base="token"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="flag">
		<restriction base="boolean"/>
	</simpleType>
	<!-- =========================================================== -->
	<!-- ===  Types for encoding values: measures and categories, etc   === -->
	<!-- =========================================================== -->
	<complexType name="MeasureType">
		<annotation>
			<documentation>Number with a scale.  </documentation>
		</annotation>
		<simpleContent>
			<extension base="double">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="SoftTypedMeasureType">
		<annotation>
			<documentation>Number with a scale and property.  </documentation>
		</annotation>
		<simpleContent>
			<extension base="double">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
				<attribute name="property" type="anyURI">
					<annotation>
						<documentation>This attribute holds a reference to or label for the property being described.  
            This will usually refer to a measure described on a ratio or interval scale, 
            such as temperature, wavelength, concentration.  </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="doubleList">
		<list itemType="double"/>
	</simpleType>
	<!-- =========================================================== -->
	<complexType name="MeasureListType">
		<annotation>
			<documentation>List of numbers with a scale. </documentation>
		</annotation>
		<simpleContent>
			<extension base="adx:doubleList">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="SoftTypedMeasureListType">
		<annotation>
			<documentation>List of numbers with a scale and property. </documentation>
		</annotation>
		<simpleContent>
			<extension base="adx:doubleList">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
				<attribute name="property" type="anyURI">
					<annotation>
						<documentation>This attribute holds a reference to or label for the property being described.  
            This will usually refer to a measure described on a ratio or interval scale, 
            such as temperature, wavelength, concentration.  </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="doubleInterval">
		<restriction base="adx:doubleList">
			<length value="2"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<complexType name="MeasureIntervalType">
		<annotation>
			<documentation>Pair of numbers with a scale.  </documentation>
		</annotation>
		<simpleContent>
			<extension base="adx:doubleInterval">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="SoftTypedMeasureIntervalType">
		<annotation>
			<documentation>Pair of numbers with a scale and property.  </documentation>
		</annotation>
		<simpleContent>
			<extension base="adx:doubleInterval">
				<attribute name="uom" type="anyURI" use="required">
					<annotation>
						<documentation>This attribute holds a reference to the scale used to express the value, which may be either a ratio or interval scale. </documentation>
					</annotation>
				</attribute>
				<attribute name="property" type="anyURI">
					<annotation>
						<documentation>This attribute holds a reference to or label for the property being described.  
            This will usually refer to a measure described on a ratio or interval scale, 
            such as temperature, wavelength, concentration.  </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<!-- =============================================================== -->
	<complexType name="SoftTypedCategoryType">
		<annotation>
			<documentation>Term with an authority and property.  </documentation>
		</annotation>
		<simpleContent>
			<extension base="token">
				<attribute name="codeSpace" type="anyURI" use="optional">
					<annotation>
						<documentation>This attribute holds a reference to the authority or classification used to express the value, which may be ordered or non-ordered. </documentation>
					</annotation>
				</attribute>
				<attribute name="property" type="anyURI">
					<annotation>
						<documentation>This attribute holds a reference to or label for the property being described.  </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="tokenList">
		<list itemType="token"/>
	</simpleType>
	<!-- =========================================================== -->
	<complexType name="SoftTypedCategoryListType">
		<annotation>
			<documentation>List of terms with a scale and property. </documentation>
		</annotation>
		<simpleContent>
			<extension base="adx:tokenList">
				<attribute name="codeSpace" type="anyURI" use="optional">
					<annotation>
						<documentation>This attribute holds a reference to the authority or classification used to express the value, which may be ordered or non-ordered. </documentation>
					</annotation>
				</attribute>
				<attribute name="property" type="anyURI">
					<annotation>
						<documentation>This attribute holds a reference to or label for the property being described.  </documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<simpleType name="count">
		<restriction base="nonNegativeInteger"/>
	</simpleType>
	<!-- =========================================================== -->
</schema>

