<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by ﻿Mukund Modi (Naval Air Engineering Center) -->
<xs:schema targetNamespace="http://www.ieee.org/ATML/2006/01/MAIDraft051706" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hc="http://www.ieee.org/ATML/2006/HardwareCommon" xmlns:c="http://www.ieee.org/ATML/2006/Common" xmlns="http://www.ieee.org/ATML/2006/01/MAIDraft051706">
	<xs:import namespace="http://www.ieee.org/ATML/2006/Common" schemaLocation="Common.xsd"/>
	<xs:import namespace="http://www.ieee.org/ATML/2006/HardwareCommon" schemaLocation="HardwareCommon.xsd"/>
	<xs:element name="MAI">
		<xs:annotation>
			<xs:documentation>This is the root element of the information required by management when a system requires maintenance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice>
				<xs:annotation>
					<xs:documentation>Choice allows for two different maintenance scenarios.  If General Maintenance is selected, no anomaly should occur.  If their is an anomaly, then an action must be taken.</xs:documentation>
				</xs:annotation>
				<xs:element name="GeneralMaintenence" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Scheduled or unscheduled maintenance not related to an operational anomaly.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="GeneralMaint" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="WherePerformed" type="MaintenanceLocationType"/>
										<xs:element name="Personnel" type="PersonnelType" maxOccurs="unbounded"/>
										<xs:element name="Comments" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Comment" type="Comment" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>These commnets include technician actions and observations that would be required for historical information.  The status of the action should also be mentioned.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="generalMaintenanceCode" type="c:NonBlankString" use="optional"/>
									<xs:attribute name="descripition" type="xs:string" use="required"/>
									<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
									<xs:attribute name="duration" type="xs:duration" use="required"/>
									<xs:attribute name="serviceNumber" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="actionCode" type="xs:string" use="optional"/>
						<xs:attribute name="actionDescription" type="xs:string" use="optional"/>
						<xs:attribute name="actionItemIdentifier" type="xs:string" use="optional"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="Anomaly" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>A description of the perceived failure.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="AnomalyType" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Description of the anomaly that either came from the system or the operator.  Multiple anomalies can occur for a single action.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:choice>
										<xs:element name="SystemGenerated" type="c:NonBlankString">
											<xs:annotation>
												<xs:documentation>System generated anomaly received from a bit error or  the Data Transfer Module (DTM).</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="OperatorGenerated" type="c:NonBlankString">
											<xs:annotation>
												<xs:documentation>Operator generated anomaly sent to maintenance control by the operator or maintenance crew.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:choice>
								</xs:complexType>
							</xs:element>
							<xs:element name="ResultingAction" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Action(s) taken as a result of the discovered failure(s).</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:choice>
											<xs:element name="Repairs">
												<xs:annotation>
													<xs:documentation>Work required to restore the unit in an operational state. </xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="Repair" maxOccurs="unbounded">
															<xs:annotation>
																<xs:documentation>Authorized/approved repair effort for given UUT initiated. </xs:documentation>
															</xs:annotation>
															<xs:complexType>
																<xs:complexContent>
																	<xs:extension base="RepairCycle">
																		<xs:sequence>
																			<xs:element name="WherePerformed" type="MaintenanceLocationType"/>
																			<xs:element name="Personnel" type="PersonnelType" maxOccurs="unbounded"/>
																			<xs:element name="Comments" minOccurs="0">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="Comment" type="Comment" maxOccurs="unbounded">
																							<xs:annotation>
																								<xs:documentation>These commnets include technician actions and observations that would be required for historical information.  The status of the action should also be mentioned.</xs:documentation>
																							</xs:annotation>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="MalfunctionReason">
																				<xs:annotation>
																					<xs:documentation>Reason(s) for failure is determined during repair of items exhibiting trouble symptoms.   </xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:attribute name="MalfunctionReasonCode" type="c:NonBlankString" use="optional"/>
																					<xs:attribute name="Description" type="xs:string" use="optional"/>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																		<xs:attribute name="approvalauthority" type="xs:string" use="optional"/>
																		<xs:attribute name="serviceItemIdentifier" type="xs:string" use="optional"/>
																	</xs:extension>
																</xs:complexContent>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
											<xs:element name="Removes">
												<xs:annotation>
													<xs:documentation>The removal of a component required to initiate a repair. </xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="RemovedItem" maxOccurs="unbounded">
															<xs:complexType>
																<xs:complexContent>
																	<xs:extension base="c:ItemInstance">
																		<xs:sequence>
																			<xs:element name="Personnel" type="PersonnelType" maxOccurs="unbounded"/>
																			<xs:element name="Warranty" maxOccurs="3">
																				<xs:annotation>
																					<xs:documentation>Manufacturer support program.</xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:attribute name="warrrantyEffectiveDate" type="xs:date" use="optional"/>
																					<xs:attribute name="warrantyDuration" type="xs:duration" use="optional"/>
																					<xs:attribute name="warrantedBy" type="xs:string" use="optional"/>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="WherePerformed" type="MaintenanceLocationType">
																				<xs:annotation>
																					<xs:documentation>Repair facility/capability documented.</xs:documentation>
																				</xs:annotation>
																			</xs:element>
																			<xs:element name="Comments" minOccurs="0">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="Comment" type="Comment" maxOccurs="unbounded">
																							<xs:annotation>
																								<xs:documentation>These commnets include technician actions and observations that would be required for historical information.  The status of the action should also be mentioned.</xs:documentation>
																							</xs:annotation>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="RemovedFrom" minOccurs="0">
																				<xs:complexType>
																					<xs:complexContent>
																						<xs:extension base="c:ItemInstance"/>
																					</xs:complexContent>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																		<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
																		<xs:attribute name="timeToComplete" type="xs:duration" use="required"/>
																		<xs:attribute name="serviceItemIdentifier" type="xs:string" use="required"/>
																	</xs:extension>
																</xs:complexContent>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
											<xs:element name="Installs">
												<xs:annotation>
													<xs:documentation>Installation of a component required to complete a repair.  </xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="InstalledItem" maxOccurs="unbounded">
															<xs:complexType>
																<xs:complexContent>
																	<xs:extension base="c:ItemInstance">
																		<xs:sequence>
																			<xs:element name="Personnel" type="PersonnelType" maxOccurs="unbounded"/>
																			<xs:element name="Warranty" maxOccurs="3">
																				<xs:annotation>
																					<xs:documentation>Manufacturer support program.</xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:attribute name="warrrantyEffectiveDate" type="xs:date" use="optional"/>
																					<xs:attribute name="warrantyDuration" type="xs:duration" use="optional"/>
																					<xs:attribute name="warrantedBy" type="xs:string" use="optional"/>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="WherePerformed" type="MaintenanceLocationType">
																				<xs:annotation>
																					<xs:documentation>Repair facility/capability documented.</xs:documentation>
																				</xs:annotation>
																			</xs:element>
																			<xs:element name="Comments" minOccurs="0">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="Comment" maxOccurs="unbounded">
																							<xs:annotation>
																								<xs:documentation>These commnets include technician actions and observations that would be required for historical information.  The status of the action should also be mentioned.</xs:documentation>
																							</xs:annotation>
																							<xs:complexType>
																								<xs:simpleContent>
																									<xs:extension base="xs:string">
																										<xs:attribute name="commentBy" type="xs:string" use="optional"/>
																										<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
																									</xs:extension>
																								</xs:simpleContent>
																							</xs:complexType>
																						</xs:element>
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																		<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
																		<xs:attribute name="timeToComplete" type="xs:duration" use="optional"/>
																		<xs:attribute name="serviceItemIdentifier" type="xs:string" use="required"/>
																	</xs:extension>
																</xs:complexContent>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
										</xs:choice>
										<xs:sequence>
											<xs:element name="Logistics">
												<xs:annotation>
													<xs:documentation>All necessary info (tech manuals, equipment data, personnel, training needs, etc) used during the maintenance action.</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="EquipmentData" type="c:ItemDescriptionReference">
															<xs:annotation>
																<xs:documentation>May be a pointer to a Test Configuration document, or some other equipment-specific documentation.</xs:documentation>
															</xs:annotation>
														</xs:element>
														<xs:element name="InventoryTransaction" type="c:Document">
															<xs:annotation>
																<xs:documentation>All relevant data required to support maintenance action   transaction.</xs:documentation>
															</xs:annotation>
														</xs:element>
														<xs:element name="TechnicalDocuments" minOccurs="0">
															<xs:annotation>
																<xs:documentation>Lists all the latest and approved tech manuals that support maintenance. </xs:documentation>
															</xs:annotation>
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="Document" type="c:Document" maxOccurs="unbounded"/>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
														<xs:element name="Comments" minOccurs="0">
															<xs:annotation>
																<xs:documentation>Comments that are relevant to the maintenance process.  Document unique maintenance action.  </xs:documentation>
															</xs:annotation>
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="Comment" type="Comment" maxOccurs="unbounded"/>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
											<xs:element name="MaintanceEvent">
												<xs:annotation>
													<xs:documentation>Summary of repair actions taken and part involved. </xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="FailedParts" minOccurs="0">
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="Part" type="c:ItemInstance" maxOccurs="unbounded"/>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
														<xs:element name="Reference" type="c:Document" minOccurs="0"/>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
											<xs:element name="MaintCauses">
												<xs:annotation>
													<xs:documentation>Cause encompasses a debriefing session or during system operation or during maintenance activity or inspection.</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="Cause" maxOccurs="unbounded">
															<xs:complexType>
																<xs:choice>
																	<xs:element name="MalfunctionItemRepair">
																		<xs:annotation>
																			<xs:documentation>Symptoms for removal:   Reason for removal group:  removal of malfunctionitems for repair.  Occurance duritng system operation</xs:documentation>
																		</xs:annotation>
																		<xs:complexType>
																			<xs:attribute name="malfunctionItemRepairCode" type="c:NonBlankString" use="optional"/>
																			<xs:attribute name="description" type="xs:string" use="required"/>
																		</xs:complexType>
																	</xs:element>
																	<xs:element name="NoFaultGroup">
																		<xs:annotation>
																			<xs:documentation>Conditional group: When a nondefective item is removed or when the malfunction is not the fault of the item in question.</xs:documentation>
																		</xs:annotation>
																		<xs:complexType>
																			<xs:attribute name="noFaultCode" type="c:NonBlankString" use="optional"/>
																		</xs:complexType>
																	</xs:element>
																	<xs:element name="OtherCause" type="xs:string" minOccurs="0"/>
																</xs:choice>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
													<xs:attribute name="timeDiscovered" type="xs:dateTime" use="required"/>
												</xs:complexType>
											</xs:element>
											<xs:element name="NonAction">
												<xs:annotation>
													<xs:documentation>The reason for not being able to perform the required maintenance on the unit.</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:attribute name="nonActionCode" type="c:NonBlankString" use="optional"/>
													<xs:attribute name="description" type="xs:string" use="optional"/>
												</xs:complexType>
											</xs:element>
											<xs:element name="AwaitngMaint">
												<xs:annotation>
													<xs:documentation>Reason for repair delay</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:attribute name="awaitingMaintCode" type="c:NonBlankString" use="optional"/>
													<xs:attribute name="description" type="xs:string" use="required"/>
													<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
													<xs:attribute name="duration" type="xs:duration" use="required"/>
												</xs:complexType>
											</xs:element>
										</xs:sequence>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="actionCode" type="xs:string" use="optional"/>
						<xs:attribute name="actionDescription" type="xs:string" use="optional"/>
						<xs:attribute name="actionItemIdentifier" type="xs:string" use="optional"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="ParentSystem">
					<xs:annotation>
						<xs:documentation>Identifies the failed Items parent system, subsystem, major component, subassembly or part of the end item.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="systemName" type="xs:string" use="required"/>
						<xs:attribute name="systemIdentifier" type="xs:string" use="required"/>
						<xs:attribute name="systemSerialNumber" type="xs:string" use="required"/>
					</xs:complexType>
				</xs:element>
			</xs:choice>
			<xs:attribute name="documentIdentifier" type="c:Uuid" use="required"/>
			<xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
			<xs:attribute name="organization" type="xs:string" use="optional"/>
			<xs:attribute name="workCenter" type="xs:string" use="optional"/>
			<xs:attribute name="supervisor" type="xs:string" use="optional"/>
			<xs:attribute name="reportIdentifier" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="JobControl">
		<xs:attribute name="jobIdentificationNumber" type="xs:string" use="required"/>
		<xs:attribute name="organization" type="xs:string" use="optional"/>
		<xs:attribute name="dateTimeStamp" type="xs:dateTime" use="required"/>
		<xs:attribute name="workCenter" type="xs:string" use="required"/>
		<xs:attribute name="supervisor" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="RepairCycle">
		<xs:attribute name="received" type="xs:dateTime" use="required"/>
		<xs:attribute name="completed" type="xs:dateTime" use="required"/>
		<xs:attribute name="timeInWork" type="xs:duration" use="optional"/>
		<xs:attribute name="partNumber" type="xs:string" use="optional"/>
		<xs:attribute name="serialNumber" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="MaintenanceLocationType">
		<xs:attribute name="repairFacilityCapability" type="xs:string" use="required"/>
		<xs:attribute name="locationIdentifier" type="xs:string" use="required"/>
		<xs:attribute name="locationName" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PersonnelType">
		<xs:attribute name="category" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="authorizer"/>
					<xs:enumeration value="inspector"/>
					<xs:enumeration value="performer"/>
					<xs:enumeration value="supervisor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="skillLevel" type="xs:string" use="required"/>
		<xs:attribute name="name" type="xs:string" use="optional"/>
		<xs:attribute name="hours" type="xs:duration" use="required"/>
		<xs:attribute name="toolBoxID" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="Comment">
		<xs:attribute name="commentBy" type="xs:string" use="required"/>
		<xs:attribute name="timeStamp" type="xs:dateTime" use="optional"/>
		<xs:attribute name="description" type="xs:string" use="required"/>
	</xs:complexType>
</xs:schema>

