<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.0.1 U (http://www.xmlspy.com) by Martin M E Roberts (private) -->
<xs:schema targetNamespace="http://www.btwholesale.com/schemas/TroubleTicket" xmlns="http://www.btwholesale.com/schemas/TroubleTicket" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.ossj.org/TroubleTicket" xmlns:co="http://www.ossj.org/Common" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.ossj.org/TroubleTicket" schemaLocation="XMLTroubleTicketSchema.xsd"/>
	<xs:import namespace="http://www.ossj.org/Common" schemaLocation="XMLCommonSchema.xsd"/>
	<xs:element name="createTroubleTicketByValueRequest">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="Request">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Value" type="TroubleTicketValue"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="createTroubleTicketByValueResponse">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="troubleTicketKey" type="TroubleTicketKey"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="createTroubleTicketByValueException" type="B2BException"/>
	<xs:element name="queryTroubleTicketsRequest">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="Request">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="co:IteratorRequest">
										<xs:sequence>
											<xs:element name="Query" type="co:QueryValue"/>
											<xs:element name="attNames" type="co:ArrayOfString" minOccurs="0" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="queryTroubleTicketsResponse">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="Response">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="co:IteratorResponse">
										<xs:sequence>
											<xs:element name="troubleTickets" type="ArrayOfTroubleTicketSummary" minOccurs="0"/>
										</xs:sequence>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="queryTroubleTicketsException" type="B2BException"/>
	<xs:element name="getTroubleTicketByKeyRequest">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="Request">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="key" type="TroubleTicketKey"/>
									<xs:element name="attrNames" type="co:ArrayOfString" nillable="true" minOccurs="0"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="getTroubleTicketByKeyResponse">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="B2BMessage">
					<xs:sequence>
						<xs:element name="TroubleTicketDetails" type="ArrayOfTroubleTicketDetails"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="getTroubleTicketByKeyException" type="B2BException"/>
	<xs:complexType name="Header">
		<xs:sequence>
			<xs:element name="RequestingParty" type="Party"/>
			<xs:element name="SupplierParty" type="Party"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="B2BMessage">
		<xs:sequence>
			<xs:element name="Header" type="Header" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="B2BException">
		<xs:complexContent>
			<xs:extension base="B2BMessage">
				<xs:sequence>
					<xs:element name="Exception" maxOccurs="unbounded">
						<xs:complexType>
							<xs:choice>
								<xs:element name="illegalArgumentException" type="co:IllegalArgumentException"/>
								<xs:element name="duplicateKeyException" type="co:DuplicateKeyException"/>
								<xs:element name="createException" type="co:CreateException"/>
								<xs:element name="remoteException" type="co:RemoteException"/>
							</xs:choice>
							<xs:attribute name="Number" type="xs:integer" use="required"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Contact">
		<xs:complexContent>
			<xs:restriction base="tt:PersonReach">
				<xs:sequence>
					<xs:element name="Identifier" type="Identifier" minOccurs="0"/>
					<xs:element name="ContactType" type="xs:string" minOccurs="0"/>
					<xs:element name="email" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="fax" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="Address" type="Address" nillable="true" minOccurs="0"/>
					<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="phone" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="responsible" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="sMSAddress" type="xs:string" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Party">
		<xs:complexContent>
			<xs:restriction base="tt:PersonReach">
				<xs:sequence>
					<xs:element name="Identifier" type="Identifier" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="PartyType" type="xs:string" minOccurs="0"/>
					<xs:element name="Address" type="Address" minOccurs="0"/>
					<xs:element name="Contact" type="Contact" minOccurs="0"/>
					<xs:element name="OtherContacts" type="ListOfContact" minOccurs="0"/>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Identifier">
		<xs:sequence>
			<xs:element name="Agency" type="xs:string" minOccurs="0"/>
			<xs:element name="Ident" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfIdentifier">
		<xs:sequence>
			<xs:element name="Identifier" type="Identifier" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfContact">
		<xs:sequence>
			<xs:element name="Contact" type="tt:PersonReach" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ArrayOfString">
		<xs:complexContent>
			<xs:extension base="co:ArrayOfString"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ArrayOfTroubleTicketValue">
		<xs:sequence>
			<xs:element name="Item" type="TroubleTicketValue" nillable="true" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TroubleTicketSummary">
		<xs:complexContent>
			<xs:restriction base="TroubleTicketValue">
				<xs:sequence>
					<xs:element name="troubleTicketKey" type="TroubleTicketKey" nillable="true" minOccurs="0"/>
					<xs:element name="customerTroubleNum" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">
								CUST_REF - Customer Supplied Reference or if no Cust_ref supplied then 
								CONTACT_NAME - The name of the contact within the Customer Organisation or
								'BT Originated' if Trouble ticket was raised by BT on behalf of teh Customer
							</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="lastUpdateTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">QUE_DATE</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="receivedTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">REPORT_DATE - The date the Trouble Ticket was reported</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubleDescription" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">WEB_DESCRIPTION - the fault description supplied by the customer</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubledObject" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">CCT_ID - the reference of the circuit in trouble</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element ref="tt:baseStatus" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">STATUS - the current state of the Trouble Ticket</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubleStatusTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">The date and time that the current State was entered</xs:appinfo>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ArrayOfTroubleTicketSummary">
		<xs:sequence>
			<xs:element name="Item" type="TroubleTicketSummary" nillable="true" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TroubleTicketValue">
		<xs:complexContent>
			<xs:restriction base="tt:TroubleTicketValue">
				<xs:sequence>
					<xs:element name="lastUpdateVersionNumber" type="xs:long" minOccurs="0"/>
					<xs:element name="troubleTicketKey" type="TroubleTicketKey" nillable="true" minOccurs="0"/>
					<xs:element name="accountOwner" type="tt:PersonReach" nillable="true" minOccurs="0"/>
					<xs:element name="activityDurationList" type="tt:ActivityDurationList" nillable="true" minOccurs="0"/>
					<xs:element name="additionalTroubleInfoList" type="co:ArrayOfString" nillable="true" minOccurs="0"/>
					<xs:element name="afterHoursRepairAuthority" type="xs:boolean" nillable="true" minOccurs="0"/>
					<xs:element name="authorizationList" type="tt:ArrayOfAuthorization" nillable="true" minOccurs="0"/>
					<xs:element name="cancelRequestedByCustomer" type="xs:boolean" nillable="true" minOccurs="0"/>
					<xs:element name="clearancePerson" type="tt:PersonReach" nillable="true" minOccurs="0"/>
					<xs:element name="closeOutNarr" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="closeOutVerification" type="xs:boolean" nillable="true" minOccurs="0"/>
					<xs:element name="commitmentTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="commitmentTimeRequested" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="customer" type="tt:PersonReach" nillable="true" minOccurs="0"/>
					<xs:element name="customerRoleAssignmentList" type="tt:ArrayOfCustomerRoleAssignment" nillable="true" minOccurs="0"/>
					<xs:element name="customerTroubleNum" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">
								CUST_REF - Customer Supplied Reference or if no Cust_ref supplied then 
								CONTACT_NAME - The name of the contact within the Customer Organisation or
								'BT Originated' if Trouble ticket was raised by BT on behalf of teh Customer
							</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="dialog" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="escalationList" type="tt:EscalationList" nillable="true" minOccurs="0"/>
					<xs:element ref="tt:baseInitiatingMode" nillable="true" minOccurs="0"/>
					<xs:element name="lastUpdateTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">QUE_DATE</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="maintServiceCharge" type="xs:boolean" nillable="true" minOccurs="0"/>
					<xs:element name="originator" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="outageDuration" type="tt:TimeLength" nillable="true" minOccurs="0"/>
					<xs:element name="receivedTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">REPORT_DATE - The date the Trouble Ticket was reported</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="relatedAlarmList" type="tt:RelatedAlarmList" nillable="true" minOccurs="0"/>
					<xs:element name="relatedTroubleTicketKeyList" type="tt:ArrayOfTroubleTicketKey" nillable="true" minOccurs="0"/>
					<xs:element name="repairActivityList" type="tt:RepairActivityList" nillable="true" minOccurs="0"/>
					<xs:element name="repeatReport" type="xs:boolean" nillable="true" minOccurs="0"/>
					<xs:element name="restoredTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="serviceUnavailableBeginTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="serviceUnavailableEndTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="sPRoleAssignmentList" type="tt:ArrayOfSPRoleAssignment" nillable="true" minOccurs="0"/>
					<xs:element name="suspectObjectList" type="tt:ArrayOfSuspectObject" nillable="true" minOccurs="0"/>
					<xs:element name="troubleDescription" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">WEB_DESCRIPTION - the fault description supplied by the customer</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element ref="tt:baseFoundType" nillable="true" minOccurs="0"/>
					<xs:element name="troubleLocation" type="tt:TroubleLocationInfo" nillable="true" minOccurs="0"/>
					<xs:element name="troubleNumList" type="co:ArrayOfString" nillable="true" minOccurs="0"/>
					<xs:element name="troubledObject" type="xs:string" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">CCT_ID - the reference of the circuit in trouble</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element ref="tt:baseTroubleType" nillable="true" minOccurs="0"/>
					<xs:element ref="tt:baseState" nillable="true" minOccurs="0"/>
					<xs:element ref="tt:baseStatus" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">STATUS - the current state of the Trouble Ticket</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubleStatusTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">The date and time that the current State was entered</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element ref="tt:basePerceivedTroubleSeverity" nillable="true" minOccurs="0"/>
					<xs:element ref="tt:basePreferredPriority" nillable="true" minOccurs="0"/>
					<xs:element name="troubleDetectionTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="troubleLocationInfoList" type="tt:ArrayOfTroubleLocationInfo" nillable="true" minOccurs="0"/>
					<xs:element name="troubledObjectAccessFromTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="troubledObjectAccessHoursList" type="tt:ArrayOfAccessHours" nillable="true" minOccurs="0"/>
					<xs:element name="troubledObjectAccessToTime" type="xs:dateTime" nillable="true" minOccurs="0"/>
					<xs:element name="troubleSystemDN" type="xs:string" nillable="true" minOccurs="0"/>
					<xs:element name="SpecificDetails" type="SpecificDetails" minOccurs="0"/>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ArrayOfTroubleTicketDetails">
		<xs:sequence>
			<xs:element name="Item" type="TroubleTicketDetails" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TroubleTicketDetails">
		<xs:complexContent>
			<xs:restriction base="TroubleTicketValue">
				<xs:sequence>
					<xs:element name="troubleTicketKey" nillable="true">
						<xs:complexType>
							<xs:complexContent>
								<xs:restriction base="TroubleTicketKey">
									<xs:sequence>
										<xs:element name="primaryKey" type="xs:string">
											<xs:annotation>
												<xs:appinfo source="eCO Repair">CAMSS Trouble Ticket ID</xs:appinfo>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:restriction>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
					<xs:element name="additionalTroubleInfoList" type="ArrayOfString">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">Used to put the lines: FAULT_DESCRIPTION, LOG_LINE1 thru LOG_LINE4, </xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="customerTroubleNum" type="xs:string" nillable="true">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">
								CUST_REF - Customer Supplied Reference or if no Cust_ref supplied then 
								CONTACT_NAME - The name of the contact within the Customer Organisation or
								'BT Originated' if Trouble ticket was raised by BT on behalf of teh Customer
							</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="lastUpdateTime" type="xs:dateTime" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">QUE_DATE</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="receivedTime" type="xs:dateTime" nillable="true">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">REPORT_DATE - The date the Trouble Ticket was reported</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubleDescription" type="xs:string" nillable="true">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">WEB_DESCRIPTION - the fault description supplied by the customer</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubledObject" type="xs:string" nillable="true">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">CCT_ID - the reference of the circuit in trouble</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="troubleLocationInfoList" nillable="true">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">Used to hold the C_NAME_A, C_NAME_B, C_ADDRESS_A and C_ADDRESS_B.  The LOcation TYpe flag would be either 'A' or 'B'.</xs:appinfo>
						</xs:annotation>
						<xs:complexType>
							<xs:complexContent>
								<xs:restriction base="ArrayOfTroubleLocation">
									<xs:sequence>
										<xs:element name="Item" maxOccurs="unbounded">
											<xs:complexType>
												<xs:complexContent>
													<xs:restriction base="TroubleLocation">
														<xs:sequence>
															<xs:element name="LocationType" type="xs:string" minOccurs="0"/>
															<xs:element name="Contact" type="Contact" nillable="true" minOccurs="0"/>
															<xs:element name="Address" type="BritishAddress" nillable="true" minOccurs="0"/>
														</xs:sequence>
													</xs:restriction>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:restriction>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ArrayOfTroubleLocation">
		<xs:sequence>
			<xs:element name="Item" type="TroubleLocation" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TroubleLocation">
		<xs:complexContent>
			<xs:restriction base="tt:TroubleLocationInfo">
				<xs:sequence>
					<xs:element name="LocationType" type="xs:string" minOccurs="0"/>
					<xs:element name="Contact" type="Contact" nillable="true" minOccurs="0"/>
					<xs:element name="Address" type="Address" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TroubleTicketKey">
		<xs:complexContent>
			<xs:restriction base="tt:TroubleTicketKey">
				<xs:sequence>
					<xs:element name="applicationContext" type="co:ApplicationContext" minOccurs="0"/>
					<xs:element name="applicationDN" type="xs:string" minOccurs="0"/>
					<xs:element name="type" type="xs:string" minOccurs="0"/>
					<xs:element name="primaryKey" type="xs:string">
						<xs:annotation>
							<xs:appinfo source="eCO Repair">REF_NO : CAMSS Trouble Ticket ID</xs:appinfo>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SpecificDetails" abstract="true"/>
	<xs:complexType name="Address">
		<xs:choice>
			<xs:element name="Details" type="xs:string"/>
			<xs:element name="Details" type="tt:Address"/>
			<xs:element name="Details" type="BritishAddress"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="BritishAddress">
		<xs:complexContent>
			<xs:restriction base="tt:Address">
				<xs:sequence>
					<xs:element name="SubPremises" type="xs:string" minOccurs="0"/>
					<xs:element name="PremisesName" type="xs:string" minOccurs="0"/>
					<xs:element name="ThoroughfareNumber" type="xs:string" minOccurs="0"/>
					<xs:element name="ThoroughfareName" type="xs:string" minOccurs="0"/>
					<xs:element name="SubLocality" type="xs:string" minOccurs="0"/>
					<xs:element name="Locality" type="xs:string" minOccurs="0"/>
					<xs:element name="PostTown" type="xs:string" minOccurs="0"/>
					<xs:element name="County" type="xs:string" minOccurs="0"/>
					<xs:element name="PostCode" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>
