<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xal="urn:oasis:names:tc:ciq:xal:3" xmlns:xnl="urn:oasis:names:tc:ciq:xnl:3" xmlns="urn:oasis:names:tc:ciq:xnal:3" xmlns:ct="urn:oasis:names:tc:ciq:ct:3" targetNamespace="urn:oasis:names:tc:ciq:xnal:3" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:annotation>
		<xs:documentation> 
		Specification Name: OASIS CIQ TC - extensible Name and Address Language (xNAL) 
		Description: Defines the W3C schema for representing name and address together
		(Using XML Schema based standard code list/enumeration mechanism - OPTION 1 AND DEFAULT)
		Produced by: OASIS Customer Information Quality Technical Committee
		URL: http://www.oasis-open.org/committees/ciq
		Version: 3.0  
		Status: Committee Specification
		Copyright: 2006-07, OASIS, http://www.oasis-open.org
		Last Modified: 18 September 2007
		Last Modified by: Ram Kumar, Chair, OASIS CIQ TC 
		
		NOTE: Do not modify this schema as it will break specifications compatibility 
		</xs:documentation>
	</xs:annotation>
	<xs:include schemaLocation="xNAL-types.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:ciq:xnl:3" schemaLocation="xnl.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:ciq:xal:3" schemaLocation="xal.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:ciq:ct:3" schemaLocation="CommonTypes.xsd"/>
	<xs:element name="Record">
		<xs:annotation>
			<xs:documentation>This is a generic contianer to combine name and address. Any cardinality of names and addresses is permitted.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="xnl:PartyName" maxOccurs="unbounded"/>
				<xs:element ref="xal:Address" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="RecordID" type="ct:String">
				<xs:annotation>
					<xs:documentation>A unique identifier of a record</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="RecordIDType" type="RecordIDTypeList">
				<xs:annotation>
					<xs:documentation>Type of Record ID</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="Status" type="ct:StatusList">
				<xs:annotation>
					<xs:documentation>Status of the entity. e.g. Old, Current, Inactive, Active, etc</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attributeGroup ref="ct:grValidityDate"/>
			<xs:attribute name="RecordKey" type="ct:String">
				<xs:annotation>
					<xs:documentation>Primary key for referencing record</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="RecordKeyRef" type="ct:String">
				<xs:annotation>
					<xs:documentation>Foreign key to reference record</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attributeGroup ref="ct:grDataQuality"/>
			<xs:attributeGroup ref="ct:grLanguageCode"/>
			<xs:anyAttribute namespace="##other" processContents="lax"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="PostalLabel">
		<xs:annotation>
			<xs:documentation>This is a specialised container to combine name and address for postal purposes, e.g. a label on an envelope that has two parts, an addressee and the address.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Addressee" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Addressee is the party that is the recipient of the postal mail delivery.  </xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Designation" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>When the name of the recipient is not known or the designation is still required to appear on the label.
E.g. Attention CEO, General Manager, the household owner, etc.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="ct:String">
											<xs:anyAttribute namespace="##other" processContents="lax"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
							<xs:element ref="xnl:PartyName" minOccurs="0"/>
							<xs:element name="DependencyName" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>The main name has a relationship with a dependant name.
The dependant name should be put under this element and the relationship described.
E.g. Eastbourne Goats Trust in care of Wellingon Lawers Ltd., Ram Kumar, C/O Sakthisoft, etc</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:complexContent>
										<xs:extension base="xnl:PartyNameType">
											<xs:attribute name="Type" type="DependencyTypeList" use="required">
												<xs:annotation>
													<xs:documentation>This attribute describes the nature/type of  relationship between the main name and the dependency. E.g. 'C/O', 'in care of' or 'a son of'.</xs:documentation>
												</xs:annotation>
											</xs:attribute>
										</xs:extension>
									</xs:complexContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attributeGroup ref="ct:grLanguageCode"/>
						<xs:anyAttribute namespace="##other" processContents="lax"/>
					</xs:complexType>
				</xs:element>
				<xs:element ref="xal:Address"/>
			</xs:sequence>
			<xs:attribute name="Status" type="ct:StatusList">
				<xs:annotation>
					<xs:documentation>Status of the entity. e.g. Old, Current, Inactive, Active, etc</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attributeGroup ref="ct:grValidityDate"/>
			<xs:attributeGroup ref="ct:grDataQuality"/>
			<xs:attributeGroup ref="ct:grLanguageCode"/>
			<xs:anyAttribute namespace="##other" processContents="lax"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
