<?xml version="1.0"?>
<xs:schema
    targetNamespace="urn:ietf:params:xml:ns:geopriv:relativeLoc"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:relLoc="urn:ietf:params:xml:ns:geopriv:relativeLoc"
    xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
    xmlns:xml="http://www.w3.org/XML/1998/namespace"
    elementFormDefault="qualified" attributeFormDefault="unqualified">
    
    
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
                schemaLocation="xml.xsd"/>
  <xs:import namespace="urn:ietf:params:xml:ns:pidf:geopriv10"
                schemaLocation="geopriv10.xsd"/>
  <xs:import
         namespace="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
         schemaLocation="civicAddress.xsd"/>
  <xs:import namespace="http://www.opengis.net/gml"
                schemaLocation="GML-3.1.1/base/geometryBasic2d.xsd"/>


  <xs:complexType name="referenceLocation">
    <xs:complexContent>
      <xs:choice>
        <xs:element ref="ca:civicAddress"/>
        <xs:element ref="gml:Point"/>
      </xs:choice>
    </xs:complexContent>
  </xs:complexType>
  
  
  <xs:complexType name="offset">
    <xs:complexContent>
      <xs:restriction base="xs:anyType">
        <xs:sequence>
          <xs:element name="x" type="xs:decimal"/>
          <xs:element name="y" type="xs:decimal"/>
          <xs:element name="z" type="xs:decimal"
              minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="uom" type="xs:anyURI" default="urn:ogc:def:uom:EPSG::9001"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="relLoc">
    <xs:complexContent>
      <xs:sequence>
        <xs:element name="referenceLoc" type="relLoc:referenceLocation"
            minOccurs="1" maxOccurs="1"/>
        <xs:element name="xOrientation" type="gml:AngleType"
            minOccurs="1" maxOccurs="1"/>
        <xs:element name="offset" type="relLoc:offset"/>
      </xs:sequence>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="relativeLocation" type="refLoc:relLoc"/>

</xs:schema>

