<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.asam.net/xml/fbx/nm/asr30" xmlns:asr30nm="http://www.asam.net/xml/fbx/nm/asr30" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ho="http://www.asam.net/xml" xmlns:fx="http://www.asam.net/xml/fbx" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
	<xs:import namespace="http://www.asam.net/xml" schemaLocation="harmonizedObjects.xsd"/>
	<xs:import namespace="http://www.asam.net/xml/fbx" schemaLocation="fibex.xsd"/>
	<xs:complexType name="NM-CONFIG-TYPE">
		<xs:annotation>
			<xs:documentation>Contains the all configuration elements for ASR Nm 3.0 (generic base class for NmIf, FrNm, CanNm)</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="fx:NM-CONFIG-TYPE">
				<xs:sequence>
					<xs:element name="NM-CLUSTERS">
						<xs:annotation>
							<xs:documentation>ASR Nm 3.0 Clusters</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-CLUSTER" type="asr30nm:NM-CLUSTER-TYPE" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="NM-ECUS">
						<xs:annotation>
							<xs:documentation>ASR Nm 3.0 ECUs</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-ECU" type="asr30nm:NM-ECU-TYPE" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="NM-CLUSTER-COUPLINGS" minOccurs="0">
						<xs:annotation>
							<xs:documentation>ASR Nm 3.0 configuration which must be unique for all NM-NODEs of an NM-CLUSTER as well al for all NM-NODEs of an NM-ECU.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-CLUSTER-COUPLING" type="asr30nm:NM-CLUSTER-COUPLING-TYPE" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NM-CLUSTER-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR Nm 3.0 configuration elements that must be unique for all NM-NODEs of a cluster (generic base class for NmIf, FrNm, CanNm)</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="fx:REVISED-ELEMENT-TYPE">
				<xs:sequence>
					<xs:element name="CHANNEL-ID" type="xs:unsignedByte">
						<xs:annotation>
							<xs:documentation>Channel identification number of the corresponding channel. - Must be unique over all NM-CLUSTERs</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="REMOTE-SLEEP-INDICATION-TIME" type="xs:duration">
						<xs:annotation>
							<xs:documentation>Timeout for Remote Sleep Indication. It defines the time how long it shall take to recognize that all other nodes are ready to sleep.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MSG-TIMEOUT-TIME" type="xs:duration">
						<xs:annotation>
							<xs:documentation>Transmission Timeout of NM PDU. If there is no transmission confirmation by the respective interface module (e.g., FrIf, CanIf, LinIf) within this timeout, the Nm shall give an error notification.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="REPEAT-MESSAGE-TIME" type="xs:duration">
						<xs:annotation>
							<xs:documentation>Timeout for Repeat Message State. Defines the time in seconds how long the NM shall stay in the Repeat Message State. The value "0" denotes that no Repeat Message State is configured, which means that Repeat Message State is transient and implies that it is left immediately after entry and consequently no startup stability is guaranteed and no node detection procedure is possible. </xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="NM-NODES">
						<xs:annotation>
							<xs:documentation>Collection of NM-NODEs of the NM-CLUSTER</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-NODE" type="asr30nm:NM-NODE-TYPE" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element ref="fx:CLUSTER-REF"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NM-CLUSTER-COUPLING-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR Nm 3.0 configuration element that couples different NM clusters and contains parameters that must be identical in all of them</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ho:DESC" minOccurs="0"/>
			<xs:element name="NM-CLUSTER-REFS">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="asr30nm:NM-CLUSTER-REF" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:complexType name="NM-ECU-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR NmIf 3.0 configuration elements for a specific ECU</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="fx:REVISED-ELEMENT-TYPE">
				<xs:sequence>
					<xs:element name="BUS-SYNCHRONIZATION-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling bus synchronization support. This feature is required for gateway nodes only.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MULTIPLE-CHANNELS-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling channel multiplicity support.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="COM-CONTROL-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling the Communication Control support.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="PASSIVE-MODE-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling support of the Passive Mode.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="NODE-DETECTION-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling the the node detection feature of the ASR Nm.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="NODE-ID-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling the source node identifier support.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="STATE-CHANGE-INDICATION-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling the Nm state change notification.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="USER-DATA-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling user data support.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="PDU-RX-INDICATION-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling the PDU Rx Indication.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="REMOTE-SLEEP-INDICATION-ENABLED" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Pre-processor switch for enabling remote sleep indication support. This feature is required for gateway nodes only. - It must not be enabled if PASSIVE-MODE-ENABLED is set to TRUE.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="CYCLE-TIME-MAIN-FUNCTION" type="xs:duration">
						<xs:annotation>
							<xs:documentation>The period between successive calls to the Main Function of the respective NM channel of the ASR Nm.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="fx:ECU-REF"/>
					<xs:element name="NM-COORDINATOR" type="asr30nm:NM-COORDINATOR-TYPE" minOccurs="0"/>
					<xs:element name="NM-ECU-EXTENSIONS" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-ECU-EXTENSION" type="asr30nm:NM-ECU-EXTENSION-TYPE" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NM-ECU-EXTENSION-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR NmIf 3.0 configuration elements for a specific ECU - base class for bus-specific extensions</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ho:DESC" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:complexType name="NM-COORDINATOR-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR NmIf 3.0 configuration elements for a specific ECU - extension for NM coordinators</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ho:DESC" minOccurs="0"/>
			<xs:element name="AUTOSAR-GW-ROUNDS" type="xs:long">
				<xs:annotation>
					<xs:documentation>Number of rounds the coordinator shall keep a bus which runs ASRNm awake after all nodes including itself are ready to sleep. - Only valid if COORDINATOR-SUPPORT-ENABLED is set to TRUE.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OSEK-GW-ROUNDS" type="xs:long">
				<xs:annotation>
					<xs:documentation>Number of rounds the coordinator shall keep a bus which runs OSEK NM awake after all nodes including itself are ready to sleep. - Only valid if OSEK-SUPPORT-ENABLED is setto TRUE.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OSEK-SUPPORT-ENABLED" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Switch to inform if NM coordinator needs to support direct OSEK NM. - Only valid if COORDINATOR-SUPPORT-ENABLED is set to TRUE.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="NM-NODE-REFS">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="asr30nm:NM-NODE-REF" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:complexType name="NM-NODE-TYPE">
		<xs:annotation>
			<xs:documentation>All ASR Nm 3.0 configuration elements that might be different for each single NM-NODE (generic base class for NmIf, FrNm, CanNm)</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="fx:REVISED-ELEMENT-TYPE">
				<xs:sequence>
					<xs:element name="NODE-ID" type="xs:unsignedByte">
						<xs:annotation>
							<xs:documentation>Node identifier of local NM-NODE. - Must be unique in the NM-CLUSTER. - Only valid if SOURCE-NODE-IDENTIFIER-ENABLED is set to TRUE.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="INSTANCE-ID" type="xs:unsignedShort">
						<xs:annotation>
							<xs:documentation>Nm instance identifier configured for the respective NM-CLUSTER. It is used for reporting of development errors to DET. It must be unique for each NM instance within one NM-ECU.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="CYCLE-TIME-MAIN-FUNCTION" type="xs:duration">
						<xs:annotation>
							<xs:documentation>The period between successive calls to the Main Function of the respective NM channel of the ASR Nm.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="NM-PDU-USAGES">
						<xs:annotation>
							<xs:documentation>References to PDU-TRIGGERINGs used by ASR Nm.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NM-PDU-USAGE" type="asr30nm:NM-PDU-USAGE-TYPE" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>Reference to PDU-TRIGGERING used by ASR Nm.</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element ref="asr30nm:NM-ECU-REF"/>
					<xs:element ref="fx:CONTROLLER-REF"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NM-PDU-USAGE-TYPE">
		<xs:annotation>
			<xs:documentation>ASR Nm 3.0 reference to the used PDU-TRIGGERINGs (generic base class for NmIf, FrNm, CanNm)</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ho:DESC" minOccurs="0"/>
			<xs:element ref="fx:PDU-TRIGGERING-REF"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required"/>
	</xs:complexType>
	<xs:element name="NM-CLUSTER-REF">
		<xs:annotation>
			<xs:documentation>Refering an NM-CLUSTER element</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="ID-REF" type="xs:IDREF" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="NM-ECU-REF">
		<xs:annotation>
			<xs:documentation>Refering an NM-ECU element</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="ID-REF" type="xs:IDREF" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="NM-NODE-REF">
		<xs:annotation>
			<xs:documentation>Refering an NM-NODE element</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="ID-REF" type="xs:IDREF" use="required"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
