<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by PostNL IT (PostNL Holding B.V.) -->
<!--oorspronkelijke namespace: http://www.opengis.net/sensorml/2.0-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sml2="urn:postnl/ogs/sensorml/2" xmlns:gco1="urn:postnl/ogs/gcobase/1" xmlns:fea3="urn:postnl/ogs/feature/3" xmlns:bat2="urn:postnl/ogs/basic_types/2" xmlns:xl1="urn:postnl/ogs/xml/1" xmlns:con1="urn:postnl/ogs/constraints/1" targetNamespace="urn:postnl/ogs/sensorml/2" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0.0">
	<annotation>
		<documentation>The core elements of an abstract process from which all major elements of SensorML are derived.
        
        SensorML is an OGC Standard.
        Copyright (c) 2014 Open Geospatial Consortium.
        To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
        </documentation>
	</annotation>
	<import namespace="urn:postnl/ogs/gcobase/1" schemaLocation="../Common/gcoBase1.xsd"/>
	<import namespace="urn:postnl/ogs/feature/3" schemaLocation="../Common/feature3.xsd"/>
	<import namespace="urn:postnl/ogs/xml/1" schemaLocation="../Common/xml1.xsd"/>
	<import namespace="urn:postnl/ogs/constraints/1" schemaLocation="../Common/constraints1.xsd"/>
	<import namespace="urn:postnl/ogs/basic_types/2" schemaLocation="../Common/basic_types2.xsd"/>
	<complexType name="DescribedObjectType" abstract="true">
		<complexContent>
			<extension base="fea3:AbstractFeatureType">
				<sequence>
					<element name="extension" type="anyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>A property that allows one to extend a document using a schema in a different namespace from the current schema.</documentation>
						</annotation>
					</element>
					<element name="keywords" type="sml2:KeywordListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Short keywords describing the context of this document to aid in discovery.</documentation>
						</annotation>
					</element>
					<element name="identification" type="sml2:IdentifierListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Identifiers useful for discovery of the process (e.g. short name, mission id, wing id, serial number, etc.)</documentation>
						</annotation>
					</element>
					<element name="classification" type="sml2:ClassifierListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Classifiers useful for discovery of the process (e.g. process type, sensor type, intended application, etc.)</documentation>
						</annotation>
					</element>
					<element name="validTime" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>The time instance or time range during which this instance description is valid.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<group ref="sml2:TimeInstantOrPeriod"/>
							</sequence>
						</complexType>
					</element>
					<element name="securityConstraints" type="anyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Overall security tagging of process description; individual tagging of properties can be done using extension element.</documentation>
						</annotation>
					</element>
					<element name="legalConstraints" type="con1:MD_LegalConstraints_PropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Legal constraints applied to this description (e.g. copyrights, legal use, etc.)</documentation>
						</annotation>
					</element>
					<element name="characteristics" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Useful properties of this process that do not further qualify the output values (e.g. component dimensions, battery life, operational limits, etc).</documentation>
						</annotation>
						<complexType>
							<complexContent>
								<extension base="sml2:CharacteristicListPropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
					<element name="capabilities" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Properties that further clarify or quantify the output of the process (e.g. dynamic range, sensitivity, threshold, etc.). These can assist in the discovery of processes that meet particular requirements.</documentation>
						</annotation>
						<complexType>
							<complexContent>
								<extension base="sml2:CapabilityListPropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
					<element name="contacts" type="sml2:ContactListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Persons or responsible parties that are relevant to this process (e.g. designer, manufacturer, expert, etc.)</documentation>
						</annotation>
					</element>
					<element name="documentation" type="sml2:DocumentListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Additional external online documentation of relevance to this process (e.g. user's guides, product manuals, specification sheets, images, technical papers, etc.)</documentation>
						</annotation>
					</element>
					<element name="history" type="sml2:EventListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>A collection of time-tagged events relevant to this process.</documentation>
						</annotation>
					</element>
				</sequence>
				<attribute ref="xl1:lang" use="optional">
					<annotation>
						<documentation>A tag that identifies the language (e.g. english, french, etc.) for the overall document using a two-letters code as defined by ISO 639-1.</documentation>
					</annotation>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<element name="DescribedObject" type="sml2:DescribedObjectType" abstract="true" substitutionGroup="fea3:AbstractFeature">
		<annotation>
			<documentation>A feature with generic metadata which further clarifies the object and supports object discovery.</documentation>
		</annotation>
	</element>
	<complexType name="DescribedObjectPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:DescribedObject"/>
		</sequence>
		<attributeGroup ref="fea3:AssociationAttributeGroup"/>
		<attributeGroup ref="fea3:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractProcess" type="sml2:AbstractProcessType" abstract="true" substitutionGroup="sml2:DescribedObject">
		<annotation>
			<documentation>The general base model for any process.</documentation>
		</annotation>
	</element>
	<complexType name="AbstractProcessType" abstract="true">
		<complexContent>
			<extension base="sml2:DescribedObjectType">
				<sequence>
					<element name="typeOf" type="fea3:ReferenceType" minOccurs="0" maxOccurs="1">
						<annotation>
							<appinfo>
								<fea3:targetElement>sml:AbstractProcess</fea3:targetElement>
							</appinfo>
							<documentation>A reference to a base process from which this process inherits properties and constraints (e.g. original equipment manufacturer's model description, generic equation, etc.). The uniqueID of the referenced process must be provided using the xlink:title attribute while the URL to the process description must be provided by the xlink:href attribute.</documentation>
						</annotation>
					</element>
					<element name="configuration" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>Value settings that further constrain the properties of the base process.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:AbstractSettings"/>
							</sequence>
						</complexType>
					</element>
					<element name="featuresOfInterest" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>A collection of features relevant to a process (e.g. the Gulf of Mexico, the White House, the set of all Fibonacci Numbers, etc.); can also support a sampling feature. The primary purpose of the Features of Interest is to support discovery.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:FeatureList"/>
							</sequence>
						</complexType>
					</element>
					<element name="inputs" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>The list of data components (and their properties and semantics) that the process will accept as input; In the standard linear equation y=mx+b; x is the input, m and b are the parameters, and y is the output.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:InputList"/>
							</sequence>
						</complexType>
					</element>
					<element name="outputs" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>The list of data components (and their properties and semantics) that the process will accept as output; In the standard linear equation y=mx+b; x is the input, m and b are the parameters, and y is the output.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:OutputList"/>
							</sequence>
						</complexType>
					</element>
					<element name="parameters" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>The list of data components (and their properties and semantics) that the process will accept as parameters; In the standard linear equation y=mx+b; x is the input, m and b are the parameters, and y is the output.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:ParameterList"/>
							</sequence>
						</complexType>
					</element>
					<element name="modes" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>A collection of parameters that can be set at once through the selection of a particular predefined mode.</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:AbstractModes"/>
							</sequence>
						</complexType>
					</element>
				</sequence>
				<attribute name="definition" type="anyURI" use="optional">
					<annotation>
						<documentation>An optional property that allows one to reference the process instance in an online ontology or dictionary. The value of the property must be a resolvable URI.</documentation>
					</annotation>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="AbstractProcessPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:AbstractProcess"/>
		</sequence>
		<attributeGroup ref="fea3:AssociationAttributeGroup"/>
		<attributeGroup ref="fea3:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractSettings" type="sml2:AbstractSettingsType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="AbstractSettingsType">
		<complexContent>
			<extension base="bat2:AbstractSWEType"/>
		</complexContent>
	</complexType>
	<complexType name="AbstractSettingsPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:AbstractSettings"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="OutputList" type="sml2:OutputListType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="OutputListType">
		<complexContent>
			<extension base="bat2:AbstractSWEType">
				<sequence>
					<element name="output" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="sml2:DataComponentOrObservablePropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="OutputListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:OutputList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="IdentifierList" type="sml2:IdentifierListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="IdentifierListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="identifier" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<sequence>
								<element ref="sml2:Term"/>
							</sequence>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="IdentifierListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:IdentifierList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="InputList" type="sml2:InputListType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="InputListType">
		<complexContent>
			<extension base="bat2:AbstractSWEType">
				<sequence>
					<element name="input" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="sml2:DataComponentOrObservablePropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="InputListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:InputList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="DocumentList" type="sml2:DocumentListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="DocumentListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="document" type="con1:CI_OnlineResource_PropertyType" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="DocumentListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:DocumentList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="CharacteristicList" type="sml2:CharacteristicListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="CharacteristicListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="characteristic" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="bat2:AbstractDataComponentPropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="CharacteristicListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:CharacteristicList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="FeatureList" type="sml2:FeatureListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="FeatureListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="feature" type="fea3:FeaturePropertyType" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="FeatureListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:FeatureList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="Event" type="sml2:EventType" substitutionGroup="bat2:AbstractSWEIdentifiable">
		<annotation>
			<documentation>A time tagged Event with description and relevant property values.</documentation>
		</annotation>
	</element>
	<complexType name="EventType">
		<complexContent>
			<extension base="bat2:AbstractSWEIdentifiableType">
				<sequence>
					<element name="keywords" type="con1:MD_Keywords_PropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>keywords useful for discovery of the event</documentation>
						</annotation>
					</element>
					<element name="identification" type="sml2:IdentifierListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Identifiers relevant to the event</documentation>
						</annotation>
					</element>
					<element name="classification" type="sml2:ClassifierListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Type of event (useful for discovery)</documentation>
						</annotation>
					</element>
					<element name="contacts" type="sml2:ContactListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Persons or parties relevant to this event</documentation>
						</annotation>
					</element>
					<element name="documentation" type="sml2:DocumentListPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Additional documentation relevant to this event</documentation>
						</annotation>
					</element>
					<element name="time">
						<annotation>
							<documentation>DateTime of the event</documentation>
						</annotation>
						<complexType>
							<sequence>
								<group ref="sml2:TimeInstantOrPeriod"/>
							</sequence>
						</complexType>
					</element>
					<element name="property" type="bat2:AbstractDataComponentPropertyType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Properties of interest to the event (e.g. calibration values, condition category, error codes, etc)</documentation>
						</annotation>
					</element>
					<element name="configuration" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>Configuration settings adjusted during event</documentation>
						</annotation>
						<complexType>
							<sequence>
								<element ref="sml2:AbstractSettings"/>
							</sequence>
						</complexType>
					</element>
				</sequence>
				<attribute name="definition" type="anyURI" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="EventPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:Event"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="CapabilityList" type="sml2:CapabilityListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="CapabilityListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="capability" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="bat2:AbstractDataComponentPropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="CapabilityListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:CapabilityList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="EventList" type="sml2:EventListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="EventListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="event" type="sml2:EventPropertyType" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="EventListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:EventList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractMetadataList" type="sml2:AbstractMetadataListType" substitutionGroup="bat2:AbstractSWEIdentifiable"/>
	<complexType name="AbstractMetadataListType">
		<complexContent>
			<extension base="bat2:AbstractSWEIdentifiableType">
				<attribute name="definition" type="anyURI" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="AbstractMetadataListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:AbstractMetadataList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="ContactList" type="sml2:ContactListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="ContactListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="contact" type="con1:CI_ResponsibleParty_PropertyType" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ContactListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:ContactList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="KeywordList" type="sml2:KeywordListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="KeywordListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="codeSpace" type="bat2:Reference" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>online dictionary or ontology which defines a collection of possible keywords</documentation>
						</annotation>
					</element>
					<element name="keyword" type="string" minOccurs="1" maxOccurs="unbounded">
						<annotation>
							<documentation>a short word or phrase that will aid in discovery of this object</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="KeywordListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:KeywordList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="Term" type="sml2:TermType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="TermType">
		<complexContent>
			<extension base="bat2:AbstractSWEType">
				<sequence>
					<element name="label" type="string"/>
					<element name="codeSpace" type="bat2:Reference" minOccurs="0" maxOccurs="1"/>
					<element name="value" type="string"/>
				</sequence>
				<attribute name="definition" type="anyURI" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="TermPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:Term"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="ClassifierList" type="sml2:ClassifierListType" substitutionGroup="sml2:AbstractMetadataList"/>
	<complexType name="ClassifierListType">
		<complexContent>
			<extension base="sml2:AbstractMetadataListType">
				<sequence>
					<element name="classifier" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<sequence>
								<element ref="sml2:Term"/>
							</sequence>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ClassifierListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:ClassifierList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="ParameterList" type="sml2:ParameterListType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="ParameterListType">
		<complexContent>
			<extension base="bat2:AbstractSWEType">
				<sequence>
					<element name="parameter" minOccurs="1" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="sml2:DataComponentOrObservablePropertyType">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ParameterListPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:ParameterList"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractModes" type="sml2:AbstractModesType" substitutionGroup="bat2:AbstractSWE"/>
	<complexType name="AbstractModesType">
		<complexContent>
			<extension base="bat2:AbstractSWEType"/>
		</complexContent>
	</complexType>
	<complexType name="AbstractModesPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:AbstractModes"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="DataInterface" type="sml2:DataInterfaceType" substitutionGroup="bat2:AbstractSWEIdentifiable">
		<annotation>
			<documentation>The DataInterface description provides information sufficient for "plug-and-play" access to and parsing of the data stream or file at the particular IO port.</documentation>
		</annotation>
	</element>
	<complexType name="DataInterfaceType">
		<complexContent>
			<extension base="bat2:AbstractSWEIdentifiableType">
				<sequence>
					<element name="data" type="bat2:DataStreamPropertyType">
						<annotation>
							<documentation>The definition of the digital data components and encoding accessed through the data interface.</documentation>
						</annotation>
					</element>
					<element name="interfaceParameters" type="bat2:DataRecordPropertyType" minOccurs="0" maxOccurs="1">
						<annotation>
							<documentation>A set of property values that define the type and configuration of a data interface (e.g. the port settings of an RS232 interface).</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="DataInterfacePropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:DataInterface"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="ObservableProperty" type="sml2:ObservablePropertyType" substitutionGroup="bat2:AbstractSWEIdentifiable">
		<annotation>
			<documentation>A physical property that can be observed and possibly measured (e.g. temperature, color, position). An ObservableProperty has unambiguous definition, but does not have units of measure.</documentation>
		</annotation>
	</element>
	<complexType name="ObservablePropertyType">
		<complexContent>
			<extension base="bat2:AbstractSWEIdentifiableType">
				<attribute name="definition" type="anyURI" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ObservablePropertyPropertyType">
		<sequence minOccurs="0">
			<element ref="sml2:ObservableProperty"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<group name="TimeInstantOrPeriod">
		<annotation>
			<documentation>Either a Time Instant or Time Period</documentation>
		</annotation>
		<choice>
			<element ref="fea3:TimePeriod"/>
			<element ref="fea3:TimeInstant"/>
		</choice>
	</group>
	<complexType name="TimeInstantOrPeriodPropertyType">
		<sequence minOccurs="0">
			<group ref="sml2:TimeInstantOrPeriod"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<simpleType name="ComponentValue">
		<union memberTypes="boolean integer double string bat2:TimePosition"/>
	</simpleType>
	<!-- ================================================= -->
	<group name="DataComponentOrObservable">
		<choice>
			<element ref="bat2:AbstractDataComponent">
				<annotation>
					<documentation>A single digital number (DN) or aggregate of DNs that represent the value of some property. Single data components can be of type Quantity, Count, Category, Boolean, Text, or Time; these can be aggregated in records, arrays, vector, and matrices.</documentation>
				</annotation>
			</element>
			<element ref="sml2:ObservableProperty">
				<annotation>
					<documentation>A physical property of the environment that can be observed by an appropriate detector (e.g. temperature, pressure, etc.); Typically,an ObservableProperty serves as the input of a detector and the output of an actuator.</documentation>
				</annotation>
			</element>
			<element ref="sml2:DataInterface">
				<annotation>
					<documentation>A data interface serves as an intermediary between the pure digital domain and the physical domain where DN are encoded into a format and perhaps transmitted through physical connections using some well-defined protocol. The DataInterface element allows one to define the components, semantics, encoding, connections, and protocol at an input, output, or parameter port.</documentation>
				</annotation>
			</element>
		</choice>
	</group>
	<complexType name="DataComponentOrObservablePropertyType">
		<sequence minOccurs="0">
			<group ref="sml2:DataComponentOrObservable"/>
		</sequence>
		<attributeGroup ref="bat2:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<complexType name="DataComponentRefPropertyType">
		<attribute name="ref" type="sml2:DataComponentPathPropertyType" use="required"/>
	</complexType>
	<simpleType name="DataComponentPathPropertyType">
		<restriction base="token">
			<pattern value="([a-zA-Z_][a-zA-Z0-9_\-\.]*)(/[a-zA-Z_][a-zA-Z0-9_\-\.]*)*"/>
		</restriction>
	</simpleType>
</schema>
