<xsd:schema elementFormDefault="qualified"
	targetNamespace="http://www.msrb.org/avts/common"
	xmlns="http://www.msrb.org/avts/common"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
	jaxb:extensionBindingPrefixes="xjc" jaxb:version="1.0">

	<xsd:annotation>
		<xsd:appinfo>
			<jaxb:globalBindings>
				<xjc:serializable />
			</jaxb:globalBindings>
		</xsd:appinfo>
	</xsd:annotation>

	<xsd:element name="DealerMSRBNum">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:pattern value="[a-zA-Z0-9]*" />
				<xsd:minLength value="5" />
				<xsd:maxLength value="15" />
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	
	<xsd:element name="DealerMSRBName">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:pattern value="[a-zA-Z0-9,. :;]*" />
				<xsd:minLength value="5" />
				<xsd:maxLength value="90" />
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:complexType name="AVTSUser">
		<xsd:sequence>
			<xsd:element name="UserID" type="UserID" />
			<xsd:element ref="Password" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="UserID">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="3" />
			<xsd:maxLength value="15" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Period">
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="0" />
			<xsd:maxInclusive value="999" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Rate">
		<xsd:restriction base="xsd:decimal">
			<xsd:pattern value="[0-9]{1,2}\.[0-9]{1,3}" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:element name="Password">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:minLength value="8" />
				<xsd:maxLength value="16" />
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:simpleType name="SubmissionCtrlNum">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-zA-Z0-9]{16}" />
			<xsd:minLength value="16" />
			<xsd:maxLength value="16" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="RTRSCtrlNum">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-zA-Z0-9]{16}" />
			<xsd:minLength value="16" />
			<xsd:maxLength value="16" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="InformationType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ResetRate/Liquidity" />
			<xsd:enumeration value="Bidding" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="InstrumentType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="A" />
			<xsd:enumeration value="V" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:element name="CUSIP9">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:pattern value="[a-zA-Z0-9]{9}" />
				<xsd:minLength value="9" />
				<xsd:maxLength value="9" />
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:complexType name="Instrument">
		<xsd:sequence>
			<xsd:element ref="CUSIP9" />
			<xsd:element name="InstrumentType" type="InstrumentType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="BasicTime">
		<xsd:restriction base="xsd:string">
			<xsd:pattern
				value="(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="BasicDate">
		<xsd:restriction base="xsd:string">
			<xsd:pattern
				value="(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="BasicDateTime">
		<xsd:sequence>
			<xsd:annotation>
				<xsd:documentation>
					All Dates will be in EST. Date and Time fields have
					been broken up into components so that Timezone is
					not used.
				</xsd:documentation>
			</xsd:annotation>
			<xsd:element name="Date" type="BasicDate" />
			<xsd:element name="Time" type="BasicTime" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="InterestRateResetDateTime">
		<xsd:complexContent>
			<xsd:extension base="BasicDateTime" />
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="MessageTimeStamp">
		<xsd:complexContent>
			<xsd:extension base="BasicDateTime" />
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:simpleType name="TransactionType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="I" />
			<xsd:enumeration value="M" />
			<xsd:enumeration value="C" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="Submitter">
		<xsd:sequence>
			<xsd:element name="UserID" type="UserID" />
			<xsd:element name="SubmitterMessageTimeStamp"
				type="MessageTimeStamp" />
			<xsd:element name="SubmissionCtrlNum"
				type="SubmissionCtrlNum" />
			<xsd:element name="InformationType" type="InformationType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="FromSeqNum">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{16}" />
			<xsd:minLength value="16" />
			<xsd:maxLength value="16" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="Subscriber">
		<xsd:sequence>
			<xsd:element name="UserID" type="UserID" />
			<xsd:element name="SubscriberMessageTimeStamp"
				type="MessageTimeStamp" />
			<xsd:element name="InformationType" type="InformationType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Results">
		<xsd:sequence>
			<xsd:element minOccurs="1" maxOccurs="unbounded"
				name="Result" type="Result" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Result">
		<xsd:sequence>
			<xsd:element name="ResultCode">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:pattern value="[0-9,A-Z]{4}" />
						<xsd:minLength value="4" />
						<xsd:maxLength value="4" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="ResultMessage" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="MessageID">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{10}" />
			<xsd:minLength value="10" />
			<xsd:maxLength value="10" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="ResponseMessageHeader">
		<xsd:sequence>
			<xsd:element name="ResponseMessageID" type="MessageID" />
			<xsd:element name="ResponseMessageTimeStamp"
				type="BasicDateTime" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="RateType">
		<xsd:annotation>
			<xsd:documentation>
				ARS M – Max Rate H – All Hold Rate A – Set by Auction
				VRDO M – Max Rate F – Set by Formula R – Set by Agent
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="M" />
			<xsd:enumeration value="H" />
			<xsd:enumeration value="A" />
			<xsd:enumeration value="F" />
			<xsd:enumeration value="R" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="LiquidityFacilityType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="P" />
			<xsd:enumeration value="L" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>