Geopriv Location Object Markup Language

Date: June 2003. From: http://www.ietf.org/internet-drafts/draft-cuellar-geopriv-lo-ml-00.txt


Internet Draft                                                J. Cuellar
Document: draft-cuellar-geopriv-lo-ml-00.txt                  Siemens AG
                                                             C. Guenther
                                                              Siemens AG

Expires in six months                                          June 2003
                Geopriv Location Object Markup Language
                 < draft-cuellar-geopriv-lo-ml-00.txt>

Status of this Memo
   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.
   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 a foundational version of a markup language
   suitable for representing the Geopriv Location Object (LO). This
   language is defined by means of an XML schema.







   Cuellar, Guenther                                                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................................................7
      2.7. LR Element................................................9
      2.8. LR Credential Element.....................................9
      2.9. LR Proof of Possession of Credential Element..............9
      2.10. Rule Element.............................................9
      2.11. Location Element.........................................9
      2.12. Time to Live Element.....................................9
   3. XML Schema Listing.............................................9
   4. XML LO Instance...............................................19
   5. Note on Validation............................................21
   6. References....................................................22
   7. Author's Addresses............................................22
   8. Full Copyright Statement......................................22
1.  Introduction
   This draft aims at providing a foundation for a markup language that
   is suitable for representing all data fields of the Geopriv Location
   Object (LO) as required in [2]. 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 LO.
   Even at this early stage of developing a suitable Geopriv 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 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 open issues that are related to the definition of an XML LO.


   Cuellar, Guenther                                                2
               Geopriv Location Object Markup Language      June 2003
   Based on the solutions of the general and XML related open issues,
   future versions of this draft will make the 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 LO 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:
     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 undetermined type.
   - Device:
     contains an identifier for the Device which can be a phone number,
     an IP address, or of anonymous or undetermined type.
   - RM:
     contains an identifier for the Rule Maker (RM) which can be of
     non-anonymous, anonymous or of undetermined type.
   - LR:
     contains an identifier of the Location Recipient (LR) which can be
     of non-anonymous, anonymous or of undetermined type; can also
     provide the information whether this identifier is a single or
     multi cast identifier.
   - LR Credential:
     contains a credential of the Location Recipient (LR).
   - LR Proof of Possession of Credential:
     contains the data that allows for verifying that the Location
     Recipient (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.
   - Time to Live:
     contains the point of time until when Location Information can be
     considered current.


   Cuellar, Guenther                                                3
               Geopriv Location Object Markup Language      June 2003
   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 (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>
   Thus, each valid LocationObject element can be composed of the child
   elements "Target" (line 11), ..., and "TimeToLive" (line 19). The

   Cuellar, Guenther                                                4
               Geopriv Location Object Markup Language      June 2003
   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 [2] 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
   undetermined 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"/>
    48:          <xs:enumeration value="Any"/>
    49:        </xs:restriction>

   Cuellar, Guenther                                                5
               Geopriv Location Object Markup Language      June 2003
    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 declares 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>
    58:      <xs:element name="DeviceIdentity">

   Cuellar, Guenther                                                6
               Geopriv Location Object Markup Language      June 2003
    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 a 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?
2.6.    RM Element



   Cuellar, Guenther                                                7
               Geopriv Location Object Markup Language      June 2003
   Up to now, the RM element is defined in a way that allows for
   representing a non-anonymous, anonymous or undetermined 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>
             <RuleMakerIdentifier IdentifierType="NonAnonymous">

   Cuellar, Guenther                                                8
               Geopriv Location Object Markup Language      June 2003
               Siemens AG
             </RuleMakerIdentifier>
           </RuleMakerIdentity>
         </RuleMaker>

2.7.    LR Element
2.8.    LR Credential Element
2.9.    LR Proof of Possession of Credential Element
2.10.     Rule Element
2.11.     Location Element
2.12.     Time to Live Element

3.  XML Schema Listing
   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"/>

   Cuellar, Guenther                                                9
               Geopriv Location Object Markup Language      June 2003
         <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>
     </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"/>


   Cuellar, Guenther                                               10
               Geopriv Location Object Markup Language      June 2003
     <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">
       <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>

   Cuellar, Guenther                                               11
               Geopriv Location Object Markup Language      June 2003
           </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"/>
       <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

   Cuellar, Guenther                                               12
               Geopriv Location Object Markup Language      June 2003
               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"/>
     </xs:attributeGroup>
   <!-- End: LR -->
   <!-- Start: LR Credential -->
     <xs:element name="LocationRecipientCredential"
                 type="gplo:LocationRecipientCredentialType"/>
     <xs:complexType name="LocationRecipientCredentialType">
       <xs:choice>
         <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 Proof of Possession of Credential -->
     <xs:element name="LocationRecipientPoPofCredential">
       <xs:complexType>
         <xs:choice>

   Cuellar, Guenther                                               13
               Geopriv Location Object Markup Language      June 2003
           <xs:element name="ChallengeResponse" type="xs:string"/>
         </xs:choice>
       </xs:complexType>
     </xs:element>
   <!-- End: LR Proof of Possession of Credential -->
   <!-- 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>
           </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"

   Cuellar, Guenther                                               14
               Geopriv Location Object Markup Language      June 2003
                     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"/>
           <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"

   Cuellar, Guenther                                               15
               Geopriv Location Object Markup Language      June 2003
                     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">
       <xs:choice>
         <xs:element name="Decimal" type="xs:decimal"/>
       </xs:choice>
     </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>

   Cuellar, Guenther                                               16
               Geopriv Location Object Markup Language      June 2003
         <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>
     <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>

   Cuellar, Guenther                                               17
               Geopriv Location Object Markup Language      June 2003
     </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>
     <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>

   Cuellar, Guenther                                               18
               Geopriv Location Object Markup Language      June 2003

     <!-- 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-4]):[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
   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>

   Cuellar, Guenther                                               19
               Geopriv Location Object Markup Language      June 2003
     </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>
     <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>

   Cuellar, Guenther                                               20
               Geopriv Location Object Markup Language      June 2003
                 <Degree>11</Degree>
                 <MinuteSecond>34.4667</MinuteSecond>
               </DegIntMinSecDec>
             </Longitude>
             <Altitude>
               <Decimal>521.27</Decimal>
             </Altitude>
             <Precision Area="Sphere" Unit="Meter">58.3</Precision>
           </LatLonAlt>
           <Confidence>95.0</Confidence>
         </LocationRepresentation>
         <LocationRepresentation>
           <Civil>
             <Domain Type="County">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>

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 "gploml004.xml" (say) in the same directory, then the commands
        xsv gploml004.xml gploml004.xsd


   Cuellar, Guenther                                               21
               Geopriv Location Object Markup Language      June 2003
   and
        java dom.Writer -v -s gploml004.xml,
   respectively, should not produce any error messages.
6.  References
   [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
          Levels", BCP 14, RFC 2119, March 1997.
   [2] 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
   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.


   Cuellar, Guenther                                               22
               Geopriv Location Object Markup Language      June 2003
   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                                               23