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
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.