GPSml - 0.5 beta

01/28/2002


Introduction

GPSml is a markup language (and XMLSchema) that meets a growing requirement for a standard way of sharing GPS (Global Position System) location information between disparate systems, devices and users. For example, to transmit location data from a GPS-enabled client application (possibly running on a handheld device) to a central server running location-aware Web Services. Another example would be to enable users to share waypoints, routes and/or track logs more easily, regardless of their GPS device or application.

GPSml Design Goals:

The GPSml XMLSchema is being released into the public domain. We can also create custom versions to support unique requirements (specialty GPS hardware, custom tags, etc.). See end of this document for conditions and other legalese.


Contents of this archive

Filename/Directory Description

readme.html This file
license.txt GPL license under which this schema is made available
docs\ HTML documentation for the GPSml XMLSchema
instanceDocs\ Sample instance documents (generated by the open source Chaeron Java GPS Access library )
GPSml.xsd Main GPSml XMLSchema
GPSml_XXXXX.xsd Subschemas included by the main GPSml.xsd schema.


Installation/Usage Instructions

Unzip this archive into your favorite place preserving directory names.


Development Notes

This schema was built using Sun's JDK 1.3.1 on a Win2000 SP2 platform. The JPadPro editor/IDE (www.modelworks.com) was used to develop all of the code from scratch along with XMLSpy's IDE 4.2 and Tibco's TurboXML 1.2.2.


Design Notes

1) The default and target namespaces are of the form "http://www.chaeron.com/GPSml/Vx.x " where x.x is the version number. Eg. "http://www.chaeron.com/GPSml/V0.5" for this release.
2) The full schema will be available online at the URL: "http://www.chaeron.com/GPSml/Vx.x" where x.x is the version number. The main schema file will always be GPSml.xsd
3) GPSml was designed to be extensible, and as such, almost all complex elements allow an <Other> tag that can contain any valid XML tags. The <Other> tag construct is used to ensure that the Schema remains deterministic (using <any> tags sprinkled all over becomes non-deterministic too quickly). Put any extensions you want inside <Other>...</Other> tags. If there is a clear need to extend GPSml to directly support new tags, please contact us and we will consider such additions.
4) Descriptive element and attribute names are used. Maximum human readability is deemed valuable for GPSml, and so short forms (such as wpt instead of Waypoint) are not used. XML is a "verbose" format regardless. If you want the ultimate in small filesizes then use a proprietary binary storage format instead. (It is debatable, even with short forms and maximal use of attributes, if XML is currently suitable for devices with limited resources, such as mobile phones, Palm PDA's, though Moore's law will probably make GPSml practical at the small device level sooner rather than later).
5) GPSml is designed to support both real-time position related data and collections (such as waypoints, tracks, routes)
6) Attributes are used mainly for situations where metadata makes sense.

7) ComplexTypes are used extensively, and bear the same names as an element that implements the type (due to separation of Type vs Element namespaces).
8) GPSml is split into a number of subschemas (included by the main GPSml.xsd schema) to facilitate maintenance and extensibility.
9) GPSml uses a modified Venetial Blind design.
10) Most elements are options (minOccurs = 0 ) to provide the most flexibility and keep unneeded tags out of instance documents.


Future Enhancements (In no particular order)

1) Full implementation of the Time, Navigation and Accuracy subschemas for Points (eg. Waypoints) and RealTimeData.
2) Extra validation of elements and attributes
3) Enums for various codes (such as Symbols)
4) Embedded Schematron validations for more complex validation logic (cross-element or UOM validations).
5) Use of id's for all Schema elements (for schema-level xpath addressing ease)
6) More detailed annotations
7) Tutorial with detailed examples of how to encode GPSml compliant XML documents.
8) Default attribute support at parent element levels (eg. Datums and such).
9) Duplicate schema with unqualified elements.
10) Support for undefined values (eg. 1.0E25 for elements like Depth/Altitude/etc.)


Caveats

1) This is an early draft release and so is subject to change before the first 1.0 release. We will endeavour to stay compatible as new version evolve, but don't count on it just yet.


Support

Feel free to mail the author about any issues/bugs/suggestions you have with the GPSml XML

I will ABSOLUTELY not provide any support/assistance/guidance for generic XMLSchema and XML issues. If you are not experienced with XML and XMLSchemas, then you should not be messing about this this XMLSchema.


Disclaimers

This GPSml XMLSchema is provided as a public service . Use at your own risk. Andrzej Jan Taramina and/or Chaeron Corporation makes no representations as to the useability of this schema and will accept no responsibility for any damages arising from the use of this schema, no matter how caused.


Brought To You By

The GPSml XMLSchema has been brought to you as a public service by:

Andrzej Jan Taramina
Chaeron Corporation
email: andrzej "at" chaeron "dot" com

If you make any useful changes or additions toGPSml please email copies back to the author so that they can be incorporated in the official distribution. Credit for such additions will be retained in the source and the archive.


Version History

01/28/2002 - Version 0.5:

- Initial beta public release..


License & Copyright Information

This software is provided 'as-is', without any express or implied warranty. In no event will the author or Chaeron Corporation be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this schema for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

We can also create custom versions to support unique requirements (specialty GPS hardware, custom/reduced API, etc.)

Software is provided "AS IS," without a warranty of any kind. ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. THE ENTIRE RISK ARISING OUT OF USING THE SOFTWARE IS ASSUMED BY THE LICENSEE. See the GNU General Public License for more details.

CHAERON AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE OR ANY THIRD PARTY AS A RESULT OF USING OR DISTRIBUTING SOFTWARE. IN NO EVENT WILL CHAERON OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AN REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF CHAERON HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

If you make any useful changes or additions to GPSml please email copies back to the author so that they can be incorporated in the official distribution. Credit for such additions will be retained in the source and the archive.