[Search] [txt|pdfized|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01                                                         
Internet Draft                                                J. Cuellar
Document: draft-cuellar-geopriv-lo-ml-01.txt                 C. Guenther
                                                              Siemens AG

Expires in six months                                          June 2003

                Geopriv Location Object Markup Language


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026 [1].

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
        http://www.ietf.org/ietf/1id-abstracts.txt
   The list of Internet-Draft Shadow Directories can be accessed at
        http://www.ietf.org/shadow.html.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This draft presents and illustrates a foundational version of an
   markup language suitable for representing the Geopriv Location
   Object. This language is defined by means of an XML schema. In
   addition, we compile a list of open issues that the Geopriv Working
   Group must solve in order to allow for precise definitions of
   Location Object data formats.

Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119 [2].




   Cuellar, Guenther          Expires - December 2003               1

               Geopriv Location Object Markup Language      June 2003


Table of Contents

   1. Introduction...................................................2
   2. Geopriv LO Markup Language.....................................3
      2.1. Overview..................................................3
      2.2. Schema Element Start Tag..................................4
      2.3. LO Element................................................4
      2.4. Target Element............................................5
      2.5. Device Element............................................6
      2.6. RM Element................................................8
      2.7. LR Element................................................9
      2.8. LR Credential Element....................................10
      2.9. LR PoP Element...........................................11
      2.10. Rule Element............................................12
      2.11. Location Element........................................13
         2.11.1. Latitude, Longitude, Altitude and Precision........15
         2.11.2. Civil..............................................16
         2.11.3. Time Zone..........................................17
         2.11.4. Sighting Time......................................18
         2.11.5. Motion and Direction Vectors.......................18
      2.12. Time to Live Element....................................18
   3. XML Schema Listing............................................18
   4. XML LO Instance...............................................28
   5. Note on Validation............................................31
   6. References....................................................31
   7. Author's Addresses............................................31
   8. Full Copyright Statement......................................32

1.  Introduction

   This draft aims at providing a foundation of a markup language
   suitable for representing all data fields of the Geopriv Location
   Object (LO) as required in [3]. We present and illustrate an XML
   schema defining such a markup language. Up to now, we have
   concentrated on the question of how to represent the required data by
   means of an XML language, only touching the security and privacy
   issues concerning the Location Object.

   Even at this early stage of developing a suitable Geopriv Location
   Object (LO) data format, it has become very clear that the Geopriv
   Working Group has to arrive at more explicit descriptions of the
   content of required data fields in order to allow for precise
   definitions of appropriate LO data formats. To give just one example,
   the Geopriv Working Group should explicitly determine which types of
   Location Recipient (LR) Credentials are to be supported. Therefore,
   we shall also utilize this draft to compile a list of general open
   issues that must be solved by the Geopriv Working Group in order to
   be able to complete its work successfully. These general open issues
   are entirely independent of a particular LO data format (such as XML

   Cuellar, Guenther          Expires - December 2003               2

               Geopriv Location Object Markup Language      June 2003


   in case of this draft), but their solution is simply a prerequisite
   to any sensible definition of such a data format. Additionally, we
   shall collect some open issues that are related to the definition of
   an XML LO.

   Based on the solutions of the general and XML related open issues,
   future versions of this draft will make the Location Object (LO)
   markup language introduced in this draft more precise in terms of
   representing identity, privacy policy and location information. We
   will investigate how security and privacy requirements on the
   Location Object can be satisfied by means of, for instance, the XML
   Signature and XML Encryption languages, the XML Access Control Markup
   Language (XACML) and the XML Key Management Specification (XKMS). In
   addition, we will make proposals how this XML LO can be bound to
   different Using Protocols.

2.  Geopriv LO Markup Language

2.1.  Overview

   The XML schema listed completely in chapter 3 specifies an XML
   language that allows for the following top-level XML elements:

   - LO (Location Object):
     comprises all of the subsequent elements, the only mandatory of
     which is the Target element while all other elements are optional.
   - Target:
     contains an identifier for the Target which can be of non-
     anonymous, anonymous or of indeterminate type.
   - Device:
     contains an identifier for the Device which can be a phone number,
     an IP address, or of anonymous or indeterminate type.
   - RM (Rule Maker):
     contains an identifier for the Rule Maker (RM) which can be of
     non-anonymous, anonymous or of indeterminate type.
   - LR (Location Recipient):
     contains an identifier for the LR which can be of non-anonymous,
     anonymous or of indeterminate type; can also provide the
     information whether this identifier is a single or multi cast
     identifier.
   - LR Credential (Location Recipient Credential):
     contains credentials of the Location Recipient.
   - LR PoP (Location Recipient Proof of Possession of Credential):
     contains the data that allows for verifying that the LR is in fact
     in possession of a certain credential.
   - Rule:
     contains an URI of an Applicable Rule, a Limited Rule or both.
   - Location:
     contains one or more Location Information child elements each of
     which can be composed of one or more Location Representation child
     elements and a Sighting Time element. Motion and Direction Vector
     as well as Precision and Confidence elements are also included
     here.

   Cuellar, Guenther          Expires - December 2003               3

               Geopriv Location Object Markup Language      June 2003


   - Time to Live:
     contains the point of time until when Location Information can be
     considered current.

   Subsequent paragraphs illustrate the corresponding LO markup language
   in greater detail.

2.2.  Schema Element Start Tag

   As usual, the schema element start tag defines basic properties of
   the corresponding XML language (the line numbers are, of course, not
   part of the XML schema, but merely for easier referencing):

     1:  <xs:schema
     2:    targetNamespace="urn:ietf:geopriv:lo:0.0.4"
     3:    xmlns:gplo="urn:ietf:geopriv:lo:0.0.4"
     4:    xmlns:xs="http://www.w3.org/2001/XMLSchema"
     5:    elementFormDefault="qualified"
     6:    attributeFormDefault="unqualified"
     7:    version="0.0.4">

   In line 4, the W3C schema language namespace ôhttp://www.w3.org/2001/
   XMLSchema" is linked to the prefix ôxsö. In line 3, the prefix
   ôgploö, which stands for ôgeopriv LOö, is associated to the namespace
   ôurn:ietf:geopriv:lo:0.0.4ö. This URI also defines the target
   namespace of this schema (line 2). The value of the attribute
   ôversionö indicates a (up to now, fictive) version number of this
   schema and the corresponding XML language.


2.3.  LO Element

   The LO element is the element of highest level within the LO markup
   language. It is defined as follows:

     8:  <xs:element name="LocationObject"
                     type="gplo:LocationObjectType"/>

     9:  <xs:complexType name="LocationObjectType">
    10:    <xs:all>
    11:      <xs:element ref="gplo:Target"/>
    12:      <xs:element ref="gplo:Device" minOccurs="0"/>
    13:      <xs:element ref="gplo:RuleMaker" minOccurs="0"/>
    14:      <xs:element ref="gplo:LocationRecipient" minOccurs="0"/>
    15:      <xs:element ref="gplo:LocationRecipientCredential"
                         minOccurs="0"/>
    16:      <xs:element ref="gplo:LocationRecipientPoPofCredential"
                         minOccurs="0"/>
    17:      <xs:element ref="gplo:Rule" minOccurs="0"/>
    18:      <xs:element ref="gplo:Location" minOccurs="0"/>
    19:      <xs:element ref="gplo:TimeToLive" minOccurs="0"/>
    20:    </xs:all>
    21:  </xs:complexType>

   Cuellar, Guenther          Expires - December 2003               4

               Geopriv Location Object Markup Language      June 2003



   Thus, each valid LocationObject element can be composed of the child
   elements ôTargetö (line 11), ..., and ôTimeToLiveö (line 19). The
   Target element is the only child element of the LocationObject
   element that is mandatory. Each other child element is optional and
   can occur at most once; the order of occurrence is arbitrary (xs:all,
   line 10).

   Open Issue 1 (general):
        Which of the required LO data fields listed in [3] shall be
        mandatory to the LO?

2.4.  Target Element

   In line 11, the definition of the Target element is referenced to the
   one given below. In essence, the Target element has a child element
   TargetIdentity and a grandchild element TargetIdentifier whose
   content is of type ôxs:stringö, and which can be equipped with the
   optional attributes ôIdentifierTypeö and ôNameSpaceö. Permitted
   values of the IdentifierType attribute are ôNonAnonymousö,
   ôAnonymousö and ôAnyö. The latter attribute value might indicate an
   indeterminate or unknown or concealed type of Target identifier.

    22:  <xs:element name="Target" type="gplo:TargetType"/>

    23:  <xs:complexType name="TargetType">
    24:    <xs:sequence>
    25:      <xs:element name="TargetIdentity">
    26:        <xs:complexType>
    27:          <xs:choice>
    28:            <xs:element name="TargetIdentifier"
                               type="gplo:TargetIdentifierType"/>
    29:            <xs:any namespace="##other" processContents="lax"/>
    30:          </xs:choice>
    31:        </xs:complexType>
    32:      </xs:element>
    33:    </xs:sequence>
    34:  </xs:complexType>

    35:  <xs:complexType name="TargetIdentifierType">
    36:    <xs:simpleContent>
    37:      <xs:extension base="xs:string">
    38:        <xs:attributeGroup ref="gplo:TargetIdentifierAttribute"/>
    39:      </xs:extension>
    40:    </xs:simpleContent>
    41:  </xs:complexType>

    42:  <xs:attributeGroup name="TargetIdentifierAttribute">
    43:    <xs:attribute name="IdentifierType" use="optional">
    44:      <xs:simpleType>
    45:        <xs:restriction base="xs:string">
    46:          <xs:enumeration value="NonAnonmymous"/>
    47:          <xs:enumeration value="Anonymous"/>

   Cuellar, Guenther          Expires - December 2003               5

               Geopriv Location Object Markup Language      June 2003


    48:          <xs:enumeration value="Any"/>
    49:        </xs:restriction>
    50:      </xs:simpleType>
    51:    </xs:attribute>
    52:    <xs:attribute name="NameSpace" type="xs:anyURI"
                         use="optional"/>
    53:    <xs:anyAttribute processContents="lax"/>
    54:  </xs:attributeGroup>

   A simple instance of the Target element definition could look like as
   follows:

         <Target>
           <TargetIdentity>
             <TargetIdentifier IdentifierType="Anonymous">
               ginefohcsT sennaH
             </TargetIdentifier>
           </TargetIdentity>
         </Target>

   Line 52 defines the attribute NameSpace which is optional to the
   TargetIdentifier element, and whose value must be an URI. In
   conjunction with an IdentifierType attribute value ôAnonymousö, this
   attribute could be used to point to a set of identifiers from which
   the anonymous Target identifier, i.e. the content of the
   TargetIdentifier element, had been taken.

   Open Issue 2 (XML):
        Pointing to a set of identifiers by means of an URI - is this
        an appropriate mechanism for handling anonymous identifiers?

   Line 29 in combination with line 27 allows the TargetIdentifier
   element to be substituted by any other element defined within a
   namespace different from the namespace of this schema. The purpose of
   this mechanism is to support other identity providing data formats
   such as specified by the Liberty Alliance Project, for example.

   Open Issue 3 (general):
        Which identity providing data formats shall be supported by the
        Geopriv LO?


2.5.  Device Element

   The definition of the Device element is quite similar to the
   definition of the Target element û of course with the exception that
   the IdentifierType attribute of the DeviceIdentifier element can have
   the values ôPhoneNumberö, ôIPAddressö, ôAnonymousö and ôAnyö:

    55:  <xs:element name="Device" type="gplo:DeviceType"/>

    56:  <xs:complexType name="DeviceType">
    57:    <xs:sequence>

   Cuellar, Guenther          Expires - December 2003               6

               Geopriv Location Object Markup Language      June 2003


    58:      <xs:element name="DeviceIdentity">
    59:        <xs:complexType>
    60:          <xs:choice>
    61:            <xs:element name="DeviceIdentifier"
                               type="gplo:DeviceIdentifierType"/>
    62:            <xs:any namespace="##other" processContents="lax"/>
    63:          </xs:choice>
    64:        </xs:complexType>
    65:      </xs:element>
    66:    </xs:sequence>
    67:  </xs:complexType>

    68:  <xs:complexType name="DeviceIdentifierType">
    69:    <xs:simpleContent>
    70:      <xs:extension base="xs:string">
    71:        <xs:attributeGroup ref="gplo:DeviceIdentifierAttribute"/>
    72:      </xs:extension>
    73:    </xs:simpleContent>
    74:  </xs:complexType>

    75:  <xs:attributeGroup name="DeviceIdentifierAttribute">
    76:    <xs:attribute name="IdentifierType" use="optional">
    77:      <xs:simpleType>
    78:        <xs:restriction base="xs:string">
    79:          <xs:enumeration value="PhoneNumber"/>
    80:          <xs:enumeration value="IPAddress"/>
    81:          <xs:enumeration value="Anonymous"/>
    82:          <xs:enumeration value="Any"/>
    83:        </xs:restriction>
    84:      </xs:simpleType>
    85:    </xs:attribute>
    86:    <xs:attribute name="NameSpace" type="xs:anyURI"
                         use="optional"/>
    87:    <xs:anyAttribute processContents="lax"/>
    88:  </xs:attributeGroup>

   An example of an Device element complying with this syntax is:

         <Device>
           <DeviceIdentity>
             <DeviceIdentifier IdentifierType="PhoneNumber">
               017167239870
             </DeviceIdentifier>
           </DeviceIdentity>
         </Device>



   Open Issue 4 (general):
        Which types of Devices and Device identifiers shall be supported
        by the LO? (phone numbers, IP addresses, anonymous ones and
        ...?)


   Cuellar, Guenther          Expires - December 2003               7

               Geopriv Location Object Markup Language      June 2003


2.6.  RM Element

   Up to now, the RM element is defined in a way that allows for
   representing a non-anonymous, anonymous or indeterminate RM
   identifier, similar to the Target element. This, of course, will not
   be sufficient in a final version of this markup language: additional
   features will have to be specified in order to be able to satisfy the
   privacy requirements on the LO.

    89:  <xs:element name="RuleMaker" type="gplo:RuleMakerType"/>

    90:  <xs:complexType name="RuleMakerType">
    91:    <xs:sequence>
    92:      <xs:element name="RuleMakerIdentity">
    93:        <xs:complexType>
    94:          <xs:choice>
    95:            <xs:element name="RuleMakerIdentifier"
                               type="gplo:RuleMakerIdentifierType"/>
    96:            <xs:any namespace="##other" processContents="lax"/>
    97:          </xs:choice>
    98:        </xs:complexType>
    99:      </xs:element>
   100:    </xs:sequence>
   101:  </xs:complexType>

   102:  <xs:complexType name="RuleMakerIdentifierType">
   103:    <xs:simpleContent>
   104:      <xs:extension base="xs:string">
   105:        <xs:attributeGroup
                   ref="gplo:RuleMakerIdentifierAttribute"/>
   106:      </xs:extension>
   107:    </xs:simpleContent>
   108:  </xs:complexType>

   109:  <xs:attributeGroup name="RuleMakerIdentifierAttribute">
   110:    <xs:attribute name="IdentifierType" use="optional">
   111:      <xs:simpleType>
   112:        <xs:restriction base="xs:string">
   113:          <xs:enumeration value="NonAnonymous"/>
   114:          <xs:enumeration value="Anonymous"/>
   115:          <xs:enumeration value="Any"/>
   116:        </xs:restriction>
   117:      </xs:simpleType>
   118:    </xs:attribute>
   119:    <xs:attribute name="NameSpace" type="xs:anyURI"
                         use="optional"/>
   120:    <xs:anyAttribute processContents="lax"/>
   121:  </xs:attributeGroup>

   An example of a RuleMaker element could be:

         <RuleMaker>
           <RuleMakerIdentity>

   Cuellar, Guenther          Expires - December 2003               8

               Geopriv Location Object Markup Language      June 2003


             <RuleMakerIdentifier IdentifierType="NonAnonymous">
               Siemens AG
             </RuleMakerIdentifier>
           </RuleMakerIdentity>
         </RuleMaker>


2.7.  LR Element

   The LR element is the last of the identifier storing child elements
   of the Location Object element. Its definition is modeled on the
   syntax of the Target, Device and RM elements. Its
   LocationRecipientIdentifier grandchild element can be of type
   ôNonAnonymousö, ôAnonymousö and ôAnyö. The optional attribute
   ôCastTypeö of the LocationRecipientIdentifier element can indicate
   whether the identifier is a single or a multi cast identifier:

   122:  <xs:element name="LocationRecipient"
                     type="gplo:LocationRecipientType"/>

   123:  <xs:complexType name="LocationRecipientType">
   124:    <xs:sequence>
   125:      <xs:element name="LocationRecipientIdentity">
   126:        <xs:complexType>
   127:          <xs:choice>
   128:            <xs:element name="LocationRecipientIdentifier"
                       type="gplo:LocationRecipientIdentifierType"/>
   129:            <xs:any namespace="##other" processContents="lax"/>
   130:          </xs:choice>
   131:        </xs:complexType>
   132:      </xs:element>
   133:    </xs:sequence>
   134:  </xs:complexType>

   135:  <xs:complexType name="LocationRecipientIdentifierType">
   136:    <xs:simpleContent>
   137:      <xs:extension base="xs:string">
   138:        <xs:attributeGroup
                   ref="gplo:LocationRecipientIdentifierAttribute"/>
   139:      </xs:extension>
   140:    </xs:simpleContent>
   141:  </xs:complexType>

   142:  <xs:attributeGroup name="LocationRecipientIdentifierAttribute">
   143:    <xs:attribute name="IdentifierType" use="optional">
   144:      <xs:simpleType>
   145:        <xs:restriction base="xs:string">
   146:          <xs:enumeration value="NonAnonymous"/>
   147:          <xs:enumeration value="Anonymous"/>
   148:          <xs:enumeration value="Any"/>
   149:        </xs:restriction>
   150:      </xs:simpleType>
   151:    </xs:attribute>

   Cuellar, Guenther          Expires - December 2003               9

               Geopriv Location Object Markup Language      June 2003


   152:    <xs:attribute name="CastType" use="optional">
   153:      <xs:simpleType>
   154:        <xs:restriction base="xs:string">
   155:          <xs:enumeration value="SingleCast"/>
   156:          <xs:enumeration value="MultiCast"/>
   157:        </xs:restriction>
   158:      </xs:simpleType>
   159:    </xs:attribute>
   160:    <xs:attribute name="NameSpace" type="xs:anyURI"
                         use="optional"/>
   161:    <xs:anyAttribute processContents="lax"/>
   162:  </xs:attributeGroup>

   Example:

         <LocationRecipient>
           <LocationRecipientIdentity>
             <LocationRecipientIdentifier
                IdentifierType="NonAnonymous"
                CastType="MultiCast">
                  CT IC 3 Mobile Security Team
             </LocationRecipientIdentifier>
           </LocationRecipientIdentity>
         </LocationRecipient>

   Open Issue 5 (general):
        Which types of data sub-fields shall the LR data
        field support? (For example, data sub-fields for phone numbers
        or IP addresses of LRs?)


2.8.  LR Credential Element

   Up to now, the Geopriv Working Group has not determined which types
   of Credentials are to be supported by the LR Credential data field.
   Thus, for now, we have specified in the definition of the
   LocationRecipientCredential element that credentials are of
   unspecific type ôxs:stringö (line 166-170). The element names
   ôPKIXCertificateö, ..., ôIDandSharedSecretö indicate some credential
   types that could be supported by the LR Credential data field. Line
   165 (maxOccurs= öunboundedö) allows several credentials to be
   included in the LocationRecipientCredential element:

   163:  <xs:element name="LocationRecipientCredential"
                     type="gplo:LocationRecipientCredentialType"/>

   164:  <xs:complexType name="LocationRecipientCredentialType">
   165:    <xs:choice maxOccurs="unbounded">
   166:      <xs:element name="PKIXCertificate" type="xs:string"/>
   167:      <xs:element name="IDandPublicKey" type="xs:string"/>
   168:      <xs:element name="HashandURIofPKIXCertificate"
                         type="xs:string"/>
   169:      <xs:element name="PKIXKeyIdentifier" type="xs:string"/>

   Cuellar, Guenther          Expires - December 2003              10

               Geopriv Location Object Markup Language      June 2003


   170:      <xs:element name="IDandSharedSecret" type="xs:string"/>
   171:    </xs:choice>
   172:  </xs:complexType>

   A vacuous example of a LocationRecipientCredential element:

         <LocationRecipientCredential>
           <PKIXCertificate>...</PKIXCertificate>
         </LocationRecipientCredential>

   Open Issue 6 (general):
        Which credential types shall be supported by the LR Credential
        data field?

2.9.  LR PoP Element

   The Geopriv Working Group should define explicitly the types of PoP
   (Proof of Possession of Credential) that shall be supported in the
   corresponding data field. The simplest way of providing such a PoP
   may be signing an appropriate statement on the result of a
   successfully executed challenge-response procedure. We indicate this
   possibility rudimentarily in the current definition of the
   LocationRecipientPoPofCredential element:

   173:  <xs:element name="LocationRecipientPoPofCredential">
   174:    <xs:complexType>
   175:      <xs:choice>
   176:        <xs:element name="ChallengeResponse" type="xs:string"/>
   177:      </xs:choice>
   178:    </xs:complexType>
   179:  </xs:element>

   For adding an XML digital signature to the statement contained in
   line 176, the schema definition could be modified as follows:

   M01:  <xs:schema
   M02:     targetNamespace="urn:ietf:geopriv:lo:0.0.4"
   M03:       xmlns:geopriv="urn:ietf:geopriv:lo:0.0.4"
   M04:       xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
   M05:       xmlns:xs="http://www.w3.org/2001/XMLSchema"
   M06:       elementFormDefault="qualified"
   M07:       attributeFormDefault="unqualified"
   M08:       version="0.0.4">

   M09:     <xs:import
              namespace="http://www.w3.org/2000/09/xmldsig#"
              schemaLocation="http://www.w3.org/TR/xml-dsig-core/
                xmldsig-core-schema.xsd"/>

   M10:     .......

   M11:     <xs:element name="LocationRecipientPoPofCredential">
   M12:       <xs:complexType>

   Cuellar, Guenther          Expires - December 2003              11

               Geopriv Location Object Markup Language      June 2003


   M13:         <xs:sequence>
   M14:           <xs:element name="ChallengeResponse"
                              type="xs:string"/>
   M15:           <xs:element ref="ds:Signature"/>
   M16:         </xs:sequence>
   M17:       </xs:complexType>
   M18:     </xs:element>

   M19:     .......

   In line M04, the W3C XML Signature namespace is assigned to the
   prefix ôdsö. The place at which an XML validator can find the XML
   Signature language definitions is identified in line M09. Finally,
   line M15 makes a ds:Signature element mandatory.

   Open Issue 7 (general):
        Which types of LR PoP data fields shall be supported?
        (Signatures on Challenge-Response procedures? However, we also
        need ...?)

2.10.  Rule Element

   As described in the Geopriv Requirements draft [3], the Rule Field of
   the LO ôMAY be a referral to an applicable Rule (for instance, an URI
   to a full Rule), or it MAY contain a Limited Rule, or bothö. In the
   current version of the LO markup language, this requirement is
   implemented as follows:

   180:  <xs:element name="Rule" type="gplo:RuleType"/>

   181:  <xs:complexType name="RuleType">
   182:    <xs:choice>
   183:      <xs:element name="ApplicableRule"
                         type="gplo:ApplicableRuleType"/>
   184:      <xs:element name="LimitedRule"
                         type="gplo:LimitedRuleType"/>
   185:      <xs:element name="ApplicableAndLimitedRule">
   186:        <xs:complexType>
   187:          <xs:all>
   188:            <xs:element name="ApplicableRule"
   189:                        type="gplo:ApplicableRuleType"
   190:                        minOccurs="1"/>
   191:            <xs:element name="LimitedRule"
   192:                        type="gplo:LimitedRuleType"
   193:                        minOccurs="1"/>
   194:          </xs:all>
   195:        </xs:complexType>
   196:      </xs:element>
   197:    </xs:choice>
   198:  </xs:complexType>

   199:  <xs:complexType name="ApplicableRuleType">
   200:    <xs:choice>

   Cuellar, Guenther          Expires - December 2003              12

               Geopriv Location Object Markup Language      June 2003


   201:      <xs:element name="ApplicableRuleURI" type="xs:anyURI"/>
   202:    </xs:choice>
   203:  </xs:complexType>

   204:  <xs:complexType name="LimitedRuleType">
   205:    <xs:choice>
   206:      <xs:element name="LimitedRuleLanguage1" type="xs:string"/>
   207:    </xs:choice>
   208:  </xs:complexType>

   A Rule element could therefore look like as follows:

         <Rule>
           <LimitedRule>
             <LimitedRuleLanguage1>
               Dirk Kroeselberg has no permission to see my location.
             </LimitedRuleLanguage1>
           </LimitedRule>
         </Rule>

   (And this is a Rule language that is in fact ôlimitedö ...)

   Open Issue 8 (general and XML):
        Geopriv must specify or adopt at least one Rule language.
        Furthermore, the mechanism of pointing to an applicable Rule
        must be described explicitly. In case of an XML LO data format,
        the XML Access Control Markup Language (XACML) seems to be a
        natural Rule language candidate - at least with respect to a
        full Rule language. - With regard to what exactly is a Limited
        Rule language supposed to be ôlimitedö?

2.11.  Location Element

   The Location element carries the actual location information. It
   consists of an unbounded number of LocationInformation elements; the
   number of these elements can be zero (line 212). Each
   LocationInformation element allows for arbitrarily many
   LocationRepresentation child elements, and optional child elements
   ôSightingTimeö, ôMotionVectorö and ôDirectionVectorö (line 217-220).
   The LocationRepresentation elements can contain representations of
   location information that are of type ôLatLonAltö (Altitude is
   optional), ôCivilö, or ôTimeZoneö (lines 226-228), as well as of an
   type defined outside the namespace of the LO markup language (for
   instance, developed by OpenGIS), see line 229. In addition, the
   LocationRepresentation element has an optional child element
   ôConfidenceö (line 231), whose content is a decimal number between
   0.0 and 100.0 indicating a level of reliability associated with a
   given Location Representation:

   209:  <xs:element name="Location" type="gplo:LocationType"/>

   210:  <xs:complexType name="LocationType">
   211:    <xs:sequence>

   Cuellar, Guenther          Expires - December 2003              13

               Geopriv Location Object Markup Language      June 2003


   212:      <xs:element name="LocationInformation"
                         type="gplo:LocationInformationType"
                         minOccurs="0"
                         maxOccurs="unbounded"/>
   213:    </xs:sequence>
   214:  </xs:complexType>

   215:  <xs:complexType name="LocationInformationType">
   216:    <xs:sequence>
   217:      <xs:element name="LocationRepresentation"
                         type="gplo:LocationRepresentationType"
                         minOccurs="0"
                         maxOccurs="unbounded"/>
   218:      <xs:element name="SightingTime" type="xs:dateTime"
                         minOccurs="0"/>
   219:      <xs:element name="MotionVector" type="xs:string"
                         minOccurs="0"/>
   220:      <xs:element name="DirectionVector" type="xs:string"
                         minOccurs="0"/>
   221:    </xs:sequence>
   222:  </xs:complexType>

   223:  <xs:complexType name="LocationRepresentationType">
   224:    <xs:sequence>
   225:      <xs:choice>
   226:        <xs:element name="LatLonAlt" type="gplo:LatLonAltType"/>
   227:        <xs:element name="Civil" type="gplo:CivilType"/>
   228:        <xs:element name="TimeZone" type="gplo:TimeZoneType"/>
   229:        <xs:any namespace="##other" processContents="lax"/>
   230:      </xs:choice>
   231:      <xs:element name="Confidence" type="gplo:ConfidenceType"
                         minOccurs="0"/>
   232:    </xs:sequence>
   233:  </xs:complexType>

   The overall structure of an instance of the Location element can be
   seen from the following example, which uses the ôLatLonAltö, ôCivilö
   and ôTimeZoneö types of location representations:

         <Location>
           <LocationInformation>
             <LocationRepresentation>
               <LatLonAlt>.....</LatLonAlt>
               <Confidence>.....</Confidence>
             </LocationRepresentation>
             <LocationRepresentation>
               <Civil>.....</Civil>
             </LocationRepresentation>
             <LocationRepresentation>
               <TimeZone>.....</TimeZone>
             </LocationRepresentation>
             <SightingTime>.....</SightingTime>
             <MotionVector>.....</MotionVector>

   Cuellar, Guenther          Expires - December 2003              14

               Geopriv Location Object Markup Language      June 2003


             <DirectionVector>......</DirectionVector>
           </LocationInformation>
           <LocationInformation>.....</LocationInformation>
         </Location>

2.11.1.  Latitude, Longitude, Altitude and Precision

   Line 226 above points to the following definition of the ôLatLonAltö
   type of location representation: The LatLonAlt element consists of
   the mandatory Latitude and Longitude elements, an optional Altitude
   element and an optional Precision element:

   234:  <xs:complexType name="LatLonAltType">
   235:    <xs:sequence>
   236:      <xs:element name="Latitude" type="gplo:LatitudeType"
                         minOccurs="1"/>
   237:      <xs:element name="Longitude" type="gplo:LongitudeType"
                         minOccurs="1"/>
   238:      <xs:element name="Altitude" type="gplo:AltitudeType"
                         minOccurs="0"/>
   239:      <xs:element name="Precision"
                         type="gplo:LatLonAltPrecisionType"
                         minOccurs="0"/>
   240:    </xs:sequence>
   241:  </xs:complexType>

   Real-world latitude and longitude representations come in (at least)
   three different styles:

   - Example: - 11— 13Æ 57ÆÆ:
     This means: degree, minute and second are represented separately
     by integers contained in certain intervals. We have introduced an
     equivalent XML representation which is abbreviated by
     DegIntMinIntSecInt.

   - Example: 48.1234—:
     This means: degree, minute and second are represented by one
     decimal number contained in a certain interval. We have specified
     an equivalent XML representation abbreviated by DegMinSecDec.

   - Example: - 19— 21.123Æ:
     This means: the degree is represented by an integer, while minute
     and second are represented by one decimal number. We have also
     introduced an equivalent XML representation which is abbreviated
     by DegIntMinSecDec.

   The optional Altitude element whose type is referenced in line 238
   above consists of a positive or negative decimal number representing
   the altitude value with respect to a unit that must be indicated by
   the value of the attribute Unit. The permitted values of the Unit
   attribute are ôMeterö, ôKilometerö, ôFootö, ôYardö and ôMileö.



   Cuellar, Guenther          Expires - December 2003              15

               Geopriv Location Object Markup Language      June 2003


   The content of the optional element Precision (see line 239) is a
   positive decimal number indicating an area within which the Target is
   located. The Precision element has two mandatory attributes at its
   disposal: Area and Unit. The permitted values of the Area attribute
   are ôCircleö, ôSphereö, ôRectangleö and ôCuboidö indicating the shape
   of area, while the permitted values of the Unit attribute are as
   described above. In case the Altitude element is present, the
   semantics of a Precision element of the form

        <Precision Area=öSphereö Unit=öMeterö>58.3</Precision>,

   for instance, could be that the location of the Target is known to be
   contained in a sphere of 58.3 cubic meters around the position
   specified by means of the content of the Latitude, Longitude and
   Altitude elements. There are, of course, many other ways of
   indicating precision, which immediately leads to

   Open Issue 9 (general):
        Which types of precision indications shall be supported within
        the Location Field? Which is the exact semantics of these
        precision indications?


   Instead of listing the schema definitions illustrated in this
   paragraph, we give an example of a full LatLonAlt element:

         <LatLonAlt>
           <Latitude>
             <DegIntMinIntSecInt>
               <Degree>-48</Degree>
               <Minute>8</Minute>
               <Second>23</Second>
             </DegIntMinIntSecInt>
           </Latitude>
           <Longitude>
             <DegIntMinSecDec>
               <Degree>11</Degree>
               <MinuteSecond>34.4667</MinuteSecond>
             </DegIntMinSecDec>
           </Longitude>
           <Altitude Unit="Meter">521.27</Altitude>
           <Precision Area="Sphere" Unit="Meter">58.3</Precision>
         </LatLonAlt>


2.11.2.  Civil

   There has been a long discussion within Geopriv on how the civil type
   of location representation should look like. Location domains such as
   ôstateö and ôdistrictö are not appropriate for all countries. Since
   we are not sure whether that discussion can be seen as finished, we
   include this problem in the list of open issues:


   Cuellar, Guenther          Expires - December 2003              16

               Geopriv Location Object Markup Language      June 2003


   Open Issue 10 (general):
        How exactly should civil location representations look like?

   In order to circumvent some of the problems, we have defined the
   civil type of location representation as follows:

   242:  <xs:complexType name="CivilType">
   243:    <xs:sequence>
   244:      <xs:element name="Domain" maxOccurs="unbounded">
   245:        <xs:complexType>
   246:          <xs:simpleContent>
   247:            <xs:extension base="xs:string">
   248:              <xs:attribute name="Type" type="xs:string"/>
   249:              <xs:anyAttribute processContents="lax"/>
   250:            </xs:extension>
   251:          </xs:simpleContent>
   252:        </xs:complexType>
   253:      </xs:element>
   254:    </xs:sequence>
   255:  </xs:complexType>

   Thus, the Civil element introduced in line 227 above consists of an
   unbounded sequence of Domain elements, whose content is of type
   ôxs:stringö, and which are equipped with a mandatory but not
   explicitly specified attribute. The intention here is to allow for a
   type of civil location representation that is universal as far as
   possible: The Civil element

         <Civil>
           <Domain Type="Country">Germany</Domain>
           <Domain Type="State">Bavaria</Domain>
           <Domain Type="City">Munich</Domain>
           <Domain Type="Street">Leopoldstrasse</Domain>
           <Domain Type="Number">6</Domain>
         </Civil>

   complies with its schema definition as well as

         <Civil>
           <Domain d1="shi">...</Domain>
           <Domain d2="chome">...</Domain>
           <Domain d3="ban">...</Domain>
         </Civil>

   does.

2.11.3.  Time Zone

   Time zones are a further type of location representation supported by
   the schema definition:

   256:  <xs:simpleType name="TimeZoneType">
   257:    <xs:restriction base="xs:string">

   Cuellar, Guenther          Expires - December 2003              17

               Geopriv Location Object Markup Language      June 2003


   258:      <xs:pattern value="Z|[+\-]?(0[0-9]|1[0-2]):[0-5][0-9]"/>
   259:    </xs:restriction>
   260:  </xs:simpleType>

   Therefore, -08:00, +11:36 and Z (standing for Zulu, i.e. Greenwich
   Mean Time) are valid content of TimeZone elements which have been
   introduced in line 228 above.

2.11.4.  Sighting Time

   The W3C schema language specifications provide the data type
   ôxs:dateTimeö which is suitable for indicating when the location
   information was accurate. So

     <SightingTime>2003-07-14T20:12:34+01:00</SightingTime>

   is a valid SightingTime child element of the LocationInformation
   element.

2.11.5.  Motion and Direction Vectors

   The MotionVector and DirectionVector elements are optional child
   elements of the LocationInformation element and are defined in lines
   219 and 220 as follows:

     <xs:element name="MotionVector" type="xs:string"
                 minOccurs="0"/>
     <xs:element name="DirectionVector" type="xs:string"
                 minOccurs="0"/>

   These definitions are nothing else than place holders since we have
   the following



   Open Issue 11 (general):
        How exactly shall the motion and direction vectors look like and
        what is their semantics?

2.12.  Time to Live Element

   The data type ôxs:dateTimeö is also suitable for indicating until
   when location information can be considered current:

   261:  <xs:element name="TimeToLive" type="xs:dateTime"/>

   Example: <TimeToLive>2003-07-14T20:17:34+01:00</TimeToLive>.



3.  XML Schema Listing



   Cuellar, Guenther          Expires - December 2003              18

               Geopriv Location Object Markup Language      June 2003


   This section contains a complete listing of the XML schema that has
   been illustrated in previous sections. The next section provides a
   simple XML LO instance document that is valid with respect to this
   schema.


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema
     targetNamespace="urn:ietf:geopriv:lo:0.0.4"
     xmlns:gplo="urn:ietf:geopriv:lo:0.0.4"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     elementFormDefault="qualified"
     attributeFormDefault="unqualified"
     version="0.0.4">

   <!-- Start: LO -->

     <xs:element name="LocationObject" type="gplo:LocationObjectType"/>

     <xs:complexType name="LocationObjectType">
       <xs:all>
         <xs:element ref="gplo:Target"/>
         <xs:element ref="gplo:Device" minOccurs="0"/>
         <xs:element ref="gplo:RuleMaker" minOccurs="0"/>
         <xs:element ref="gplo:LocationRecipient" minOccurs="0"/>
         <xs:element ref="gplo:LocationRecipientCredential"
                          minOccurs="0"/>
         <xs:element ref="gplo:LocationRecipientPoPofCredential"
                          minOccurs="0"/>
         <xs:element ref="gplo:Rule" minOccurs="0"/>
         <xs:element ref="gplo:Location" minOccurs="0"/>
         <xs:element ref="gplo:TimeToLive" minOccurs="0"/>
       </xs:all>
     </xs:complexType>

   <!-- End: LO -->

   <!-- Start: Target -->

     <xs:element name="Target" type="gplo:TargetType"/>

     <xs:complexType name="TargetType">
       <xs:sequence>
         <xs:element name="TargetIdentity">
           <xs:complexType>
             <xs:choice>
               <xs:element name="TargetIdentifier"
                           type="gplo:TargetIdentifierType"/>
               <xs:any namespace="##other" processContents="lax"/>
             </xs:choice>
           </xs:complexType>
         </xs:element>
       </xs:sequence>

   Cuellar, Guenther          Expires - December 2003              19

               Geopriv Location Object Markup Language      June 2003


     </xs:complexType>

     <xs:complexType name="TargetIdentifierType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attributeGroup ref="gplo:TargetIdentifierAttribute"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:attributeGroup name="TargetIdentifierAttribute">
       <xs:attribute name="IdentifierType" use="optional">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="NonAnonmymous"/>
             <xs:enumeration value="Anonymous"/>
             <xs:enumeration value="Any"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:attribute name="NameSpace" type="xs:anyURI" use="optional"/>
       <xs:anyAttribute processContents="lax"/>
     </xs:attributeGroup>

   <!-- End: Target -->

   <!-- Start: Device -->

     <xs:element name="Device" type="gplo:DeviceType"/>

     <xs:complexType name="DeviceType">
       <xs:sequence>
         <xs:element name="DeviceIdentity">
           <xs:complexType>
             <xs:choice>
               <xs:element name="DeviceIdentifier"
                           type="gplo:DeviceIdentifierType"/>
               <xs:any namespace="##other" processContents="lax"/>
             </xs:choice>
           </xs:complexType>
         </xs:element>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="DeviceIdentifierType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attributeGroup ref="gplo:DeviceIdentifierAttribute"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:attributeGroup name="DeviceIdentifierAttribute">

   Cuellar, Guenther          Expires - December 2003              20

               Geopriv Location Object Markup Language      June 2003


       <xs:attribute name="IdentifierType" use="optional">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="PhoneNumber"/>
             <xs:enumeration value="IPAddress"/>
             <xs:enumeration value="Anonymous"/>
             <xs:enumeration value="Any"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:attribute name="NameSpace" type="xs:anyURI" use="optional"/>
       <xs:anyAttribute processContents="lax"/>
     </xs:attributeGroup>

   <!-- End: Device -->

   <!-- Start: RM -->

     <xs:element name="RuleMaker" type="gplo:RuleMakerType"/>

     <xs:complexType name="RuleMakerType">
       <xs:sequence>
         <xs:element name="RuleMakerIdentity">
           <xs:complexType>
             <xs:choice>
               <xs:element name="RuleMakerIdentifier"
                           type="gplo:RuleMakerIdentifierType"/>
               <xs:any namespace="##other" processContents="lax"/>
             </xs:choice>
           </xs:complexType>
         </xs:element>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="RuleMakerIdentifierType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attributeGroup ref="gplo:RuleMakerIdentifierAttribute"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:attributeGroup name="RuleMakerIdentifierAttribute">
       <xs:attribute name="IdentifierType" use="optional">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="NonAnonymous"/>
             <xs:enumeration value="Anonymous"/>
             <xs:enumeration value="Any"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:attribute name="NameSpace" type="xs:anyURI" use="optional"/>

   Cuellar, Guenther          Expires - December 2003              21

               Geopriv Location Object Markup Language      June 2003


       <xs:anyAttribute processContents="lax"/>
     </xs:attributeGroup>

   <!-- End: RM -->

   <!-- Start: LR -->

     <xs:element name="LocationRecipient"
                 type="gplo:LocationRecipientType"/>

     <xs:complexType name="LocationRecipientType">
       <xs:sequence>
         <xs:element name="LocationRecipientIdentity">
           <xs:complexType>
             <xs:choice>
               <xs:element name="LocationRecipientIdentifier"
                           type="gplo:LocationRecipientIdentifierType"/>
               <xs:any namespace="##other" processContents="lax"/>
             </xs:choice>
           </xs:complexType>
         </xs:element>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="LocationRecipientIdentifierType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attributeGroup
               ref="gplo:LocationRecipientIdentifierAttribute"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:attributeGroup name="LocationRecipientIdentifierAttribute">
       <xs:attribute name="IdentifierType" use="optional">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="NonAnonymous"/>
             <xs:enumeration value="Anonymous"/>
             <xs:enumeration value="Any"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:attribute name="CastType" use="optional">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="SingleCast"/>
             <xs:enumeration value="MultiCast"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:attribute name="NameSpace" type="xs:anyURI" use="optional"/>
       <xs:anyAttribute processContents="lax"/>

   Cuellar, Guenther          Expires - December 2003              22

               Geopriv Location Object Markup Language      June 2003


     </xs:attributeGroup>

   <!-- End: LR -->

   <!-- Start: LR Credential -->

     <xs:element name="LocationRecipientCredential"
                 type="gplo:LocationRecipientCredentialType"/>

     <xs:complexType name="LocationRecipientCredentialType">
       <xs:choice maxOccurs=öunboundedö>
         <xs:element name="PKIXCertificate" type="xs:string"/>
         <xs:element name="IDandPublicKey" type="xs:string"/>
         <xs:element name="HashandURIofPKIXCertificate"
                     type="xs:string"/>
         <xs:element name="PKIXKeyIdentifier" type="xs:string"/>
         <xs:element name="IDandSharedSecret" type="xs:string"/>
       </xs:choice>
     </xs:complexType>

   <!-- End: LR Credential -->

   <!-- Start: LR PoP -->

     <xs:element name="LocationRecipientPoPofCredential">
       <xs:complexType>
         <xs:choice>
           <xs:element name="ChallengeResponse" type="xs:string"/>
         </xs:choice>
       </xs:complexType>
     </xs:element>

   <!-- End: LR PoP -->

   <!-- Start: Rule -->

     <xs:element name="Rule" type="gplo:RuleType"/>

     <xs:complexType name="RuleType">
       <xs:choice>
         <xs:element name="ApplicableRule"
                     type="gplo:ApplicableRuleType"/>
         <xs:element name="LimitedRule" type="gplo:LimitedRuleType"/>
         <xs:element name="ApplicableAndLimitedRule">
           <xs:complexType>
             <xs:all>
               <xs:element name="ApplicableRule"
                           type="gplo:ApplicableRuleType"
                           minOccurs="1"/>
               <xs:element name="LimitedRule"
                           type="gplo:LimitedRuleType"
                           minOccurs="1"/>
             </xs:all>

   Cuellar, Guenther          Expires - December 2003              23

               Geopriv Location Object Markup Language      June 2003


           </xs:complexType>
         </xs:element>
       </xs:choice>
     </xs:complexType>

     <xs:complexType name="ApplicableRuleType">
       <xs:choice>
         <xs:element name="ApplicableRuleURI" type="xs:anyURI"/>
       </xs:choice>
     </xs:complexType>

     <xs:complexType name="LimitedRuleType">
       <xs:choice>
         <xs:element name="LimitedRuleLanguage1" type="xs:string"/>
       </xs:choice>
     </xs:complexType>

   <!-- End: Rule -->

   <!-- Start: Location -->

     <xs:element name="Location" type="gplo:LocationType"/>

     <xs:complexType name="LocationType">
       <xs:sequence>
         <xs:element name="LocationInformation"
                     type="gplo:LocationInformationType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="LocationInformationType">
       <xs:sequence>
         <xs:element name="LocationRepresentation"
                     type="gplo:LocationRepresentationType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
         <xs:element name="SightingTime" type="xs:dateTime"
                     minOccurs="0"/>
         <xs:element name="MotionVector" type="xs:string"
                     minOccurs="0"/>
         <xs:element name="DirectionVector" type="xs:string"
                     minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="LocationRepresentationType">
       <xs:sequence>
         <xs:choice>
           <xs:element name="LatLonAlt" type="gplo:LatLonAltType"/>
           <xs:element name="Civil" type="gplo:CivilType"/>
           <xs:element name="TimeZone" type="gplo:TimeZoneType"/>

   Cuellar, Guenther          Expires - December 2003              24

               Geopriv Location Object Markup Language      June 2003


           <xs:any namespace="##other" processContents="lax"/>
         </xs:choice>
         <xs:element name="Confidence" type="gplo:ConfidenceType"
                     minOccurs="0"/>
      </xs:sequence>
     </xs:complexType>

     <xs:simpleType name="ConfidenceType">
       <xs:restriction base="xs:decimal">
         <xs:minInclusive value="0.0"/>
         <xs:maxInclusive value="100.0"/>
       </xs:restriction>
     </xs:simpleType>

     <!-- Start: Location: Latitude, Longitude, Altitude -->

     <xs:complexType name="LatLonAltType">
       <xs:sequence>
         <xs:element name="Latitude" type="gplo:LatitudeType"
                     minOccurs="1"/>
         <xs:element name="Longitude" type="gplo:LongitudeType"
                     minOccurs="1"/>
         <xs:element name="Altitude" type="gplo:AltitudeType"
                     minOccurs="0"/>
         <xs:element name="Precision"
                     type="gplo:LatLonAltPrecisionType"
                     minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="LatitudeType">
       <xs:choice>
         <xs:element name="DegIntMinIntSecInt"
                     type="gplo:LatDegIntMinIntSecIntType"/>
         <xs:element name="DegMinSecDec"
                     type="gplo:LatDegMinSecDecType"/>
         <xs:element name="DegIntMinSecDec"
                     type="gplo:LatDegIntMinSecDecType"/>
       </xs:choice>
     </xs:complexType>

     <xs:complexType name="LongitudeType">
       <xs:choice>
         <xs:element name="DegIntMinIntSecInt"
                     type="gplo:LonDegIntMinIntSecIntType"/>
         <xs:element name="DegMinSecDec"
                     type="gplo:LonDegMinSecDecType"/>
         <xs:element name="DegIntMinSecDec"
                     type="gplo:LonDegIntMinSecDecType"/>
       </xs:choice>
     </xs:complexType>

     <xs:complexType name="AltitudeType">

   Cuellar, Guenther          Expires - December 2003              25

               Geopriv Location Object Markup Language      June 2003


       <xs:simpleContent>
         <xs:extension base="xs:decimal">
           <xs:attribute name="Unit" type="gplo:Units" use="required"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:complexType name="LatLonAltPrecisionType">
       <xs:simpleContent>
         <xs:extension base="gplo:PositiveDecimal">
           <xs:attribute name="Area" type="gplo:Areas" use="required"/>
           <xs:attribute name="Unit" type="gplo:Units" use="required"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:complexType name="LatDegIntMinIntSecIntType">
       <xs:sequence>
         <xs:element name="Degree" type="gplo:LatDegIntType"/>
         <xs:element name="Minute" type="gplo:MinSecIntType"/>
         <xs:element name="Second" type="gplo:MinSecIntType"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="LonDegIntMinIntSecIntType">
       <xs:sequence>
         <xs:element name="Degree" type="gplo:LonDegIntType"/>
         <xs:element name="Minute" type="gplo:MinSecIntType"/>
         <xs:element name="Second" type="gplo:MinSecIntType"/>
       </xs:sequence>
     </xs:complexType>

     <xs:simpleType name="LatDegMinSecDecType">
       <xs:restriction base="xs:decimal">
         <xs:minInclusive value="-90.0"/>
         <xs:maxInclusive value="90.0"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="LonDegMinSecDecType">
       <xs:restriction base="xs:decimal">
         <xs:minInclusive value="-180.0"/>
         <xs:maxInclusive value="180.0"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="LatDegIntMinSecDecType">
       <xs:sequence>
         <xs:element name="Degree" type="gplo:LatDegIntType"/>
         <xs:element name="MinuteSecond" type="gplo:MinSecDecType"/>
       </xs:sequence>
     </xs:complexType>


   Cuellar, Guenther          Expires - December 2003              26

               Geopriv Location Object Markup Language      June 2003


     <xs:complexType name="LonDegIntMinSecDecType">
       <xs:sequence>
         <xs:element name="Degree" type="gplo:LonDegIntType"/>
         <xs:element name="MinuteSecond" type="gplo:MinSecDecType"/>
       </xs:sequence>
     </xs:complexType>

     <xs:simpleType name="LatDegIntType">
       <xs:restriction base="xs:byte">
         <xs:minInclusive value="-90"/>
         <xs:maxInclusive value="90"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="LonDegIntType">
       <xs:restriction base="xs:short">
         <xs:minInclusive value="-180"/>
         <xs:maxInclusive value="180"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="MinSecIntType">
       <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="59"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="MinSecDecType">
       <xs:restriction base="xs:decimal">
         <xs:minInclusive value="0.0"/>
         <xs:maxExclusive value="60.0"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="Areas">
       <xs:restriction base="xs:string">
         <xs:enumeration value="Circle"/>
         <xs:enumeration value="Sphere"/>
         <xs:enumeration value="Rectangle"/>
         <xs:enumeration value="Cuboid"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="Units">
       <xs:restriction base="xs:string">
         <xs:enumeration value="Meter"/>
         <xs:enumeration value="Kilometer"/>
         <xs:enumeration value="Foot"/>
         <xs:enumeration value="Yard"/>
         <xs:enumeration value="Mile"/>
       </xs:restriction>
     </xs:simpleType>


   Cuellar, Guenther          Expires - December 2003              27

               Geopriv Location Object Markup Language      June 2003


     <xs:simpleType name="PositiveDecimal">
       <xs:restriction base="xs:decimal">
         <xs:minInclusive value="0.0"/>
       </xs:restriction>
     </xs:simpleType>

     <!-- End: Location: Latitude, Longitude, Altitude -->

     <!-- Start: Location: Civil -->

     <xs:complexType name="CivilType">
       <xs:sequence>
         <xs:element name="Domain" maxOccurs="unbounded">
           <xs:complexType>
             <xs:simpleContent>
               <xs:extension base="xs:string">
                 <xs:attribute name="Type" type="xs:string"/>
                 <xs:anyAttribute processContents="lax"/>
               </xs:extension>
             </xs:simpleContent>
           </xs:complexType>
         </xs:element>
       </xs:sequence>
     </xs:complexType>

     <!-- End: Location: Civil -->

     <!-- Start: Location: Time Zone -->

     <xs:simpleType name="TimeZoneType">
       <xs:restriction base="xs:string">
         <xs:pattern value="Z|[+\-]?(0[0-9]|1[0-2]):[0-5][0-9]"/>
       </xs:restriction>
     </xs:simpleType>

     <!-- End: Location: Time Zone -->

   <!-- End: Location -->

   <!-- Start: Time to Live -->

     <xs:element name="TimeToLive" type="xs:dateTime"/>

   <!-- End: Time to Live -->

   </xs:schema>


4.  XML LO Instance

   To give a preliminary impression of how an XML LO complying with the
   schema listed in section 3 could look like, this section provides


   Cuellar, Guenther          Expires - December 2003              28

               Geopriv Location Object Markup Language      June 2003


   such an XML instance document. It can be validated against this
   schema (see section 5).


   <?xml version="1.0" encoding="UTF-8"?>
   <LocationObject
     xmlns="urn:ietf:geopriv:lo:0.0.4"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="urn:ietf:geopriv:lo:0.0.4 gploml004.xsd">

     <Target>
       <TargetIdentity>
         <TargetIdentifier IdentifierType="Anonymous">
           ginefohcsT sennaH
         </TargetIdentifier>
       </TargetIdentity>
     </Target>

     <Device>
       <DeviceIdentity>
         <DeviceIdentifier IdentifierType="PhoneNumber">
           017167239870
         </DeviceIdentifier>
       </DeviceIdentity>
     </Device>

     <RuleMaker>
       <RuleMakerIdentity>
         <RuleMakerIdentifier IdentifierType="NonAnonymous">
           Siemens AG
         </RuleMakerIdentifier>
       </RuleMakerIdentity>
     </RuleMaker>

     <LocationRecipient>
       <LocationRecipientIdentity>
         <LocationRecipientIdentifier
             IdentifierType="NonAnonymous"
             CastType="MultiCast">
           CT IC 3 Mobile Security Team
         </LocationRecipientIdentifier>
       </LocationRecipientIdentity>
     </LocationRecipient>

     <LocationRecipientCredential>
       <PKIXCertificate>...</PKIXCertificate>
     </LocationRecipientCredential>

     <LocationRecipientPoPofCredential>
       <ChallengeResponse>
         Challenge-Response executed successfully
       </ChallengeResponse>
     </LocationRecipientPoPofCredential>

   Cuellar, Guenther          Expires - December 2003              29

               Geopriv Location Object Markup Language      June 2003



     <Rule>
       <LimitedRule>
         <LimitedRuleLanguage1>
           Dirk Kroeselberg has no permission to see my location.
           (Limited Rule Language needs to be defined.)
         </LimitedRuleLanguage1>
       </LimitedRule>
     </Rule>

     <Location>
       <LocationInformation>
         <LocationRepresentation>
           <LatLonAlt>
             <Latitude>
               <DegIntMinIntSecInt>
                 <Degree>-48</Degree>
                 <Minute>8</Minute>
                 <Second>23</Second>
               </DegIntMinIntSecInt>
             </Latitude>
             <Longitude>
               <DegIntMinSecDec>
                 <Degree>11</Degree>
                 <MinuteSecond>34.4667</MinuteSecond>
               </DegIntMinSecDec>
             </Longitude>
             <Altitude Unit="Meter">521.27</Altitude>
             <Precision Area="Sphere" Unit="Meter">58.3</Precision>
           </LatLonAlt>
           <Confidence>95.0</Confidence>
         </LocationRepresentation>
         <LocationRepresentation>
           <Civil>
             <Domain Type="Country">Germany</Domain>
             <Domain Type="State">Bavaria</Domain>
             <Domain Type="City">Munich</Domain>
             <Domain Type="Street">Leopoldstrasse</Domain>
             <Domain Type="Number">6</Domain>
           </Civil>
         </LocationRepresentation>
         <LocationRepresentation>
           <TimeZone>+01:00</TimeZone>
         </LocationRepresentation>
         <SightingTime>2003-07-14T20:12:34+01:00</SightingTime>
         <MotionVector>...</MotionVector>
         <DirectionVector>...</DirectionVector>
       </LocationInformation>
     </Location>

     <TimeToLive>2003-07-14T20:17:34+01:00</TimeToLive>

   </LocationObject>

   Cuellar, Guenther          Expires - December 2003              30

               Geopriv Location Object Markup Language      June 2003




5.  Note on Validation

   We have validated the XML LO listed in section 4 and other instance
   documents against the schema listed in section 3 using the XML Schema
   Validator (XSV) and the Apache XML projectÆs Xerces2-J parser. XSV
   and Xerces2-J are available at

        http://www.ltg.ed.ac.uk/~ht/xsv-status.html

   and

        http://xml.apache.org/xerces2-j/index.html,

   respectively. If you store the schema as ôgploml004.xsdö and the XML
   LO as (say) ôgploml004.xmlö in the same directory, then the commands

        xsv gploml004.xml gploml004.xsd

   and

        java dom.Writer ûv ûs gploml004.xml,

   respectively, should not produce any error messages.


6.  References


   [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP
          9, RFC 2026, October 1996.

   [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
          Levels", BCP 14, RFC 2119, March 1997

   [3] Cuellar, J., Morris, J.B., Mulligan D., Peterson, J., Polk, J.,
          "Geopriv requirements", Internet Draft, draft-ietf-geopriv-
          reqs-03.txt, March 2003.


7.  Author's Addresses

   Jorge R Cuellar
   Siemens AG
   Corporate Technology
   CT IC 3
   81730 Munich                   Email:  jorge.cuellar@siemens.com
   Germany

   Christian Guenther
   Siemens AG
   Corporate Technology

   Cuellar, Guenther          Expires - December 2003              31

               Geopriv Location Object Markup Language      June 2003


   CT IC 3
   81730 Munich                   Email:  christian.guenther@siemens.com
   Germany


8.  Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.






















   Cuellar, Guenther          Expires - December 2003              32