<?xml version="1.0" encoding="UTF-8"?>
<!--

	Current Version: 0.4

	Document History:
	0.1 (Draft)	01/05/2006	Document Created
	
	0.2 (Draft)	11/10/2006:
		(1) Added Error Reference Structure with sub-element Error Code
		(2) <xsd:choice> used for complex type of MailboxCollectResponse rather than <xsd:sequence>
	
	0.3 (Draft)	04/01/2007:
		(1) Changed Message type from <xsd:anyType> to complexType containing  <xsd:sequence> of <xsd:anyType>. The structure of the resulting XML remains unchanged.

	0.4				01/02/2007:		Removed Draft Status.
 -->
<xsd:schema xmlns="http://www.ros.ie/schemas/customs/collectresponse/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cus="http://www.ros.ie/schemas/customs/customstypes/v1" targetNamespace="http://www.ros.ie/schemas/customs/collectresponse/v1" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.ros.ie/schemas/customs/customstypes/v1" schemaLocation="../../customstypes/v1/schema.xsd"/>
	<xsd:element name="MailboxCollectResponse">
		<xsd:annotation>
			<xsd:documentation>Response containing mailbox items</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="MailboxItemList"/>
				<xsd:element ref="ErrorReference"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MailboxItemList">
		<xsd:annotation>
			<xsd:documentation>Mailbox item list. The maximum number of items retrieved is in fact not unbounded but subject to a maximum limit specified by Revenue at application level.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="MailboxItem" minOccurs="0" maxOccurs="unbounded">
					<xsd:annotation>
						<xsd:documentation>RCM item</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="moremessages" type="xsd:boolean" use="required"/>
			<xsd:attribute name="messagecount" type="xsd:int" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ErrorReference">
		<xsd:annotation>
			<xsd:documentation>Error reference containing details of an error</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ErrorCode"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MailboxItem">
		<xsd:annotation>
			<xsd:documentation>Mailbox item</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="MailboxId">
					<xsd:annotation>
						<xsd:documentation>Mailbox ID</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element ref="TransactionId">
					<xsd:annotation>
						<xsd:documentation>Transaction ID</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Message" type="McrMessage">
					<xsd:annotation>
						<xsd:documentation>Message document</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MailboxId" type="cus:IEMailboxId">
		<xsd:annotation>
			<xsd:documentation>Mailbox ID - The unique mailbox item identifier</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="TransactionId" type="cus:IETransactionId">
		<xsd:annotation>
			<xsd:documentation>Transaction ID - The unique transaction identifier</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="McrMessage" mixed="true">
		<xsd:annotation>
			<xsd:documentation>MCR Message. Can be either a valid XML document or any simple type</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent mixed="true">
			<xsd:restriction base="xsd:anyType">
				<xsd:sequence>
					<xsd:any processContents="skip" minOccurs="0"/>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="ErrorCode" type="cus:IEErrorCode">
		<xsd:annotation>
			<xsd:documentation>Error code</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
</xsd:schema>
