<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Max Voskob (MSI) -->
<!-- Last modified by Andrew Golightly on 19/04/2005 (E-Government Unit, New Zealand) -->
<xs:schema targetNamespace="NZL:govt:egu:xNAL:xNL-basic:version=3_3" xmlns="NZL:govt:egu:xNAL:xNL-basic:version=3_3" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:annotation>
		<xs:documentation>DRAFT

xNL: eXtensible Name Language Basic Profile
Contact: e-government@ssc.govt.nz
http://www.e-government.govt.nz

Editor: Max Voskob (max.voskob@msi.net.nz)</xs:documentation>
	</xs:annotation>
	<xs:annotation>
		<xs:documentation>Documentation with @source=DQ refer to data quality requirements.</xs:documentation>
	</xs:annotation>
	<xs:simpleType name="string">
		<xs:annotation>
			<xs:documentation>A common format for a constrained string.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="guid">
		<xs:annotation>
			<xs:documentation>Represents GUID format of XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="([a-z]|[A-Z]|[0-9]){8}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){12}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="guids">
		<xs:annotation>
			<xs:documentation>Represents a list of GUIDs separate with a single space.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="(([a-z]|[A-Z]|[0-9]){8}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){12})*( ([a-z]|[A-Z]|[0-9]){8}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){4}-([a-z]|[A-Z]|[0-9]){12})*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PersonName">
		<xs:sequence>
			<xs:element name="NameLine" type="NameLineType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name or part of a name defined as a free format text. </xs:documentation>
					<xs:documentation source="DQ">Unparsed or complimentary data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="PrecedingTitle" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>His Excellency,Estate of the Late ...</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Title" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Greeting title. Example: Mr, Dr, Ms, Herr, etc.</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="FirstName" minOccurs="0">
				<xs:annotation>
					<xs:documentation>E.b. John in John Jeckson</xs:documentation>
					<xs:documentation source="DQ">Can be an initial if the full name is not known.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="MiddleName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Middle name (essential part of the name for many nationalities). Represents the position of the name in the name string. Example: Sakthi in "Nivetha Sakthi Shantha". Can have multiple middle names.</xs:documentation>
					<xs:documentation source="DQ">Can be an initial if the full name is not known.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="NamePrefix" minOccurs="0">
				<xs:annotation>
					<xs:documentation>de, van, van de, von, etc. Example: Derick de Clarke</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LastName" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Can be Given Name, Christian Name, Surname, family name, etc.</xs:documentation>
					<xs:documentation source="DQ">Can be an initial if the full name is not known.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="OtherName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>All other names, e.g.: Yousuf Khan al Hatab al Sayad</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="Type" type="string" use="optional">
								<xs:annotation>
									<xs:documentation>Type of Other name. Example: Official, Un-official, abbreviation, initial, etc</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attribute name="NameType" type="string">
								<xs:annotation>
									<xs:documentation>Defines the name type of Other Name. Example: Maiden Name, Patronymic name, Matronymic name, etc</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Alias" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Nick Name, Pet name, etc..</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="Type" type="string">
								<xs:annotation>
									<xs:documentation>Type of Alias. Example: Official, UnOfficial, Close Circle, etc</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attribute name="NameType" type="string">
								<xs:annotation>
									<xs:documentation>Defines the name type of Alias. Example: Nick Name, Pet Name, etc</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="GenerationIdentifier" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Jnr, Thr Third, III</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Suffix" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Could be compressed initials - PhD, VC, QC</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="Type" type="string">
								<xs:annotation>
									<xs:documentation>Defines the type of Suffix. Example: Compressed Initials, Full suffixes, etc</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="GeneralSuffix" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Deceased, Retired ...</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Type" type="string">
			<xs:annotation>
				<xs:documentation>Type of Name of a person. Example: Full name, Former Name, Known As, etc.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other"/>
	</xs:complexType>
	<xs:complexType name="OrganisationNameDetails">
		<xs:sequence>
			<xs:element name="NameLine" type="NameLineType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Free format text that defines the organisation name or parts of it.</xs:documentation>
					<xs:documentation source="DQ">Unparsed or complimentary data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name of the organisation. Example: MSI Business Solutions in "MSI Business Solutions Pty. Ltd" or the whole name itself </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Type" type="string" form="qualified">
			<xs:annotation>
				<xs:documentation>Type of Organisation Name. Example: Former name, Known as, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other"/>
	</xs:complexType>
	<xs:complexType name="SubdivisionNameDetails">
		<xs:sequence>
			<xs:element name="NameLine" type="NameLineType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Free format text that defines the subdivision name or parts of it.</xs:documentation>
					<xs:documentation source="DQ">Unparsed or complimentary data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Name of the subdivision.
Example: Research and development.</xs:documentation>
					<xs:documentation source="DQ">Can be abbreviated.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:anyAttribute namespace="##other"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Type" type="string" form="qualified">
			<xs:annotation>
				<xs:documentation>Type of subdivision Name. Example: Former name, Known as, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other"/>
	</xs:complexType>
	<xs:complexType name="NameLineType">
		<xs:simpleContent>
			<xs:extension base="string">
				<xs:attribute name="Type" type="string" use="required">
					<xs:annotation>
						<xs:documentation>Type of data defined as a free format text. Example: Former name, Nick name, Known as, etc. or anything else to help identify the line as part of the name.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="NameType" type="string">
					<xs:annotation>
						<xs:documentation>Clarifies the meaning of the element. Example: First Name can be Christian name, Given name, first name, etc. </xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:anyAttribute namespace="##other"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:element name="PersonName">
		<xs:annotation>
			<xs:documentation>Container for person name details.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="PersonName">
					<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="id" type="guid">
						<xs:annotation>
							<xs:documentation>Use this attribute for uniuqe identification of the containing element within the application boundaries and beyond. It is not a unique ID of a person - use other elements and attributes for that.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:extension>
			</xs:complexContent>
		</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="OrganisationNameDetails">

					<xs:sequence>
						<xs:element ref="SubdivisionName" minOccurs="0"/>
						<!--
						<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="id" type="guid">
						<xs:annotation>
							<xs:documentation>Use this attribute for uniuqe identification of the containing element within the application boundaries and beyond. It is not a unique ID of an organisation - use other elements and attributes for that.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</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="SubdivisionNameDetails">
					<xs:sequence minOccurs="0">
						<xs:element ref="SubdivisionName"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
