Internet DRAFT - draft-cuellar-geopriv-lo-ml
draft-cuellar-geopriv-lo-ml
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