<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.1 U (http://www.xmlspy.com) by Danver Hartop (DSI International) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="DiagML_Project">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="DiagML_Version" minOccurs="0">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="2.0"/>
							<xs:enumeration value="2.1"/>
							<xs:enumeration value="2.2"/>
							<xs:enumeration value="2.3"/>
							<xs:enumeration value="2.4"/>
							<xs:enumeration value="2.5"/>
							<xs:enumeration value="2.6"/>
							<xs:enumeration value="2.7"/>
							<xs:enumeration value="2.8"/>
							<xs:enumeration value="2.9"/>
							<xs:enumeration value="2.10"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="Type" type="xs:string" minOccurs="0"/>
				<xs:element name="Name" type="xs:string" minOccurs="0"/>
				<xs:element name="Description" type="xs:string" minOccurs="0"/>
				<xs:element name="Version" type="Version_Type" minOccurs="0"/>
				<xs:element name="DesignData" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="UUT" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="UUT_ID"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Description" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="UUT_Key">
									<xs:selector xpath="UUT_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="Design_Comments" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Parent_Item_ID" minOccurs="0"/>
										<xs:element name="Parent_Object_ID" minOccurs="0">
											<xs:annotation>
												<xs:documentation>for designs whose parent is a multi-object item</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Title" minOccurs="0"/>
										<xs:element name="Revision" minOccurs="0"/>
										<xs:element name="Status" minOccurs="0"/>
										<xs:element name="Contact" minOccurs="0"/>
										<xs:element name="Description" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Item_ID"/>
										<xs:element name="Item_Ext_ID" minOccurs="0"/>
										<xs:element name="Parent_ID" minOccurs="0"/>
										<xs:element name="Parent_Object_ID" minOccurs="0">
											<xs:annotation>
												<xs:documentation>for Items whose parent is a multi-object item</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Context" type="xs:string" minOccurs="0"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="MultiLine_Name" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Included when carriage returns have been removed from the Name field</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Description" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="Item_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Distribution" type="Distribution_Type" minOccurs="0"/>
										<xs:element name="FailureRate" type="xs:double"/>
										<xs:element name="RelativeFailProb" type="xs:double" minOccurs="0"/>
										<xs:element name="Port" type="PortType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Appearance" type="ObjectAppearanceType" minOccurs="0"/>
										<xs:element name="Object" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Object_ID"/>
													<xs:element name="Object_Ext_ID" minOccurs="0"/>
													<xs:element name="Name" minOccurs="0"/>
													<xs:element name="MultiLine_Name" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>Included when carriage returns have been removed from the Name field</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Description" minOccurs="0"/>
													<xs:element name="Object_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="Distribution" type="Distribution_Type" minOccurs="0"/>
													<xs:element name="Port" type="PortType" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="Appearance" type="ObjectAppearanceType" minOccurs="0"/>
													<xs:element name="Function_ID" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="FailureMode_ID" minOccurs="0" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="Item_Key">
									<xs:selector xpath="Item_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="IoObject" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="IoObject_ID"/>
										<xs:element name="IoObject_Ext_ID" minOccurs="0"/>
										<xs:element name="Parent_Item_ID" minOccurs="0"/>
										<xs:element name="Parent_Object_ID" minOccurs="0">
											<xs:annotation>
												<xs:documentation>for Items whose parent is a multi-object item</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Context" type="xs:string" minOccurs="0"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="MultiLine_Name" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Included when carriage returns have been removed from the Name field</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Description" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="Port" type="PortType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Appearance" type="ObjectAppearanceType" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="IoObject_Key">
									<xs:selector xpath="IoObject_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="AnnoObject" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="AnnoObject_ID"/>
										<xs:element name="AnnoObject_Ext_ID" minOccurs="0"/>
										<xs:element name="Parent_Item_ID" minOccurs="0"/>
										<xs:element name="Parent_Object_ID" minOccurs="0">
											<xs:annotation>
												<xs:documentation>for Items whose parent is a multi-object item</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="MultiLine_Name" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Included when carriage returns have been removed from the Name field</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="Appearance" minOccurs="0">
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="ObjectAppearanceType">
														<xs:attribute name="in_background" type="xs:boolean" use="optional" default="false"/>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Function" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Function_ID"/>
										<xs:element name="Function_Ext_ID" minOccurs="0"/>
										<xs:element name="Parent_ID" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Context" type="xs:string" minOccurs="0"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Item_ID" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="FailureMode_ID" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Function_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Distribution" type="Distribution_Type" minOccurs="0"/>
										<xs:element name="RelativeFailProb" type="xs:double" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:keyref name="FunctionFailureMode_KeyRef" refer="FailureMode_Key">
									<xs:selector xpath="Function/FailureMode_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
								<xs:key name="Function_Key">
									<xs:selector xpath="Function_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="FailureMode" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="FailureMode_ID"/>
										<xs:element name="FailureMode_Ext_ID" minOccurs="0"/>
										<xs:element name="Context" type="xs:string" minOccurs="0"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Item_ID" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="Rate">
											<xs:annotation>
												<xs:documentation>Adjusted pctg of failures to the related item that result from this failure mode</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="RawRate" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Defined pctg of failures to the related object that result from this failure mode</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Unit" type="xs:anySimpleType" default="percent"/>
										<xs:element name="FailureMode_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Distribution" type="Distribution_Type" minOccurs="0"/>
										<xs:element name="RelativeFailProb" type="xs:double" minOccurs="0"/>
										<xs:element name="EndItemSeverity" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Severity_Label" type="xs:string" minOccurs="0"/>
													<xs:element name="Severity_Value"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="FailureMode_Key">
									<xs:selector xpath="FailureMode_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="Net" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Net_ID"/>
										<xs:element name="Net_Ext_ID" minOccurs="0"/>
										<xs:element name="Parent_Item_ID" minOccurs="0"/>
										<xs:element name="Parent_Object_ID" minOccurs="0">
											<xs:annotation>
												<xs:documentation>for Items whose parent is a multi-object item</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Appearance" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="SegmentWidth" type="xs:long"/>
													<xs:element name="BorderWidth" type="xs:long"/>
													<xs:element name="ArrowStyle">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:enumeration value="No Arrows"/>
																<xs:enumeration value="Filled Arrows"/>
																<xs:enumeration value="Hollow Arrows"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="JunctionStyle">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:enumeration value="No Junctions"/>
																<xs:enumeration value="Circle Junctions"/>
																<xs:enumeration value="Diamond Junctions"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Color" type="xs:string"/>
													<xs:element name="Segment" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Point_1">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Point_2">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Junction" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Point_1">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Point_2">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Visible" type="xs:boolean" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Arrow" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Point_1">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Point_2">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Type">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:enumeration value="None"/>
																			<xs:enumeration value="Left"/>
																			<xs:enumeration value="Up"/>
																			<xs:enumeration value="Right"/>
																			<xs:enumeration value="Down"/>
																			<xs:enumeration value="UpDown"/>
																			<xs:enumeration value="LeftRight"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Label" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="LabelText" type="xs:string"/>
																<xs:element name="Point_1">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Point_2">
																	<xs:complexType>
																		<xs:attribute name="X" type="xs:long" use="required"/>
																		<xs:attribute name="Y" type="xs:long" use="required"/>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Justification" minOccurs="0">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:enumeration value="Center"/>
																			<xs:enumeration value="Left"/>
																			<xs:enumeration value="Right"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Symbol" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Symbol_ID"/>
										<xs:element name="Symbol_Ext_ID" minOccurs="0"/>
										<xs:element name="View" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>View(s) associated with this symbol</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="ViewName" type="xs:string">
														<xs:annotation>
															<xs:documentation>Brief label used to identify this view of the symbol</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Label" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>Text annontation(s) that appear as part of this view of the symbol</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="LabelText" type="xs:string"/>
																<xs:element name="FontType" minOccurs="0">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:enumeration value="Helvetica"/>
																			<xs:enumeration value="TimesRoman"/>
																			<xs:enumeration value="Courier"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
																<xs:element name="TextSize" type="xs:long" minOccurs="0"/>
																<xs:element name="TextStyle" type="xs:string" minOccurs="0"/>
																<xs:element name="Justification" minOccurs="0">
																	<xs:simpleType>
																		<xs:restriction base="xs:string">
																			<xs:enumeration value="Left"/>
																			<xs:enumeration value="Right"/>
																			<xs:enumeration value="Center"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
																<xs:element name="X_Anchor" type="xs:long" minOccurs="0"/>
																<xs:element name="Y_Anchor" type="xs:long" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Vector" maxOccurs="unbounded">
														<xs:complexType>
															<xs:choice>
																<xs:element name="Shape">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="ShapeType" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:string">
																						<xs:enumeration value="Line"/>
																						<xs:enumeration value="Frame"/>
																						<xs:enumeration value="Oval"/>
																						<xs:enumeration value="Arc"/>
																						<xs:enumeration value="Polygon"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																			<xs:element name="Fill_Type" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:string">
																						<xs:enumeration value="None"/>
																						<xs:enumeration value="FG"/>
																						<xs:enumeration value="BG"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																			<xs:element name="Outline_Type" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:string">
																						<xs:enumeration value="None"/>
																						<xs:enumeration value="FG"/>
																						<xs:enumeration value="BG"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																			<xs:element name="Coordinates" maxOccurs="unbounded">
																				<xs:complexType>
																					<xs:attribute name="X" type="xs:long" use="required"/>
																					<xs:attribute name="Y" type="xs:long" use="required"/>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Image">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="ImageType">
																				<xs:simpleType>
																					<xs:restriction base="xs:string">
																						<xs:enumeration value="EMF"/>
																						<xs:enumeration value="WMF"/>
																						<xs:enumeration value="JPG"/>
																						<xs:enumeration value="GIF"/>
																						<xs:enumeration value="PNG"/>
																						<xs:enumeration value="BMP"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																			<xs:choice>
																				<xs:element name="Filename" type="xs:string"/>
																				<xs:sequence>
																					<xs:element name="ImageSize" type="xs:long"/>
																					<xs:element name="ImageData_B64" type="xs:anyType"/>
																				</xs:sequence>
																			</xs:choice>
																			<xs:sequence minOccurs="0">
																				<xs:element name="TL_Coordinate">
																					<xs:complexType>
																						<xs:attribute name="X" type="xs:long" use="required"/>
																						<xs:attribute name="Y" type="xs:long" use="required"/>
																					</xs:complexType>
																				</xs:element>
																				<xs:element name="BR_Coordinate">
																					<xs:complexType>
																						<xs:attribute name="X" type="xs:long" use="required"/>
																						<xs:attribute name="Y" type="xs:long" use="required"/>
																					</xs:complexType>
																				</xs:element>
																			</xs:sequence>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
															</xs:choice>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="ID" type="xs:long" use="optional"/>
												<xs:attribute name="Ext_ID" type="xs:long" use="optional"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="AttributeDefinition" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Attribute_ID"/>
										<xs:element name="Name" minOccurs="0"/>
										<xs:element name="Description" minOccurs="0"/>
										<xs:element name="EntityType" maxOccurs="unbounded">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Item"/>
													<xs:enumeration value="Function"/>
													<xs:enumeration value="FailureMode"/>
													<xs:enumeration value="TestProcedure"/>
													<xs:enumeration value="Test"/>
													<xs:enumeration value="TestGroup"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="DocumentView" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="DocumentView_ID"/>
										<xs:element name="ViewType" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:Name">
													<xs:enumeration value="SVG"/>
													<xs:enumeration value="Bitmap"/>
													<xs:enumeration value="Other"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="ViewData" type="xs:hexBinary" minOccurs="0"/>
										<xs:element name="Application" type="xs:string" minOccurs="0"/>
										<xs:element name="DocumentName" type="xs:string" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="DocumentView_Key">
									<xs:selector xpath="DocumentView_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="AggregateFailRate" type="xs:double" minOccurs="0">
								<xs:annotation>
									<xs:documentation>AFR based only on elements within specified model scope. (Note: this should be omitted when multiple diagnostic procedures are based on different scopes.)</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="AggregateFailRate_Full" type="xs:double" minOccurs="0">
								<xs:annotation>
									<xs:documentation>When at least one diagnostic procedure is constrained to a scope, then this contains the full (unconstrained) AFR</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="MaintenanceData" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="MaintenanceProcedure" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="MaintenanceProcedure_ID"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Description" type="xs:string" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="MaintenanceAction" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Type" minOccurs="0">
														<xs:simpleType>
															<xs:restriction base="xs:Name">
																<xs:enumeration value="adjust"/>
																<xs:enumeration value="replace"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="DesignItem" minOccurs="0"/>
													<xs:element name="IsolatedFailProb" type="xs:string" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="DesignItem_KeyRef" refer="Item_Key">
												<xs:selector xpath="MaintenanceAction\DesignItem"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="MaintenanceProcedure_Key">
									<xs:selector xpath="MaintenanceProcedure_ID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="TestData" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="TestProcedure" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="TestProcedure_ID"/>
										<xs:element name="TestProcedure_Ext_ID" minOccurs="0"/>
										<xs:element name="Context" type="xs:string" minOccurs="0"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Description" type="xs:string" minOccurs="0"/>
										<xs:element name="Type" type="xs:string" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="ExecutionEnvironment" minOccurs="0"/>
										<xs:element name="Locator" minOccurs="0"/>
										<xs:element name="Outcome" type="Outcome_Type" minOccurs="0" maxOccurs="unbounded">
											<xs:key name="TestProcedureOutcome_Key">
												<xs:selector xpath="TestProcedure"/>
												<xs:field xpath="./Outcome_ID"/>
											</xs:key>
										</xs:element>
										<xs:element name="Parameter" type="Parameter_Type" minOccurs="0" maxOccurs="unbounded">
											<xs:key name="Parameter_Key">
												<xs:selector xpath="TestProcedure"/>
												<xs:field xpath="./Parameter_ID"/>
											</xs:key>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="TestProcedure_Key">
									<xs:selector xpath="TestProcedureID"/>
									<xs:field xpath="."/>
								</xs:key>
							</xs:element>
							<xs:element name="Test" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Test_ID"/>
										<xs:element name="TestProcedure_ID" minOccurs="0"/>
										<xs:element name="Attribute" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Location" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="IoObject_ID"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="IoObject_KeyRef" refer="IoObject_Key">
												<xs:selector xpath="Location\IoObject_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Coverage" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="TestProcedureOutcome_ID" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="Interpretation" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Type">
																	<xs:simpleType>
																		<xs:restriction base="xs:Name">
																			<xs:enumeration value="Pass"/>
																			<xs:enumeration value="Fail"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="TestFunction_ID" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="TestFailureMode_ID" minOccurs="0" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="TestProcedureOutcome_KeyRef" refer="TestProcedureOutcome_Key">
												<xs:selector xpath="Coverage/TestProcedureOutcome_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
											<xs:keyref name="TestFunction_KeyRef" refer="Function_Key">
												<xs:selector xpath="Function_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
											<xs:keyref name="TestFailureMode_KeyRef" refer="FailureMode_Key">
												<xs:selector xpath="FailureMode_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Test_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="TestGroup_ID" minOccurs="0"/>
										<xs:element name="Appearance" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Displayed_Location" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:choice>
																<xs:element name="IoObject_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a Test Point</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Item_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a covered item, rather than a test point (Inspection tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Object_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location consists of part, but not all of a multi-object item (Inspection tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Net_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a net (Probe tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:choice>
														</xs:complexType>
													</xs:element>
													<xs:element name="Displayed_Input" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:choice>
																<xs:element name="IoObject_ID">
																	<xs:annotation>
																		<xs:documentation>When a stimulus is applied at a particular IoObject for the given test</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:choice>
														</xs:complexType>
													</xs:element>
													<xs:element name="Related_Net" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>List of nets to be displayed or highlighted for the test</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Net_ID" type="xs:string"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Object_View" type="Object_ViewType" minOccurs="0" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Prognosis" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Exists when Tests are used to represents prognostic measurements</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="HorizonTerm" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Horizon"/>
																<xs:element name="Confidence" minOccurs="0"/>
																<xs:element name="Correctness" minOccurs="0"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
								<xs:key name="Test_Key">
									<xs:selector xpath="Test_ID"/>
									<xs:field xpath="."/>
								</xs:key>
								<xs:keyref name="TestProcedure_KeyRef" refer="TestProcedure_Key">
									<xs:selector xpath="Test/TestProcedure_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
							</xs:element>
							<xs:element name="Prognosis" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Exist when prognositic measurements are to be listed separately from the Test elements</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Test_ID"/>
										<xs:element name="TestProcedure_ID" minOccurs="0"/>
										<xs:element name="Attribute" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Location" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="IoObject_ID"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="IoObject_KeyRef2" refer="IoObject_Key">
												<xs:selector xpath="Location\IoObject_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Coverage" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="TestProcedureOutcome_ID" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="Interpretation" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Type">
																	<xs:simpleType>
																		<xs:restriction base="xs:Name">
																			<xs:enumeration value="Pass"/>
																			<xs:enumeration value="Fail"/>
																		</xs:restriction>
																	</xs:simpleType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="TestFunction_ID" minOccurs="0" maxOccurs="unbounded"/>
													<xs:element name="TestFailureMode_ID" minOccurs="0" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="TestProcedureOutcome_KeyRef2" refer="TestProcedureOutcome_Key">
												<xs:selector xpath="Coverage/TestProcedureOutcome_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
											<xs:keyref name="TestFunction_KeyRef2" refer="Function_Key">
												<xs:selector xpath="Function_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
											<xs:keyref name="TestFailureMode_KeyRef2" refer="FailureMode_Key">
												<xs:selector xpath="FailureMode_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Test_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="TestGroup_ID" minOccurs="0"/>
										<xs:element name="Appearance" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Displayed_Location" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:choice>
																<xs:element name="IoObject_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a Test Point</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Item_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a covered item, rather than a test point (Inspection tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Object_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location consists of part, but not all of a multi-object item (Inspection tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Net_ID">
																	<xs:annotation>
																		<xs:documentation>When the displayed test location is a net (Probe tests only)</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:choice>
														</xs:complexType>
													</xs:element>
													<xs:element name="Displayed_Input" minOccurs="0" maxOccurs="unbounded">
														<xs:complexType>
															<xs:choice>
																<xs:element name="IoObject_ID">
																	<xs:annotation>
																		<xs:documentation>When a stimulus is applied at a particular IoObject for the given test</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:choice>
														</xs:complexType>
													</xs:element>
													<xs:element name="Related_Net" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>List of nets to be displayed or highlighted for the test</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Net_ID" type="xs:string"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Object_View" type="Object_ViewType" minOccurs="0" maxOccurs="unbounded"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="HorizonTerm" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Horizon"/>
													<xs:element name="Confidence" minOccurs="0"/>
													<xs:element name="Correctness" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Interpretations" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Interpretation" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Interpretation_ID"/>
													<xs:element name="DiagnosticAction">
														<xs:complexType>
															<xs:choice>
																<xs:element name="ReduceSuspectSet">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="Modifier">
																				<xs:simpleType>
																					<xs:restriction base="xs:string">
																						<xs:enumeration value="Remove"/>
																						<xs:enumeration value="RemoveAllExcept"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																			<xs:element name="CoverageInterpretationType"/>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
																<xs:element name="ReplaceSuspectSet"/>
																<xs:element name="AdjustProbabilites"/>
																<xs:element name="DoNothing"/>
															</xs:choice>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="TestGroup" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="TestGroup_ID"/>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Parent_TestGroup_ID" minOccurs="0"/>
										<xs:element name="TestGroup_Attribute" type="AttributeType" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="Prerequisites" type="PrerequisiteType" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="DiagnosticData" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="DiagnosticStrategy" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
										<xs:element name="Description" type="xs:string" minOccurs="0"/>
										<xs:element name="Version" type="Version_Type" minOccurs="0"/>
										<xs:element name="StartDiagnosticProcedure_ID"/>
										<xs:element name="DiagnosticProcedure" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="DiagnosticProcedure_ID"/>
													<xs:element name="Type">
														<xs:simpleType>
															<xs:restriction base="xs:Name">
																<xs:enumeration value="FaultTree"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Name" type="xs:string" minOccurs="0"/>
													<xs:element name="Description" type="xs:string" minOccurs="0"/>
													<xs:element name="Version" type="Version_Type" minOccurs="0"/>
													<xs:element name="Detection_Approach" minOccurs="0">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:enumeration value="Sequence"/>
																<xs:enumeration value="Independent"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="StartDiagnosticStep_ID"/>
													<xs:element name="DiagnosticStep" type="DiagnosticStep_Type" maxOccurs="unbounded"/>
													<xs:element name="Outcome" type="Outcome_Type" minOccurs="0" maxOccurs="unbounded">
														<xs:key name="DiagnosticProcedureOutcome_Key">
															<xs:selector xpath="Outcome_ID"/>
															<xs:field xpath="."/>
														</xs:key>
													</xs:element>
													<xs:element name="Parameter" type="Parameter_Type" minOccurs="0" maxOccurs="unbounded">
														<xs:key name="DiagnosticProcedure-Parameter_Key">
															<xs:selector xpath="Parameter_ID"/>
															<xs:field xpath="."/>
														</xs:key>
													</xs:element>
													<xs:element name="Repair_Items" minOccurs="0">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Repair_Item_ID" minOccurs="0" maxOccurs="unbounded"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Scope" minOccurs="0">
														<xs:annotation>
															<xs:documentation>When missing, the scope is assumed to be the entire design</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Name"/>
																<xs:element name="AggregateFailRate_InScope" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>When multiple diagnostic procedures are constrained to different scopes, then this contains the AFR for the given procedure.</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="ExcludedObject" minOccurs="0" maxOccurs="unbounded">
																	<xs:annotation>
																		<xs:documentation>Object(s) that are excluded from the scope of the diagnostic procedure, yet included in the Design Data</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:attribute name="Item_ID" type="xs:string" use="required"/>
																		<xs:attribute name="Object_ID" type="xs:string" use="optional"/>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Diagnostic_Statistics" minOccurs="0">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Statistic" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:attribute name="label" type="xs:string" use="required"/>
																		<xs:attribute name="value" type="xs:string" use="required"/>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="StartDiagnosticStep_KeyRef" refer="DiagnosticStep_Key">
												<xs:selector xpath="StartDiagnosticStep_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
											<xs:key name="DiagnosticStep_Key">
												<xs:selector xpath="DiagnosticStep"/>
												<xs:field xpath="DiagnosticStep_ID"/>
											</xs:key>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="DiagnosticReasoner" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType/>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
					<xs:key name="DiagnosticStrategy_Key">
						<xs:selector xpath="DiagnosticStragegy"/>
						<xs:field xpath="."/>
					</xs:key>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Version_Type">
		<xs:annotation>
			<xs:documentation>DiagML Versioning Information</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Date" type="xs:date" minOccurs="0"/>
			<xs:element name="Revision" type="xs:float" minOccurs="0"/>
			<xs:element name="Implementer" type="xs:string" minOccurs="0"/>
			<xs:element name="Tool" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="Name" type="xs:string" use="required"/>
							<xs:attribute name="Version" type="xs:string" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Purpose" type="xs:string" minOccurs="0"/>
			<xs:element name="History" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DiagML_PrimitiveValue">
		<xs:annotation>
			<xs:documentation>DiagML Primitive Data Types</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:element name="URI" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:anyURI" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="base64Binary" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:base64Binary" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="elapsedTime" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:time" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="dateTime" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:dateTime" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="file" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Name" type="xs:string"/>
						<xs:element name="Encoding"/>
						<xs:element name="CRLF"/>
						<xs:element name="Type"/>
						<xs:element name="Extension"/>
						<xs:element name="ForApplication"/>
						<xs:element name="Size"/>
						<xs:element name="Data" type="xs:hexBinary"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="byte" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:byte" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="unsignedByte" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:unsignedByte" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="short" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:short" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="unsignedShort" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:unsignedShort" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="int" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:int" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="unsignedInt" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:unsignedInt" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="long" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:long" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="unsignedLong" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:unsignedLong" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="float" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:float" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="double" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:double" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="string" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="val" type="xs:string" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="array" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="dimensions" maxOccurs="unbounded"/>
						<xs:element name="elements">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="value" maxOccurs="unbounded"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="group" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="value" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="Value_Type">
		<xs:sequence>
			<xs:element name="PrimitiveValue" type="DiagML_PrimitiveValue" minOccurs="0"/>
			<xs:element name="CustomValue" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ProgID" type="xs:string" minOccurs="0"/>
						<xs:element name="SerialData" type="xs:hexBinary" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Message_Type">
		<xs:sequence>
			<xs:element name="Type" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:Name">
						<xs:enumeration value="UserInterface"/>
						<xs:enumeration value="Log"/>
						<xs:enumeration value="SOAP"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Content" type="xs:string" minOccurs="0"/>
			<xs:element name="Destination" type="xs:string" minOccurs="0"/>
			<xs:element name="WaitForResponse" type="xs:boolean" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Parameter_Type">
		<xs:sequence>
			<xs:element name="Parameter_ID"/>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Unit" minOccurs="0"/>
			<xs:element name="DefaultValue" type="Value_Type"/>
			<xs:element name="Usage" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:Name">
						<xs:enumeration value="In"/>
						<xs:enumeration value="Out"/>
						<xs:enumeration value="In_Out"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Outcome_Type">
		<xs:sequence>
			<xs:element name="Outcome_ID"/>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Value" type="Value_Type" minOccurs="0"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Interpretation_ID" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DiagnosticStep_Type">
		<xs:sequence>
			<xs:element name="DiagnosticStep_ID"/>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Description" minOccurs="0"/>
			<xs:choice>
				<xs:element name="TestExecution">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Message" type="Message_Type" minOccurs="0" maxOccurs="unbounded"/>
							<xs:element name="Test_ID"/>
							<xs:element name="Purpose" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:Name">
										<xs:enumeration value="Detection"/>
										<xs:enumeration value="Isolation"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ParameterValue" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="TestProcedureParameter_ID"/>
										<xs:element name="Value" type="Value_Type"/>
									</xs:sequence>
								</xs:complexType>
								<xs:keyref name="TestProcedureParameter_KeyRef" refer="Parameter_Key">
									<xs:selector xpath="ParameterValue\TestProcedureParameter_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
							</xs:element>
							<xs:element name="NextStep" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="TestProcedureOutcome_ID" minOccurs="0"/>
										<xs:element name="SuspectedItem" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="DesignItem_ID"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="SuspectedItem-DesignItem_KeyRef" refer="Item_Key">
												<xs:selector xpath="DesignItem_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Message" type="Message_Type" minOccurs="0" maxOccurs="unbounded"/>
										<xs:element name="DiagnosticStep_ID" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:keyref name="TestExecutionTestProcedureOutcome_KeyRef" refer="TestProcedureOutcome_Key">
									<xs:selector xpath="NextStep\TestProcedureOutcome_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
								<xs:keyref name="TestExecutionDiagnosticStep_KeyRef" refer="DiagnosticStep_Key">
									<xs:selector xpath="DiagnosticStep_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
					<xs:keyref name="TestExecution-Test_Keyref" refer="Test_Key">
						<xs:selector xpath="TestExecution\Test_ID"/>
						<xs:field xpath="."/>
					</xs:keyref>
				</xs:element>
				<xs:element name="DiagnosticProcedureExecution">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Message" type="Message_Type" minOccurs="0" maxOccurs="unbounded"/>
							<xs:element name="DiagnosticProcedure_ID" minOccurs="0"/>
							<xs:element name="ParameterValue" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="DiagnosticProcedureParameter_ID"/>
										<xs:element name="Value" type="Value_Type" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:keyref name="DiagnosticProcedureParameter_KeyRef" refer="Parameter_Key">
									<xs:selector xpath="DiagnosticProcedureParameter_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
							</xs:element>
							<xs:element name="NextStep" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="DiagnosticProcedureOutcome_ID" minOccurs="0"/>
										<xs:element name="SuspectedItem" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="DiagnosticInference">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="InferenceItem" minOccurs="0" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="InferenceItem_ID" minOccurs="0"/>
																			<xs:element name="InferenceStatus" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:Name">
																						<xs:enumeration value="Good"/>
																						<xs:enumeration value="Proven"/>
																						<xs:enumeration value="Suspected"/>
																						<xs:enumeration value="Failed"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																	<xs:keyref name="InferenceItem_KeyRef" refer="Item_Key">
																		<xs:selector xpath="InferenceItem_ID"/>
																		<xs:field xpath="."/>
																	</xs:keyref>
																</xs:element>
																<xs:element name="InferenceFunction" minOccurs="0" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="InferenceFunction_ID" minOccurs="0"/>
																			<xs:element name="InferenceStatus" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:Name">
																						<xs:enumeration value="Good"/>
																						<xs:enumeration value="Proven"/>
																						<xs:enumeration value="Suspected"/>
																						<xs:enumeration value="Failed"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																	<xs:keyref name="InferenceFunction_KeyRef" refer="Function_Key">
																		<xs:selector xpath="InferenceFunction_ID"/>
																		<xs:field xpath="."/>
																	</xs:keyref>
																</xs:element>
																<xs:element name="InferenceFailureMode" minOccurs="0" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="InferenceFailureMode_ID" minOccurs="0"/>
																			<xs:element name="InferenceStatus" minOccurs="0">
																				<xs:simpleType>
																					<xs:restriction base="xs:Name">
																						<xs:enumeration value="Good"/>
																						<xs:enumeration value="Proven"/>
																						<xs:enumeration value="Suspected"/>
																						<xs:enumeration value="Failed"/>
																					</xs:restriction>
																				</xs:simpleType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																	<xs:keyref name="InferenceFailureMode_KeyRef" refer="FailureMode_Key">
																		<xs:selector xpath="InferenceFailureMode_ID"/>
																		<xs:field xpath="."/>
																	</xs:keyref>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="DesignItem_ID"/>
												</xs:sequence>
											</xs:complexType>
											<xs:keyref name="SuspectedItemDesignItem_KeyRef" refer="Item_Key">
												<xs:selector xpath="DesignItem_ID"/>
												<xs:field xpath="."/>
											</xs:keyref>
										</xs:element>
										<xs:element name="Message" type="Message_Type" minOccurs="0"/>
										<xs:element name="DiagnosticStep_ID" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
								<xs:keyref name="DiagnosticProcedureOutcome_KeyRef" refer="DiagnosticProcedureOutcome_Key">
									<xs:selector xpath="DiagnosticProcedureOutcome_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
								<xs:keyref name="NextStepDiagnosticStep_KeyRef" refer="DiagnosticStep_Key">
									<xs:selector xpath="DiagnosticStep_ID"/>
									<xs:field xpath="."/>
								</xs:keyref>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
					<xs:keyref name="DiagnosticProcedure_KeyRef" refer="DiagnosticProcedureOutcome_Key">
						<xs:selector xpath="DiagnosticProcedure_ID"/>
						<xs:field xpath="."/>
					</xs:keyref>
				</xs:element>
				<xs:element name="MaintenanceProcedureExecution">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Message" type="Message_Type" minOccurs="0" maxOccurs="unbounded"/>
							<xs:element name="MaintenanceProcedure_ID" minOccurs="0"/>
							<xs:element name="DiagnosticStep_ID"/>
							<xs:element name="RootFunction_ID" minOccurs="0" maxOccurs="unbounded"/>
							<xs:element name="RootFailureMode_ID" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
					<xs:keyref name="MaintenanceProcedure_KeyRef" refer="MaintenanceProcedure_Key">
						<xs:selector xpath="MaintenanceProcedureExecution\MaintenanceProcedure_ID"/>
						<xs:field xpath="."/>
					</xs:keyref>
					<xs:keyref name="MaintenanceProcedureExecutionDiagnosticStep_KeyRef" refer="DiagnosticStep_Key">
						<xs:selector xpath="MaintenanceProcedureExecution\DiagnosticStep_ID"/>
						<xs:field xpath="."/>
					</xs:keyref>
				</xs:element>
				<xs:element name="End">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="DiagnosticProcedureOutcome_ID"/>
						</xs:sequence>
					</xs:complexType>
					<xs:keyref name="EndDiagnosticProcedureOutcome_KeyRef" refer="DiagnosticProcedureOutcome_Key">
						<xs:selector xpath="End/DiagnosticProcedureOutcome_ID"/>
						<xs:field xpath="."/>
					</xs:keyref>
				</xs:element>
			</xs:choice>
			<xs:element name="ItemStatusData" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="StatusMethod">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Cumulative"/>
									<xs:enumeration value="Delta"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="ItemStatus" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Item_ID"/>
									<xs:element name="Status">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:enumeration value="Unknown"/>
												<xs:enumeration value="Good"/>
												<xs:enumeration value="PartiallyGood"/>
												<xs:enumeration value="PrimarySuspect"/>
												<xs:enumeration value="SecondarySuspect"/>
												<xs:enumeration value="Isolated"/>
												<xs:enumeration value="IsolatedWithin"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AttributeType">
		<xs:sequence>
			<xs:element name="Attribute_ID"/>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Value" type="Value_Type"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PrerequisiteType">
		<xs:sequence>
			<xs:choice>
				<xs:element name="TestPrerequisite">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="TestGroup_ID"/>
							<xs:element name="Status">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="Passed"/>
										<xs:enumeration value="Failed"/>
										<xs:enumeration value="Performed"/>
										<xs:enumeration value="Not Performed"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Scope">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="All Tests"/>
										<xs:enumeration value="Any Test"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Condition">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="Always"/>
										<xs:enumeration value="Only If Candidate"/>
										<xs:enumeration value="Only If Diagnostically Meaningful"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="CoveragePrerequisite">
					<xs:complexType>
						<xs:sequence>
							<xs:choice>
								<xs:element name="Function_ID"/>
								<xs:element name="FailureMode_ID"/>
							</xs:choice>
							<xs:element name="Status">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="Proven Good"/>
										<xs:enumeration value="Under Suspicion"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="PrerequisiteGroup" type="PrerequisiteType"/>
			</xs:choice>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="Operator">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="AND"/>
							<xs:enumeration value="OR"/>
							<xs:enumeration value="NAND"/>
							<xs:enumeration value="NOR"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:choice>
					<xs:element name="TestPrerequisite">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="TestGroup_ID"/>
								<xs:element name="Status">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Passed"/>
											<xs:enumeration value="Failed"/>
											<xs:enumeration value="Performed"/>
											<xs:enumeration value="Not Performed"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="Scope">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="All Tests"/>
											<xs:enumeration value="Any Test"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="Condition">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Always"/>
											<xs:enumeration value="Only If Candidate"/>
											<xs:enumeration value="Only If Diagnostically Meaningful"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="CoveragePrerequisite">
						<xs:complexType>
							<xs:sequence>
								<xs:choice>
									<xs:element name="Function_ID"/>
									<xs:element name="FailureMode_ID"/>
								</xs:choice>
								<xs:element name="Status">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Proven Good"/>
											<xs:enumeration value="Under Suspicion"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="PrerequisiteGroup" type="PrerequisiteType"/>
				</xs:choice>
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Distribution_Type">
		<xs:sequence>
			<xs:element name="Name" minOccurs="0"/>
			<xs:element name="DistributionCurve" maxOccurs="unbounded">
				<xs:complexType>
					<xs:choice>
						<xs:element name="Normal">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="LocationParam" minOccurs="0">
										<xs:annotation>
											<xs:documentation>Typically omitted, since location can be derived from failure rates/probabilities.</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="ScaleParam"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="StdNormal">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Mean" minOccurs="0">
										<xs:annotation>
											<xs:documentation>Typically omitted, since mean can be derived from failure rates/probabilities.</xs:documentation>
										</xs:annotation>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Lognormal">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Mean" minOccurs="0">
										<xs:annotation>
											<xs:documentation>When omitted, the distribution mean will be derived from failure rates/probabilities.</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="Deviation"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Exponential">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="RateParam" minOccurs="0"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Weibull">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="ShapeParam"/>
									<xs:element name="ScaleParam" minOccurs="0"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Beta">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="ShapeParamAlpha"/>
									<xs:element name="ShapeParamBeta"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectAppearanceType">
		<xs:sequence>
			<xs:element name="Symbol" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Fields describing the object's symbol, color, size and orientation when displayed in a graphical application</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Symbol_ID" minOccurs="0"/>
						<xs:element name="DefaultView" minOccurs="0"/>
						<xs:element name="Color" type="xs:string" minOccurs="0"/>
						<xs:element name="Height" type="xs:long" minOccurs="0"/>
						<xs:element name="Width" type="xs:long" minOccurs="0"/>
						<xs:element name="FlipHorizontal" type="xs:boolean" minOccurs="0"/>
						<xs:element name="FlipVertical" type="xs:boolean" minOccurs="0"/>
						<xs:element name="Rotate" type="xs:float" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Placement" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Fields describing the object's placement when displayed in a graphical application</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="X_Position" type="xs:long" minOccurs="0"/>
						<xs:element name="Y_Position" type="xs:long" minOccurs="0"/>
						<xs:element name="Order" type="xs:long" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="TextFormat" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Fields describing the formatting and placement of object text when displayed in a graphical application</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="FontType" type="xs:string" minOccurs="0"/>
						<xs:element name="FontSize" type="xs:long" minOccurs="0"/>
						<xs:element name="TextColor" type="xs:string" minOccurs="0"/>
						<xs:element name="TextStyle" type="xs:string" minOccurs="0"/>
						<xs:element name="Justification" minOccurs="0">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Left"/>
									<xs:enumeration value="Right"/>
									<xs:enumeration value="Center"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="X_Anchor" type="xs:long" minOccurs="0"/>
						<xs:element name="Y_Anchor" type="xs:long" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PortType">
		<xs:sequence>
			<xs:element name="Port_ID"/>
			<xs:element name="Port_Ext_ID" minOccurs="0"/>
			<xs:element name="Net_ID"/>
			<xs:element name="Type">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Input"/>
						<xs:enumeration value="Output"/>
						<xs:enumeration value="Bidirectional"/>
						<xs:enumeration value="Control"/>
						<xs:enumeration value="Unused"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Appearance" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Color" type="xs:string" minOccurs="0"/>
						<xs:element name="Shape" minOccurs="0">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="circle"/>
									<xs:enumeration value="square"/>
									<xs:enumeration value="unused_x"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Position" minOccurs="0">
							<xs:annotation>
								<xs:documentation>(0,0) = top left corner; (10000,10000) = bottom right corner of object</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:attribute name="X" type="xs:long" use="required"/>
								<xs:attribute name="Y" type="xs:long" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="Text_Visible" type="xs:boolean" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Function_ID" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Object_ViewType">
		<xs:sequence>
			<xs:element name="Item_ID"/>
			<xs:element name="Object_ID" minOccurs="0">
				<xs:annotation>
					<xs:documentation>When the object is part of a multi-object item</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ViewName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The name of the corresponding view from the object's sysmbol definition</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

