<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
		targetNamespace="http://xmlgw.cocredo.com/v1-0/docs/schemas" 
		xmlns="http://xmlgw.cocredo.com/v1-0/docs/schemas"
		elementFormDefault="qualified">
	<xsd:annotation>
		<xsd:documentation>
		This schema should be used to search for a company. Searching on companyRegNum will
		override all other variables. All search variables are optional (except country code),
		however at least one of these optional variables must always be included.
		
		When searching for US or CA companies, the geographic area code must be included.
		
		When searching for DE (German) companies a reason code (1 to 8) must be included.
		</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="companySearch">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="companyRegNum" type="companyRegNumType" minOccurs="0" maxOccurs="1" />
				<xsd:element name="companyName" type="companyNameType" minOccurs="0" maxOccurs="1" />
				<xsd:element name="countryCode" type="countryCodeType" />
				<xsd:element name="companyDuns" type="companyIDType" minOccurs="0" maxOccurs="1" />
				<xsd:element name="companyPhone" minOccurs="0" maxOccurs="1">
					<xsd:simpleType>
						<xsd:restriction base="xsd:string">
							<xsd:minLength value="5" />
							<xsd:maxLength value="25" />
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:element>
				<xsd:element name="registeredOfficePostcode" minOccurs="0" maxOccurs="1">
					<xsd:simpleType>
						<xsd:restriction base="xsd:string">
							<xsd:minLength value="3" />
							<xsd:maxLength value="8" />
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:element>
				<xsd:element name="geographicAreaCode" type="geographicAreaCodeType" minOccurs="0" maxOccurs="1" />
				<xsd:element name="purchaseReasonCode" type="xsd:integer" minOccurs="0" maxOccurs="1" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<!-- Data types -->
	<xsd:simpleType name="companyRegNumType">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1" />
			<xsd:maxLength value="30" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="companyNameType">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1" />
			<xsd:maxLength value="100" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="countryCodeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="GB" />
			<xsd:enumeration value="IE" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="companyIDType">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1" />
			<xsd:maxLength value="50" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="geographicAreaCodeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="AL" />
			<xsd:enumeration value="AR" />
			<xsd:enumeration value="AZ" />
			<xsd:enumeration value="AK" />
			<xsd:enumeration value="CA" />
			<xsd:enumeration value="CO" />
			<xsd:enumeration value="CT" />
			<xsd:enumeration value="DE" />
			<xsd:enumeration value="DC" />
			<xsd:enumeration value="FL" />
			<xsd:enumeration value="GA" />
			<xsd:enumeration value="HI" />
			<xsd:enumeration value="ID" />
			<xsd:enumeration value="IL" />
			<xsd:enumeration value="IN" />
			<xsd:enumeration value="IA" />
			<xsd:enumeration value="KS" />
			<xsd:enumeration value="KY" />
			<xsd:enumeration value="LA" />
			<xsd:enumeration value="ME" />
			<xsd:enumeration value="MD" />
			<xsd:enumeration value="MA" />
			<xsd:enumeration value="MI" />
			<xsd:enumeration value="MN" />
			<xsd:enumeration value="MS" />
			<xsd:enumeration value="MO" />
			<xsd:enumeration value="MT" />
			<xsd:enumeration value="NE" />
			<xsd:enumeration value="NV" />
			<xsd:enumeration value="NH" />
			<xsd:enumeration value="NJ" />
			<xsd:enumeration value="NM" />
			<xsd:enumeration value="NY" />
			<xsd:enumeration value="NC" />
			<xsd:enumeration value="ND" />
			<xsd:enumeration value="OH" />
			<xsd:enumeration value="OK" />
			<xsd:enumeration value="OR" />
			<xsd:enumeration value="PA" />
			<xsd:enumeration value="PR" />
			<xsd:enumeration value="RI" />
			<xsd:enumeration value="SC" />
			<xsd:enumeration value="SD" />
			<xsd:enumeration value="TN" />
			<xsd:enumeration value="TX" />
			<xsd:enumeration value="UT" />
			<xsd:enumeration value="VT" />
			<xsd:enumeration value="VA" />
			<xsd:enumeration value="VI" />
			<xsd:enumeration value="WA" />
			<xsd:enumeration value="WV" />
			<xsd:enumeration value="WI" />
			<xsd:enumeration value="WY" />
			
			<xsd:enumeration value="AB" />
			<xsd:enumeration value="BC" />
			<xsd:enumeration value="MB" />
			<xsd:enumeration value="NB" />
			<xsd:enumeration value="NF" />
			<xsd:enumeration value="NT" />
			<xsd:enumeration value="NS" />
			<xsd:enumeration value="NU" />
			<xsd:enumeration value="ON" />
			<xsd:enumeration value="PE" />
			<xsd:enumeration value="QC" />
			<xsd:enumeration value="SK" />
			<xsd:enumeration value="YK" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>