<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by John Jeckson (DDB) -->
<!--Modified by Max Voskob on 20/03/2003-->
<!-- Last modified by Andrew Golightly on 19/04/2005 (E-Government Unit, New Zealand) -->
<xs:schema targetNamespace="NZL:govt:egu:xNAL:xNL:version=3_3" xmlns="NZL:govt:egu:xNAL:xNL:version=3_3" xmlns:xNLb="NZL:govt:egu:xNAL:xNL-basic:version=3_3" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:annotation>
		<xs:documentation>DRAFT OF VERSION 3

xNL: eXtensible Name Language
Date of Creation: 26 March 2002
Copyright(c) 2002, OASIS. All Rights Reserved [http://www.oasis-open.org]
Contact: Customer Information Quality Technical Committee, OASIS
http://www.oasis-open.org/committees/ciq
Version: 3.3 
Previous Version: V2.0
</xs:documentation>
	</xs:annotation>
	<xs:import namespace="NZL:govt:egu:xNAL:xNL-basic:version=3_3" schemaLocation="nz-xNL-basic-3_3.xsd"/>
	<xs:element name="xNL">
		<xs:annotation>
			<xs:documentation>Root element to define name of a Person or an Organisation  in detail</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NameDetails" maxOccurs="unbounded"/>
				<!--
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
					</xs:annotation>
				</xs:any>
				-->
			</xs:sequence>
			<xs:anyAttribute namespace="##other"/>
		</xs:complexType>
	</xs:element>
	<xs:attributeGroup name="grKeyRefs">
		<xs:attribute name="NameDetailsKeyRef" type="xNLb:guid">
			<xs:annotation>
				<xs:documentation>Reference to another NameDetails element with no foreign key reinforcement. The referenced element may be out of the document and the document is still valid.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:complexType name="NameDetails">
		<xs:choice minOccurs="0">
			<xs:element name="NameLine" type="xNLb:NameLineType" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Define name as a free format text. Use this when the type of the entity (person or organisation) is unknown, or not broken into individual elements or is beyond the provided types.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="PersonName"/>
			<xs:element ref="JointPersonName"/>
			<xs:element ref="OrganisationName"/>
		</xs:choice>
		<xs:attribute name="PartyType" type="xNLb:string">
			<xs:annotation>
				<xs:documentation>Indicates the type of entity i.e described namely, Person or an Organisation. An Organisation could be: Club, Association, Company, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other" processContents="strict"/>
	</xs:complexType>
	<xs:element name="NameDetails">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="NameDetails">
					<xs:sequence>
						<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
							</xs:annotation>
						</xs:any>
					</xs:sequence>
					<xs:attribute name="NameDetailsKey" type="xNLb:guid">
						<xs:annotation>
							<xs:documentation>Key identifier for the element for not reinforced references from other elements. Not required to be unique for the document to be valid, but application may get confused if not unique. Extend this schema adding unique contraint if needed.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="PersonName">
		<xs:annotation>
			<xs:documentation>Container for person name details.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="xNLb:PersonName">
					<xs:sequence>
						<xs:element name="FormerName" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Example: maiden name</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:PersonName">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attributeGroup ref="grKeyRefs"/>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="KnownAs" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Sometimes the same person is known under different unofficial or official names</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:PersonName">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attributeGroup ref="grKeyRefs"/>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<!--
						<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
							</xs:annotation>
						</xs:any>
						-->
					</xs:sequence>
					<xs:attributeGroup ref="grKeyRefs"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="JointPersonName">
		<xs:annotation>
			<xs:documentation>A container to define more than one person name. Example: Mrs Mary Johnson and Mr.Patrick Johnson</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:choice maxOccurs="unbounded">
					<xs:element name="NameLine" type="xNLb:NameLineType" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Name or part of the name as a free format text. If the name structure has to be broken down into individual elements, use PersonName Container.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="PersonName" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Use this element to specify every member separately.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:choice>
				<!--
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
					</xs:annotation>
				</xs:any>
				-->
			</xs:sequence>
			<xs:attribute name="JointNameConnector" type="xNLb:string">
				<xs:annotation>
					<xs:documentation>The connector used to join more than one person name. Example: Mr Hunt AND Mrs Clark, where AND is the JointNameConnector</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:anyAttribute namespace="##other"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="OrganisationName">
		<xs:annotation>
			<xs:documentation>A container for organisation name details.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="xNLb:OrganisationNameDetails">
					<xs:sequence>
						<xs:element ref="SubdivisionName" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="FormerName" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Name history for the organisation</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:OrganisationNameDetails">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
												</xs:annotation>
											</xs:any>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attributeGroup ref="grKeyRefs"/>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="KnownAs" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Any other names the organisation can be known under.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:OrganisationNameDetails">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
												</xs:annotation>
											</xs:any>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attributeGroup ref="grKeyRefs"/>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<!--
						<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
							</xs:annotation>
						</xs:any>
						-->
					</xs:sequence>
					<xs:attributeGroup ref="grKeyRefs"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="SubdivisionName">
		<xs:annotation>
			<xs:documentation>A container for organisation subdivision name details.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="xNLb:SubdivisionNameDetails">
					<xs:sequence>
						<xs:element name="FormerName" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Name history for the subdivision</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:SubdivisionNameDetails">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
												</xs:annotation>
											</xs:any>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="KnownAs" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Any other names the subdivision can be known under.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="xNLb:SubdivisionNameDetails">
										<xs:sequence>
											<!--
											<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
												</xs:annotation>
											</xs:any>
											-->
										</xs:sequence>
										<xs:attribute name="ValidFrom" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
										<xs:attribute name="ValidTo" type="xs:dateTime">
											<xs:annotation>
												<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
											</xs:annotation>
										</xs:attribute>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element ref="SubdivisionName" minOccurs="0" maxOccurs="unbounded"/>
						<!--
						<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Use this to import/use/reference name elements from other namespaces </xs:documentation>
							</xs:annotation>
						</xs:any>
						-->
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
