Common XSD

Common XSD definitions used in Incoming API calls

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
           targetNamespace="http://api.globalpay.convera.com" xmlns:tns="http://api.globalpay.convera.com" elementFormDefault="qualified"
           attributeFormDefault="unqualified" vc:minVersion="1.1">
	<xs:complexType name="AbstractOutputType">
		<xs:sequence>
			<xs:element name="status"      >
				<xs:complexType>
					<xs:sequence>
						<xs:element name="error" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:string">
										<xs:attribute name="code" use="required"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="success" type="xs:boolean" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AbstractInputType" abstract="true">
		<xs:sequence>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Remitter">
			<xs:sequence>
				<xs:element name="name" type="tns:SwiftString140"/>
				<xs:element name="address1" type="tns:SwiftString250"/>
				<xs:element name="address2" type="tns:SwiftString40" minOccurs="0"/>
				<xs:element name="city" type="tns:SwiftString40"/>
				<xs:element name="state" type="tns:SwiftString40" minOccurs="0"/>
				<xs:element name="zip" type="tns:SwiftString35" minOccurs="0"/>
				<xs:element name="countryCode" type="tns:CountryCodeType"/>
				<xs:element name="email" type="tns:EmailType" minOccurs="0"/>
				<xs:element name="phone" type="tns:String255Type" minOccurs="0"/>
				<xs:element name="remitterType" minOccurs="0">
					<xs:complexType>
						<xs:choice>
							<xs:element name="individual" type="tns:IndividualRemitter"/>
							<xs:element name="business" type="tns:BusinessRemitter"/>
						</xs:choice>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RemitterBank" >
			<xs:sequence>
				<xs:element name="name" type="tns:SwiftString70"/>
				<xs:element name="address1" type="tns:SwiftString60"/>
				<xs:element name="address2" type="tns:SwiftString40" minOccurs="0"/>
				<xs:element name="city" type="tns:SwiftString40"/>
				<xs:element name="state" type="tns:SwiftString40"/>
				<xs:element name="zip" type="tns:SwiftString40" minOccurs="0"/>
				<xs:element name="countryCode" type="tns:CountryCodeType"/>
				<xs:element name="routingCode" type="tns:String255Type" minOccurs="0"/>
				<xs:element name="swiftCode" type="tns:String255Type" minOccurs="0"/>
				<xs:element name="branchCode" type="tns:String255Type" minOccurs="0"/>
				<xs:element name="account" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="type" type="tns:accTypeOptions" minOccurs="0"/>
							<xs:element name="holders" type="tns:String255Type" minOccurs="0"/>
							<xs:element name="currency" type="tns:CurrencyCodeType" minOccurs="0"/>
							<xs:element name="openingDate" type="xs:date" minOccurs="0"/>
							<xs:element name="accountNumber" type="tns:String255Type" minOccurs="0"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="bankContact" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="name" type="tns:String255Type" minOccurs="0"/>
							<xs:element name="email" type="tns:EmailType" minOccurs="0"/>
							<xs:element name="phone" type="tns:String255Type" minOccurs="0"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
	</xs:complexType>
	<xs:complexType name="IndividualRemitter">
		<xs:sequence>
			<xs:element name="occupation" type="xs:string" minOccurs="0"/>
			<xs:element name="identification" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="document" type="xs:string" minOccurs="0"/>
						<xs:element name="documentRef" type="xs:string" minOccurs="0"/>
						<xs:element name="documentCountry" type="tns:CountryCodeType" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="alias" type="xs:string" minOccurs="0"/>
			<xs:element name="dob" type="xs:date" minOccurs="0"/>
			<xs:element name="residentCountry" type="tns:CountryCodeType" minOccurs="0"/>
			<xs:element name="employerName" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="BusinessRemitter">
		<xs:sequence>
			<xs:element name="principalBusiness" type="xs:string" minOccurs="0"/>
			<xs:element name="authorisedUser" type="xs:string" minOccurs="0" maxOccurs="3"/>
			<xs:element name="registrationNo" type="xs:string" minOccurs="0"/>
			<xs:element name="jurisdiction" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="EmailType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="150"/>
            <xs:pattern value="[a-zA-Z0-9._%+\-\[\]!#$&amp;()*/;=^`{|}~]+@([a-zA-Z0-9\-\^!#$%&amp;*+/=_`{|}~]+\.)+[a-zA-Z0-9\-\^!#$%&amp;*+/=_`{|}~]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SwiftString">
        <xs:restriction base="xs:string">
            <xs:maxLength value="30"/>
            <xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
        </xs:restriction>
    </xs:simpleType>
	<xs:simpleType name="SwiftString11">
		<xs:restriction base="xs:string">
			<xs:maxLength value="11"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString35">
		<xs:restriction base="xs:string">
			<xs:maxLength value="35"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString40">
		<xs:restriction base="xs:string">
			<xs:maxLength value="40"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString60">
		<xs:restriction base="xs:string">
			<xs:maxLength value="60"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString70">
		<xs:restriction base="xs:string">
			<xs:maxLength value="70"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString140">
		<xs:restriction base="xs:string">
			<xs:maxLength value="140"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString250">
		<xs:restriction base="xs:string">
			<xs:maxLength value="250"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SwiftString255">
		<xs:restriction base="xs:string">
			<xs:maxLength value="255"/>
			<xs:pattern value="[ a-zA-Z0-9/\-:().,+]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PaymentCodeType">
		<xs:restriction base="xs:string">
            <xs:maxLength value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CurrencyCodeType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="3"/>
			<xs:minLength value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CountryCodeType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="3"/>
			<xs:minLength value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="String30Type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="30"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="String255Type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="String1000Type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="1000"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="accTypeOptions">
		<xs:restriction base="xs:string">
			<xs:enumeration value="checking"/>
			<xs:enumeration value="current"/>
			<xs:enumeration value="other"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="fieldsTypeRestriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="text"/>
			<xs:enumeration value="email"/>
			<xs:enumeration value="select"/>
			<xs:enumeration value="check_box"/>
			<xs:enumeration value="date"/>
			<xs:enumeration value="radio_buttons"/>
			<xs:enumeration value="country"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="actionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="deleted"/>
			<xs:enumeration value="create"/>
			<xs:enumeration value="update"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>