<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:doc="http://www.ros.ie/schemas/customs/doc"
	xmlns:base="http://www.ros.ie/schemas/customs/base"
	targetNamespace="http://www.ros.ie/schemas/customs/base" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.00">

	<!--=========================================-->
	<!--			BASE ELEMENTS				 -->
	<!--=========================================-->

	<!--===== Includes =====-->



	<!--===== Data Item Types Base =====-->
	<xs:simpleType name="AlphaType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all aN and a..N types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token"/>
	</xs:simpleType>
	<xs:simpleType name="AlphaCapitalType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all aN and a..N upper case types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="base:AlphaType">
			<xs:pattern value="[A-Z]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NumType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all nN and n..N types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token"/>
	</xs:simpleType>
	<xs:simpleType name="AlphaNumType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all anN and an..N types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token"/>
	</xs:simpleType>
	<xs:simpleType name="AlphanumericCapitalType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all anN and an..N upper case types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="base:AlphaNumType">
			<xs:pattern value="[A-Z0-9]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DecType">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all n..N,M types"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:decimal"/>
	</xs:simpleType>
	<xs:simpleType name="StringLatin1">
		<xs:restriction base="xs:string">
			<xs:pattern value="\p{IsBasicLatin}+"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Flag">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all attributes that can have a positive or a negative value"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="Base64Binary">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all attributes that can have a positive or a negative value"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:base64Binary"/>
	</xs:simpleType>
	<xs:simpleType name="NonEmptyBase64Binary">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all attributes that can have a positive or a negative value"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:base64Binary" >
			<xs:minLength value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="BigInteger">
		<xs:annotation>
			<xs:documentation><doc:description value="Base class for all Integer values"/></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	


	<!--===== Data Item Types Format=====-->
	<xs:simpleType name="AlphaCapital_2">
		<xs:restriction base="base:AlphaCapitalType">
			<xs:length value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alpha_1">
		<xs:restriction base="base:AlphaType">
			<xs:length value="1"/>
			<xs:pattern value="[a-zA-Z]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alpha_2">
		<xs:restriction base="base:AlphaType">
			<xs:length value="2"/>
			<xs:pattern value="[a-zA-Z]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alpha_3">
		<xs:restriction base="base:AlphaType">
			<xs:length value="3"/>
			<xs:pattern value="[a-zA-Z]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlphaCapital_Max3">
		<xs:restriction base="base:AlphaCapitalType">
			<xs:maxLength value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max2">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="2"/>
			<xs:pattern value=".{1,2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max3">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="3"/>
			<xs:pattern value=".{1,3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max4">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="4"/>
			<xs:pattern value=".{1,4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max5">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="5"/>
			<xs:pattern value=".{1,5}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max6">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="6"/>
			<xs:pattern value=".{1,6}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max8">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="8"/>
			<xs:pattern value=".{1,8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max9">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="9"/>
			<xs:pattern value=".{1,9}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max10">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="10"/>
			<xs:pattern value=".{1,10}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max14">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="14"/>
			<xs:pattern value=".{1,14}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max15">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="15"/>
			<xs:pattern value=".{1,15}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max17">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="17"/>
			<xs:pattern value=".{1,17}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max18">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="18"/>
			<xs:pattern value=".{1,18}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max20">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="20"/>
			<xs:pattern value=".{1,20}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max22">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="22"/>
			<xs:pattern value=".{1,22}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max24">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="24"/>
			<xs:pattern value=".{1,24}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max29">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="29"/>
			<xs:pattern value=".{1,29}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max35">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="35"/>
			<xs:pattern value=".{1,35}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_36">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="36"/>
			<xs:pattern value=".{36}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max50">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="50"/>
			<xs:pattern value=".{1,50}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max70">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="70"/>
			<xs:pattern value=".{1,70}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max100">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="100"/>
			<xs:pattern value=".{1,100}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max140">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="140"/>
			<xs:pattern value=".{1,140}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max150">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="150"/>
			<xs:pattern value=".{1,150}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max210">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="210"/>
			<xs:pattern value=".{1,210}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max512">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="512"/>
			<xs:pattern value=".{1,512}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_Max350">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="350"/>
			<xs:pattern value=".{1,350}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="AlphanumericCapital1Type">
		<xs:restriction base="base:AlphanumericCapitalType">
			<xs:length value="1"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="AlphanumericCapital_a1_n2">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="3"/>
			<xs:pattern value="[A-Z][0-9]{2}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="Alphanumeric_1">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="1"/>
			<xs:pattern value=".{1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_2">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="2"/>
			<xs:pattern value=".{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_3">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="3"/>
			<xs:pattern value=".{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_4">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="4"/>
			<xs:pattern value=".{4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_5">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="5"/>
			<xs:pattern value=".{5}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_6">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="6"/>
			<xs:pattern value=".{6}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_8">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="8"/>
			<xs:pattern value=".{8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_10">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="10"/>
			<xs:pattern value=".{10}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_18">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="18"/>
			<xs:pattern value="[\S]{18}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alphanumeric_22">
		<xs:restriction base="base:AlphaNumType">
			<xs:length value="22"/>
			<xs:pattern value="[\S]{22}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_3_2">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="3"/>
			<xs:fractionDigits value="2"/>
			<xs:pattern value="\d*\.?\d{1,2}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_8_2">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="8"/>
			<xs:fractionDigits value="2"/>
			<xs:pattern value="\d*\.?\d{1,2}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_12_5">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="12"/>
			<xs:fractionDigits value="5"/>
			<xs:pattern value="\d*\.?\d{1,5}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_16_2">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="16"/>
			<xs:fractionDigits value="2"/>
			<xs:pattern value="\d*\.?\d{1,2}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_16_6">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="16"/>
			<xs:fractionDigits value="6"/>
			<xs:pattern value="\d*\.?\d{1,6}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Decimal_17_3">
		<xs:restriction base="base:DecType">
			<xs:totalDigits value="17"/>
			<xs:fractionDigits value="3"/>
			<xs:pattern value="\d*\.?\d{1,3}" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="Numeric_Max2">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="2"/>
			<xs:pattern value="[0-9]{1,2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_Max3">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="3"/>
			<xs:pattern value="[0-9]{1,3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_Max4">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="4"/>
			<xs:pattern value="[0-9]{1,4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_Max5">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="5"/>
			<xs:pattern value="[0-9]{1,5}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_Max8">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="8"/>
			<xs:pattern value="[0-9]{1,8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_Max12">
		<xs:restriction base="base:NumType">
			<xs:maxLength value="12"/>
			<xs:pattern value="[0-9]{1,12}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_1">
		<xs:restriction base="base:NumType">
			<xs:length value="1"/>
			<xs:pattern value="[0-9]{1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_2">
		<xs:restriction base="base:NumType">
			<xs:length value="2"/>
			<xs:pattern value="[0-9]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_3">
		<xs:restriction base="base:NumType">
			<xs:length value="3"/>
			<xs:pattern value="[0-9]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Numeric_8">
		<xs:restriction base="base:NumType">
			<xs:length value="8"/>
			<xs:pattern value="[0-9]{8}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="NumericMin4Max8">
		<xs:restriction base="base:NumType">
			<xs:pattern value="[0-9]{4,8}"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="Alphanumeric_Max256">
		<xs:restriction base="base:AlphaNumType">
			<xs:maxLength value="256"/>
			<xs:pattern value=".{1,256}"/>
		</xs:restriction>
	</xs:simpleType>
	

</xs:schema>
