<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="NCIPMessage">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="CheckOutItemResponse"/>
			</xsd:choice>
			<xsd:attribute name="version" type="xsd:string" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CheckOutItemResponse">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ResponseHeader"/>
				<xsd:choice>
					<xsd:sequence>
						<xsd:element ref="Problem"/>
					</xsd:sequence>
					<xsd:sequence>
						<xsd:element ref="UniqueItemId"/>
						<xsd:element ref="UniqueUserId"/>
						<xsd:choice>
							<xsd:element ref="DateDue"/>
							<xsd:element ref="IndeterminateLoanPeriodFlag"/>
							<xsd:element ref="NonReturnableFlag"/>
						</xsd:choice>
						<xsd:element ref="ItemOptionalFields" minOccurs="0"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ResponseHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="FromAgencyId"/>
				<xsd:element ref="ToAgencyId"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Author" type="xsd:string"/>
	<xsd:element name="BibliographicDescription">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Author" minOccurs="0"/>
				<xsd:element ref="PlaceOfPublication" minOccurs="0"/>
				<xsd:element ref="PublicationDate" minOccurs="0"/>
				<xsd:element ref="Publisher" minOccurs="0"/>
				<xsd:element ref="Title" minOccurs="0"/>
				<xsd:element ref="TitleOfComponent" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DateDue" type="xsd:dateTime"/>
	<xsd:element name="ElementName" type="xsd:string"/>
	<xsd:element name="FromAgencyId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="UniqueAgencyId"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="IndeterminateLoanPeriodFlag">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="ItemIdentifierValue" type="xsd:string"/>
	<xsd:element name="ItemOptionalFields">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="BibliographicDescription" minOccurs="0"/>
				<xsd:element ref="SecurityMarker" minOccurs="0"/>
				<xsd:element ref="SensitizationFlag" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessagingError">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="MessagingErrorType"/>
				<xsd:element ref="MessagingErrorElement"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessagingErrorElement">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ElementName"/>
				<xsd:choice minOccurs="0">
					<xsd:element ref="MessagingErrorElement"/>
					<xsd:element ref="MessagingErrorValue"/>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessagingErrorType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Scheme"/>
				<xsd:element ref="Value"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessagingErrorValue" type="xsd:string"/>
	<xsd:element name="NonReturnableFlag">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="PlaceOfPublication" type="xsd:string"/>
	<xsd:element name="Problem">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="MessagingError" maxOccurs="unbounded"/>
				<xsd:element ref="ProcessingError" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ProcessingError">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ProcessingErrorType"/>
				<xsd:element ref="ProcessingErrorElement"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ProcessingErrorElement">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ElementName"/>
				<xsd:choice minOccurs="0">
					<xsd:element ref="ProcessingErrorElement"/>
					<xsd:element ref="ProcessingErrorValue"/>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ProcessingErrorType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Scheme"/>
				<xsd:element ref="Value"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ProcessingErrorValue" type="xsd:string"/>
	<xsd:element name="PublicationDate" type="xsd:string"/>
	<xsd:element name="Publisher" type="xsd:string"/>
	<xsd:element name="ResourceDesired">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="Scheme" type="xsd:string"/>
	<xsd:element name="SecurityMarker">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Scheme"/>
				<xsd:element ref="Value"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SensitiveDataFlag">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="SensitizationFlag">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="Title" type="xsd:string"/>
	<xsd:element name="TitleOfComponent" type="xsd:string"/>
	<xsd:element name="ToAgencyId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="UniqueAgencyId"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="UniqueAgencyId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Scheme"/>
				<xsd:element ref="Value"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="UniqueItemId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="UniqueAgencyId"/>
				<xsd:element ref="ItemIdentifierValue"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="UniqueUserId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="UniqueAgencyId"/>
				<xsd:element ref="UserIdentifierValue"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="UnstructuredHoldingsData" type="xsd:string"/>
	<xsd:element name="UserIdentifierValue" type="xsd:string"/>
	<xsd:element name="UserLanguage">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Scheme"/>
				<xsd:element ref="Value"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Value" type="xsd:string"/>
	<xsd:element name="VisibleUserId">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="UniqueAgencyId" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
