<?xml version="1.0" encoding="utf-8"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" 
			targetNamespace="http://www.ediel.no/schemas/public/nubix/MeteringPointIdRequest"
			xmlns:nubix="http://www.ediel.no/schemas/public/nubix/MeteringPointIdRequest" 
			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
      MeteringPointIdRequest Schema.
      Copyright 2009 Statnett SF
    </xsd:documentation>
		<xsd:documentation xml:lang="en">
      Revision 14.04.2009
    </xsd:documentation>
	</xsd:annotation>
	<xsd:element name="MeteringPointIdRequest" type="nubix:MeteringPointIdRequestType" />
	<xsd:complexType name="MeteringPointIdRequestType">
		<xsd:sequence>
			<xsd:element name="RequestId" type="nubix:RequestIdType" minOccurs="1" maxOccurs="1" />
			<xsd:element name="Requestor" type="nubix:RequestorType" minOccurs="1" maxOccurs="1" />
			<xsd:element name="Customers">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:annotation>
							<xsd:documentation>A valid request document may contain a sequence of either DomesticCustomer or CommercialCustomer, but not both.</xsd:documentation>
						</xsd:annotation>
						<xsd:choice>
							<xsd:element name="DomesticCustomer" type="nubix:DomesticCustomerType" minOccurs="1" maxOccurs="unbounded" />
							<xsd:element name="CommercialCustomer" type="nubix:CommercialCustomerType" minOccurs="1" maxOccurs="unbounded" />
						</xsd:choice>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="DomesticCustomerType">
		<xsd:sequence minOccurs="1" maxOccurs="1">
			<xsd:element name="LastName" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="MiddleName" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="FirstName" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="BirthDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
			<xsd:element name="MeterNumber" type="nubix:MeterNumberType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="Addresses" minOccurs="1" maxOccurs="1">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Address" type="nubix:AddressType" minOccurs="1" maxOccurs="1" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CommercialCustomerType">
		<xsd:sequence minOccurs="1" maxOccurs="1">
			<xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="OrgNo" type="nubix:OrgNoType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="MeterNumber" type="nubix:MeterNumberType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="Addresses" minOccurs="1" maxOccurs="1">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Address" type="nubix:AddressType" minOccurs="1" maxOccurs="1" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="AddressType">
		<xsd:sequence>
			<xsd:element name="Address1" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="Address2" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="ResidentialUnitId" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="PostCode" type="nubix:PostCodeType" minOccurs="1" maxOccurs="1" />
			<xsd:element name="Location" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="CountryCode" type="xsd:NMTOKEN" minOccurs="1" maxOccurs="1" default="NO" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="GLNType">
		<xsd:annotation>
			<xsd:documentation>Global Location Number</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{13}" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="MeterNumberType">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="50"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="OrgNoType">
		<xsd:annotation>
			<xsd:documentation>Swedish and Norwegian org.nos.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{6}\-?\d{4}|\d{9}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="PostCodeType">
		<xsd:annotation>
			<xsd:documentation>Norwegian and Swedish post codes</xsd:documentation>
			<xsd:documentation>Example values: 0301 (Norway), 555 11 (Sweden)</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{4}|\d{3}\s\d{2}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="RequestIdType">
		<xsd:annotation>
			<xsd:documentation>
			   An unique request id generated by requestor identifying a specific MeteringPointIdRequest
			   This unique id must not be removed or replaced by the gridowner recieving the request. 
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string" />
	</xsd:simpleType>
	<xsd:complexType name="RequestorType">
		<xsd:sequence minOccurs="1" maxOccurs="1">
			<xsd:element name="GLN" type="nubix:GLNType" minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="IdType">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="35"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="MeteringPointIdType">
		<xsd:annotation>
			<xsd:documentation>According to GSRN (GS1)</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:length value="18" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
