<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:te="urn:IEEE-1671:2009.02:TestEquipment" xmlns:hc="urn:IEEE-1671:2009.02:HardwareCommon" xmlns:c="urn:IEEE-1671:2009.02:Common" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:IEEE-1671:2009.02:TestEquipment" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.03">
	<xs:annotation>
		<xs:documentation xml:lang="en">

This schema is specified in IEEE Std 1671-20XX, "IEEE Standard
for Automatic Test Markup Language (ATML) for Exchanging Automatic Test 
Equipment and Test Information via XML."
 
This schema is a World Wide Web Consortium (W3C) Extensible 
Markup Language (XML) binding of the ATML Test Equipment component defined in IEEE
Std 1671-20XX,"IEEE Standard for Automatic Test Markup 
Language (ATML) for Exchanging Automatic Test Equipment and Test
Information via XML."

The purpose of this schema is to provide unique test equipment types and attributes
for ATML schemas.This schema uses the W3C XML Schema definition
language as the encoding. This allows for interoperability and 
the exchange of ATML component instances between various systems.
This schema shall not be modified but may be included in 
derivative works. 

Copyright (c) 2009 Institute of Electrical and Electronics 
Engineers, Inc.

USE AT YOUR OWN RISK

</xs:documentation>
	</xs:annotation>
	<xs:import namespace="urn:IEEE-1671:2009.02:Common" schemaLocation="Common.xsd"/>
	<xs:import namespace="urn:IEEE-1671:2009.02:HardwareCommon" schemaLocation="HardwareCommon.xsd"/>
	<xs:complexType name="TestEquipmentInstance">
		<xs:annotation>
			<xs:documentation>This type defines the common information for a particular serial number of a Test Station or a Test Adapter.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="c:HardwareInstance">
				<xs:sequence>
					<xs:element name="Controllers" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Ordered list of TestStation or TestAdapter controllers.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Controller" type="te:Controller" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>The Station or Test Adapters  controller.</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Software" type="te:Software" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A list of software associated with this test station or test adapter, in addition to controller software (i.e. Self-Test, Cal)</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Paths" type="te:Paths" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Signal paths through test station or test adapter. The path could consist of wiring and switching.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Capabilities" type="hc:Capabilities" minOccurs="0"/>
					<xs:element name="SelfTestRuns" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Self test last run ETE on Test Station or Test Adapter.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="SelfTestRun" maxOccurs="unbounded">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="Description" type="c:NonBlankString" minOccurs="0"/>
											<xs:element name="InstanceDocumentReference" type="c:DocumentReference" minOccurs="0">
												<xs:annotation>
													<xs:documentation>If this element is used, it shall contain data identifying the Instance document associated with this test run, such as a Test Results instance.</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="Extension" type="c:Extension" minOccurs="0"/>
										</xs:sequence>
										<xs:attribute name="name" type="c:NonBlankString" use="required"/>
										<xs:attribute name="version" type="c:NonBlankString"/>
										<xs:attribute name="date" type="xs:dateTime" use="required">
											<xs:annotation>
												<xs:documentation>Date and time self test last run ETE.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="SubSystemCalibration" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Subsystem calibrated (used if separte calibration is done on subsystems)</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="SubSystem" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>Subsystem calibrated</xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:sequence>
											<xs:element name="CalibrationDate" type="xs:dateTime">
												<xs:annotation>
													<xs:documentation>Date subsystem last calibrated</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="CalibrationFrequency" type="xs:duration" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Frequency which calibration is required to be run.</xs:documentation>
												</xs:annotation>
											</xs:element>
										</xs:sequence>
										<xs:attribute name="name" type="c:NonBlankString" use="required"/>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Configuration" type="c:NonBlankString" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Current Test Station or Test Adapter configuration. (i.e RF, Digital, EO)</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Extension" type="c:Extension" minOccurs="0">
						<xs:annotation>
							<xs:documentation>This element can be used to extend the Test Equipment Instance.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TestEquipment">
		<xs:annotation>
			<xs:documentation>This type defines the common information associated with a Test Station and a Test Adapter.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="hc:HardwareItemDescription">
				<xs:sequence>
					<xs:element name="FacilitiesRequirements" type="hc:FacilitiesRequirements" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of non power facilities requirements</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Controllers" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Ordered list of TestStation or TestAdapter controllers.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Controller" type="te:Controller" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>The Station or Test Adapter  controller.</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Software" type="te:Software" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A list of software associated with this test station or test adapter, in addition to controller software (i.e. Self-Test, Cal)</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Paths" type="te:Paths" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Signal paths through test station or test adapter. The path could consist of wiring and switching.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Specifications" type="hc:Specifications" minOccurs="0"/>
					<xs:element name="Resources" type="hc:Resources" minOccurs="0"/>
					<xs:element name="Switching" type="hc:Switching" minOccurs="0"/>
					<xs:element name="Capabilities" type="hc:Capabilities" minOccurs="0"/>
					<xs:element name="TerminalBlocks" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of terminal blocks inside adapter or test station.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence maxOccurs="unbounded">
								<xs:element name="TerminalBlock">
									<xs:complexType>
										<xs:complexContent>
											<xs:extension base="hc:RepeatedItem">
												<xs:sequence>
													<xs:element name="Interface" type="c:Interface"/>
												</xs:sequence>
											</xs:extension>
										</xs:complexContent>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Software">
		<xs:sequence>
			<xs:element name="SoftwareItem" type="c:ItemDescription" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Paths">
		<xs:sequence>
			<xs:element name="Path" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PathNodes">
							<xs:annotation>
								<xs:documentation>Begin and end nodes. Could be nodes associated with one section of wire or the begin and end nodes of a path composed of multiple wires and/or switches.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Node" minOccurs="2" maxOccurs="unbounded">
										<xs:complexType>
											<xs:complexContent>
												<xs:extension base="hc:NetworkNode">
													<xs:attribute name="name" type="c:NonBlankString" use="required">
														<xs:annotation>
															<xs:documentation>Name for the node in the path.  Used to reference the node when specifying path-loss data.</xs:documentation>
														</xs:annotation>
													</xs:attribute>
												</xs:extension>
											</xs:complexContent>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:sequence>
							<xs:element name="SignalDelays" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Delay time of signal through this path (electrical length)</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="SignalDelay" maxOccurs="unbounded">
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="c:Limit">
														<xs:sequence>
															<xs:element name="Frequency" type="c:Limit" minOccurs="0">
																<xs:annotation>
																	<xs:documentation>Frequency range associated with this SignalDelay.</xs:documentation>
																</xs:annotation>
															</xs:element>
														</xs:sequence>
														<xs:attribute name="inputPort" type="c:NonBlankString" use="required">
															<xs:annotation>
																<xs:documentation>Name of node the signal goes into.  If the value applies to all nodes in the path, specify the first node in the path.</xs:documentation>
															</xs:annotation>
														</xs:attribute>
														<xs:attribute name="outputPort" type="c:NonBlankString" use="required">
															<xs:annotation>
																<xs:documentation>Name of node the signal goes out of.  If the value applies applies to all nodes in the path, specify the last node in the path.</xs:documentation>
															</xs:annotation>
														</xs:attribute>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="VSWRValues" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Voltage Standing Wave Ratio (VSWR) associated with this path.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="VSWRValue" maxOccurs="unbounded">
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="c:Limit">
														<xs:sequence>
															<xs:element name="Frequency" type="c:Limit" minOccurs="0">
																<xs:annotation>
																	<xs:documentation>Frequency range associated with this VSWR.</xs:documentation>
																</xs:annotation>
															</xs:element>
														</xs:sequence>
														<xs:attribute name="inputPort" type="c:NonBlankString" use="required">
															<xs:annotation>
																<xs:documentation>Name of node the signal goes into.  If not specified, value applies to all nodes in the path.</xs:documentation>
															</xs:annotation>
														</xs:attribute>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="SParameters" minOccurs="0">
								<xs:annotation>
									<xs:documentation>S-parameters associated with this path.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="SParameter" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="SParameterData" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Magnitude" type="c:double"/>
																<xs:element name="PhaseAngle" type="c:double" minOccurs="0"/>
																<xs:element name="Frequency" type="c:double" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="inputPort" type="c:NonBlankString" use="required">
													<xs:annotation>
														<xs:documentation>Name of node the signal goes into.</xs:documentation>
													</xs:annotation>
												</xs:attribute>
												<xs:attribute name="outputPort" type="c:NonBlankString" use="required">
													<xs:annotation>
														<xs:documentation>Name of the node the signal goes out of</xs:documentation>
													</xs:annotation>
												</xs:attribute>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Extension" type="c:Extension" minOccurs="0"/>
						</xs:sequence>
					</xs:sequence>
					<xs:attribute name="name" type="c:NonBlankString"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Controller">
		<xs:complexContent>
			<xs:extension base="c:ItemDescription">
				<xs:sequence>
					<xs:element name="OperatingSystems">
						<xs:annotation>
							<xs:documentation>Installed operating systems.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="OperatingSystem" maxOccurs="unbounded">
									<xs:complexType>
										<xs:complexContent>
											<xs:extension base="c:ItemDescription">
												<xs:sequence>
													<xs:element name="OperatingSystemUpdates" minOccurs="0">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="OperatingSystemUpdate" type="c:NonBlankString" maxOccurs="unbounded"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:extension>
										</xs:complexContent>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="VideoCapabilities" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of available video capabilities.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Video" type="c:NonBlankString" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="AudioCapabilities" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of available audio capabilities.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Audio" type="c:NonBlankString" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Processor">
						<xs:annotation>
							<xs:documentation>Processor information.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Architecture" type="c:NonBlankString" minOccurs="0">
									<xs:annotation>
										<xs:documentation>x86, PPC, SPARC, etc. </xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="Type" type="c:NonBlankString" minOccurs="0">
									<xs:annotation>
										<xs:documentation>Pentium M, Power PC, etc.</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="Speed" type="c:double">
									<xs:annotation>
										<xs:documentation>Clock speed.</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="Quantity" type="xs:int"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Peripherals" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of available system peripherals.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Peripheral" type="c:ItemDescription" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="InstalledSoftware" minOccurs="0">
						<xs:annotation>
							<xs:documentation>List of installed software,</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Software" type="c:ItemDescription" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="PhysicalMemory" type="c:double"/>
					<xs:element name="Storage">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Drive" maxOccurs="unbounded">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="Size" type="c:double"/>
										</xs:sequence>
										<xs:attribute name="name" type="c:NonBlankString"/>
										<xs:attribute name="bootDrive" type="xs:boolean"/>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>
