From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Mon, 23 Oct 2023 17:57:37 +0000 (-0600) Subject: enhance gpx test to validate gpx writer. (#1191) X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2^2~159 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1aa1554c03158d42346ae7adf600ede41a382a4f;p=gpsbabel.git enhance gpx test to validate gpx writer. (#1191) * enhance gpx test to validate gpx writer. this reveals our writer producing a schema violation, an exception is made to avoid testing with this input. The exception should be removed when we fix the gpx writer. * fix write order of gpx elements we just pass through. * collapse writing of waypoint elements common to wpts, rtepts, trkpts. * fiddle * more fiddling --- diff --git a/formspec.h b/formspec.h index 942e596aa..44261561c 100644 --- a/formspec.h +++ b/formspec.h @@ -26,6 +26,7 @@ enum FsType { kFsUnknown = 0L, kFsGpx = 0x67707800L, + kFsGpxWpt = 0x67707877L, kFsOzi = 0x6f7a6900L, kFsGmsd = 0x474d5344L, /* GMSD = Garmin specific data */ kFsQstarzBl1000 = 0x5173747aL, diff --git a/gpx.cc b/gpx.cc index 9b8c8738f..1439a5f0c 100644 --- a/gpx.cc +++ b/gpx.cc @@ -514,6 +514,10 @@ GpxFormat::gpx_end(QStringView /*unused*/) delete link_; link_ = nullptr; } + if (wpt_fsdata != nullptr) { + wpt_tmp->fs.FsChainAdd(wpt_fsdata); + wpt_fsdata = nullptr; + } waypt_add(wpt_tmp); logpoint_ct = 0; cur_tag = nullptr; @@ -621,6 +625,10 @@ GpxFormat::gpx_end(QStringView /*unused*/) delete link_; link_ = nullptr; } + if (wpt_fsdata != nullptr) { + wpt_tmp->fs.FsChainAdd(wpt_fsdata); + wpt_fsdata = nullptr; + } route_add_wpt(rte_head, wpt_tmp); wpt_tmp = nullptr; break; @@ -665,6 +673,10 @@ GpxFormat::gpx_end(QStringView /*unused*/) delete link_; link_ = nullptr; } + if (wpt_fsdata != nullptr) { + wpt_tmp->fs.FsChainAdd(wpt_fsdata); + wpt_fsdata = nullptr; + } track_add_wpt(trk_head, wpt_tmp); wpt_tmp = nullptr; break; @@ -727,6 +739,12 @@ GpxFormat::gpx_end(QStringView /*unused*/) case tt_wpttype_time: wpt_tmp->SetCreationTime(xml_parse_time(cdatastr)); break; + case tt_wpttype_magvar: + if (wpt_fsdata == nullptr) { + wpt_fsdata = new gpx_wpt_fsdata; + } + wpt_fsdata->magvar = cdatastr; + break; case tt_wpttype_geoidheight: wpt_tmp->set_geoidheight(cdatastr.toDouble()); break; @@ -736,6 +754,18 @@ GpxFormat::gpx_end(QStringView /*unused*/) case tt_wpttype_desc: wpt_tmp->notes = cdatastr; break; + case tt_wpttype_src: + if (wpt_fsdata == nullptr) { + wpt_fsdata = new gpx_wpt_fsdata; + } + wpt_fsdata->src = cdatastr; + break; + case tt_wpttype_type: + if (wpt_fsdata == nullptr) { + wpt_fsdata = new gpx_wpt_fsdata; + } + wpt_fsdata->type = cdatastr; + break; case tt_wpttype_pdop: wpt_tmp->pdop = cdatastr.toFloat(); break; @@ -745,6 +775,18 @@ GpxFormat::gpx_end(QStringView /*unused*/) case tt_wpttype_vdop: wpt_tmp->vdop = cdatastr.toFloat(); break; + case tt_wpttype_ageofdgpsdata: + if (wpt_fsdata == nullptr) { + wpt_fsdata = new gpx_wpt_fsdata; + } + wpt_fsdata->ageofdgpsdata = cdatastr; + break; + case tt_wpttype_dgpsid: + if (wpt_fsdata == nullptr) { + wpt_fsdata = new gpx_wpt_fsdata; + } + wpt_fsdata->dgpsid = cdatastr; + break; case tt_wpttype_sat: wpt_tmp->sat = cdatastr.toInt(); break; @@ -1065,7 +1107,7 @@ GpxFormat::write_attributes(const QXmlStreamAttributes& attributes) const } void -GpxFormat::fprint_xml_chain(XmlTag* tag, const Waypoint* wpt) const +GpxFormat::fprint_xml_chain(XmlTag* tag) const { while (tag) { writer->writeStartElement(tag->tagname); @@ -1078,7 +1120,7 @@ GpxFormat::fprint_xml_chain(XmlTag* tag, const Waypoint* wpt) const writer->writeCharacters(tag->cdata); } if (tag->child) { - fprint_xml_chain(tag->child, wpt); + fprint_xml_chain(tag->child); } writer->writeEndElement(); } @@ -1138,7 +1180,7 @@ GpxFormat::write_gpx_url(const route_head* rh) const * Order counts. */ void -GpxFormat::gpx_write_common_acc(const Waypoint* waypointp) const +GpxFormat::gpx_write_common_acc(const Waypoint* waypointp, const gpx_wpt_fsdata* fs_gpxwpt) const { const char* fix = nullptr; @@ -1179,13 +1221,15 @@ GpxFormat::gpx_write_common_acc(const Waypoint* waypointp) const if (waypointp->pdop) { writer->writeTextElement(QStringLiteral("pdop"), toString(waypointp->pdop)); } - /* TODO: ageofdgpsdata should go here */ - /* TODO: dgpsid should go here */ + if (fs_gpxwpt) { + writer->writeOptionalTextElement(QStringLiteral("ageofdgpsdata"), fs_gpxwpt->ageofdgpsdata); + writer->writeOptionalTextElement(QStringLiteral("dgpsid"), fs_gpxwpt->dgpsid); + } } void -GpxFormat::gpx_write_common_position(const Waypoint* waypointp, const gpx_point_type point_type) const +GpxFormat::gpx_write_common_position(const Waypoint* waypointp, const gpx_point_type point_type, const gpx_wpt_fsdata* fs_gpxwpt) const { if (waypointp->altitude != unknown_alt) { writer->writeTextElement(QStringLiteral("ele"), QString::number(waypointp->altitude, 'f', elevation_precision)); @@ -1201,7 +1245,9 @@ GpxFormat::gpx_write_common_position(const Waypoint* waypointp, const gpx_point_ writer->writeTextElement(QStringLiteral("speed"), toString(waypointp->speed_value())); } } - /* TODO: magvar should go here */ + if (fs_gpxwpt) { + writer->writeOptionalTextElement(QStringLiteral("magvar"), fs_gpxwpt->magvar); + } if (waypointp->geoidheight_has_value()) { writer->writeOptionalTextElement(QStringLiteral("geoidheight"),QString::number(waypointp->geoidheight_value(), 'f', 1)); } @@ -1294,8 +1340,13 @@ GpxFormat::gpx_write_common_extensions(const Waypoint* waypointp, const gpx_poin } void -GpxFormat::gpx_write_common_description(const Waypoint* waypointp, const QString& oname) const +GpxFormat::gpx_write_common_description(const Waypoint* waypointp, const gpx_point_type point_type, const gpx_wpt_fsdata* fs_gpxwpt) const { + QString oname; + if (!((point_type == gpxpt_track) && waypointp->wpt_flags.shortname_is_synthetic)) { + oname = global_opts.synthesize_shortnames ? + mkshort_handle->mkshort_from_wpt(waypointp) : waypointp->shortname; + } writer->writeOptionalTextElement(QStringLiteral("name"), oname); writer->writeOptionalTextElement(QStringLiteral("cmt"), waypointp->description); @@ -1304,10 +1355,24 @@ GpxFormat::gpx_write_common_description(const Waypoint* waypointp, const QString } else { writer->writeOptionalTextElement(QStringLiteral("desc"), waypointp->description); } - /* TODO: src should go here */ + if (fs_gpxwpt) { + writer->writeOptionalTextElement(QStringLiteral("src"), fs_gpxwpt->src); + } write_gpx_url(waypointp); writer->writeOptionalTextElement(QStringLiteral("sym"), waypointp->icon_descr); - /* TODO: type should go here */ + if (fs_gpxwpt) { + writer->writeOptionalTextElement(QStringLiteral("type"), fs_gpxwpt->type); + } +} + +void GpxFormat::gpx_write_common_core(const Waypoint* waypointp, + const gpx_point_type point_type) const +{ + const auto* fs_gpxwpt = reinterpret_cast(waypointp->fs.FsChainFind(kFsGpxWpt)); + + gpx_write_common_position(waypointp, point_type, fs_gpxwpt); + gpx_write_common_description(waypointp, point_type, fs_gpxwpt); + gpx_write_common_acc(waypointp, fs_gpxwpt); } void @@ -1317,19 +1382,14 @@ GpxFormat::gpx_waypt_pr(const Waypoint* waypointp) const writer->writeAttribute(QStringLiteral("lat"), toString(waypointp->latitude)); writer->writeAttribute(QStringLiteral("lon"), toString(waypointp->longitude)); - QString oname = global_opts.synthesize_shortnames ? - mkshort_handle->mkshort_from_wpt(waypointp) : - waypointp->shortname; - gpx_write_common_position(waypointp, gpxpt_waypoint); - gpx_write_common_description(waypointp, oname); - gpx_write_common_acc(waypointp); + gpx_write_common_core(waypointp, gpxpt_waypoint); if (!(opt_humminbirdext || opt_garminext)) { const auto* fs_gpx = reinterpret_cast(waypointp->fs.FsChainFind(kFsGpx)); auto* gmsd = garmin_fs_t::find(waypointp); /* gARmIN sPECIAL dATA */ if (fs_gpx) { if (! gmsd) { - fprint_xml_chain(fs_gpx->tag, waypointp); + fprint_xml_chain(fs_gpx->tag); } } if (gmsd && (gpx_write_version > gpx_1_0)) { @@ -1360,7 +1420,7 @@ GpxFormat::gpx_track_hdr(const route_head* rte) if (!(opt_humminbirdext || opt_garminext)) { const auto* fs_gpx = reinterpret_cast(rte->fs.FsChainFind(kFsGpx)); if (fs_gpx) { - fprint_xml_chain(fs_gpx->tag, nullptr); + fprint_xml_chain(fs_gpx->tag); } } else if (opt_garminext) { if (rte->line_color.bbggrr > unknown_color) { @@ -1394,20 +1454,12 @@ GpxFormat::gpx_track_disp(const Waypoint* waypointp) const writer->writeAttribute(QStringLiteral("lat"), toString(waypointp->latitude)); writer->writeAttribute(QStringLiteral("lon"), toString(waypointp->longitude)); - gpx_write_common_position(waypointp, gpxpt_track); - - QString oname = global_opts.synthesize_shortnames ? - mkshort_handle->mkshort_from_wpt(waypointp) : - waypointp->shortname; - gpx_write_common_description(waypointp, - waypointp->wpt_flags.shortname_is_synthetic ? - nullptr : oname); - gpx_write_common_acc(waypointp); + gpx_write_common_core(waypointp, gpxpt_track); if (!(opt_humminbirdext || opt_garminext)) { const auto* fs_gpx = reinterpret_cast(waypointp->fs.FsChainFind(kFsGpx)); if (fs_gpx) { - fprint_xml_chain(fs_gpx->tag, waypointp); + fprint_xml_chain(fs_gpx->tag); } } else { gpx_write_common_extensions(waypointp, gpxpt_track); @@ -1458,7 +1510,7 @@ GpxFormat::gpx_route_hdr(const route_head* rte) const if (!(opt_humminbirdext || opt_garminext)) { const auto* fs_gpx = reinterpret_cast(rte->fs.FsChainFind(kFsGpx)); if (fs_gpx) { - fprint_xml_chain(fs_gpx->tag, nullptr); + fprint_xml_chain(fs_gpx->tag); } } else if (opt_garminext) { if (rte->line_color.bbggrr > unknown_color) { @@ -1485,17 +1537,12 @@ GpxFormat::gpx_route_disp(const Waypoint* waypointp) const writer->writeAttribute(QStringLiteral("lat"), toString(waypointp->latitude)); writer->writeAttribute(QStringLiteral("lon"), toString(waypointp->longitude)); - QString oname = global_opts.synthesize_shortnames ? - mkshort_handle->mkshort_from_wpt(waypointp) : - waypointp->shortname; - gpx_write_common_position(waypointp, gpxpt_route); - gpx_write_common_description(waypointp, oname); - gpx_write_common_acc(waypointp); + gpx_write_common_core(waypointp, gpxpt_route); if (!(opt_humminbirdext || opt_garminext)) { const auto* fs_gpx = reinterpret_cast(waypointp->fs.FsChainFind(kFsGpx)); if (fs_gpx) { - fprint_xml_chain(fs_gpx->tag, waypointp); + fprint_xml_chain(fs_gpx->tag); } } else { gpx_write_common_extensions(waypointp, gpxpt_route); diff --git a/gpx.h b/gpx.h index 1fd5b9692..0d56a9f87 100644 --- a/gpx.h +++ b/gpx.h @@ -67,6 +67,28 @@ public: void exit() override; private: + /* + * This structure holds the element contents of elements in the + * the gpx namespace that are only passed from the gpx reader to + * the gpx writer. + * We explcitly write these instead of passing them through so they + * are written in the correct sequence. + */ + struct gpx_wpt_fsdata : FormatSpecificData { + gpx_wpt_fsdata() : FormatSpecificData(kFsGpxWpt) {} + + gpx_wpt_fsdata* clone() const override + { + return new gpx_wpt_fsdata(*this); + } + + QString magvar; + QString src; + QString type; + QString ageofdgpsdata; + QString dgpsid; + }; + enum gpx_point_type { gpxpt_waypoint, gpxpt_track, @@ -91,10 +113,12 @@ private: tt_wpt, tt_wpttype_ele, tt_wpttype_time, + tt_wpttype_magvar, tt_wpttype_geoidheight, tt_wpttype_name, tt_wpttype_cmt, tt_wpttype_desc, + tt_wpttype_src, tt_wpttype_url, /* Not in GPX 1.1 */ tt_wpttype_urlname, /* Not in GPX 1.1 */ tt_wpttype_link, /* New in GPX 1.1 */ @@ -107,6 +131,8 @@ private: tt_wpttype_hdop, /* HDOPS are common for all three */ tt_wpttype_vdop, /* VDOPS are common for all three */ tt_wpttype_pdop, /* PDOPS are common for all three */ + tt_wpttype_ageofdgpsdata, + tt_wpttype_dgpsid, tt_cache, tt_cache_name, tt_cache_container, @@ -197,15 +223,16 @@ private: void gpx_cdata(QStringView s); QString qualifiedName() const; void write_attributes(const QXmlStreamAttributes& attributes) const; - void fprint_xml_chain(XmlTag* tag, const Waypoint* wpt) const; + void fprint_xml_chain(XmlTag* tag) const; void write_gpx_url(const UrlList& urls) const; void write_gpx_url(const Waypoint* waypointp) const; void write_gpx_url(const route_head* rh) const; - void gpx_write_common_acc(const Waypoint* waypointp) const; - void gpx_write_common_position(const Waypoint* waypointp, gpx_point_type point_type) const; + void gpx_write_common_acc(const Waypoint* waypointp, const gpx_wpt_fsdata* fs_gpxwpt) const; + void gpx_write_common_position(const Waypoint* waypointp, gpx_point_type point_type, const gpx_wpt_fsdata* fs_gpxwpt) const; void gpx_write_common_extensions(const Waypoint* waypointp, gpx_point_type point_type) const; - void gpx_write_common_description(const Waypoint* waypointp, const QString& oname) const; + void gpx_write_common_description(const Waypoint* waypointp, gpx_point_type point_type, const gpx_wpt_fsdata* fs_gpxwpt) const; void gpx_waypt_pr(const Waypoint* waypointp) const; + void gpx_write_common_core(const Waypoint* waypointp, gpx_point_type point_type) const; void gpx_track_hdr(const route_head* rte); void gpx_track_disp(const Waypoint* waypointp) const; void gpx_track_tlr(const route_head* unused); @@ -261,6 +288,7 @@ private: int next_trkpt_is_new_seg{}; FormatSpecificDataList* fs_ptr{}; + gpx_wpt_fsdata* wpt_fsdata{nullptr}; /* * The file-level information. @@ -409,22 +437,26 @@ private: /* Common to tracks, routes, and waypts */ GPXWPTTYPETAG("ele", tt_wpttype_ele, false), GPXWPTTYPETAG("time", tt_wpttype_time, false), + GPXWPTTYPETAG("magvar", tt_wpttype_magvar, false), GPXWPTTYPETAG("geoidheight", tt_wpttype_geoidheight, false), GPXWPTTYPETAG("name", tt_wpttype_name, false), GPXWPTTYPETAG("cmt", tt_wpttype_cmt, false), GPXWPTTYPETAG("desc", tt_wpttype_desc, false), + GPXWPTTYPETAG("src", tt_wpttype_src, false), GPXWPTTYPETAG("url", tt_wpttype_url, false), /* GPX 1.0 */ GPXWPTTYPETAG("urlname", tt_wpttype_urlname, false), /* GPX 1.0 */ GPXWPTTYPETAG("link", tt_wpttype_link, false), /* GPX 1.1 */ GPXWPTTYPETAG("link/text", tt_wpttype_link_text, false), /* GPX 1.1 */ GPXWPTTYPETAG("link/type", tt_wpttype_link_type, false), /* GPX 1.1 */ GPXWPTTYPETAG("sym", tt_wpttype_sym, false), - GPXWPTTYPETAG("type", tt_wpttype_type, true), + GPXWPTTYPETAG("type", tt_wpttype_type, false), GPXWPTTYPETAG("fix", tt_wpttype_fix, false), GPXWPTTYPETAG("sat", tt_wpttype_sat, false), GPXWPTTYPETAG("hdop", tt_wpttype_hdop, false), GPXWPTTYPETAG("vdop", tt_wpttype_vdop, false), GPXWPTTYPETAG("pdop", tt_wpttype_pdop, false), + GPXWPTTYPETAG("ageofdgpsdata", tt_wpttype_ageofdgpsdata, false), + GPXWPTTYPETAG("dgpsid", tt_wpttype_dgpsid, false), }; QVector gpx_args = { diff --git a/reference/basecamp~gpx.gpx b/reference/basecamp~gpx.gpx index 77234b87f..fe07c4a21 100644 --- a/reference/basecamp~gpx.gpx +++ b/reference/basecamp~gpx.gpx @@ -13,6 +13,7 @@ Hwy 119 Hwy 119 Flag, Blue + user SymbolAndName @@ -25,6 +26,7 @@ Hwy 72 Hwy 72 Flag, Blue + user SymbolAndName diff --git a/reference/wptsequence.gpx b/reference/wptsequence.gpx new file mode 100644 index 000000000..881f958e7 --- /dev/null +++ b/reference/wptsequence.gpx @@ -0,0 +1,76 @@ + + + + + + 289.200 + + 33.333 + 111.1 + trkpt-2011-07-02T17:47:25.000Z + this is the wpt cmt + this is the wpt desc + this is the wpt src + http://www.gpsbabel.org + gpsbabel.org + Campground + T + 3d + 4 + 1.100000 + 2.200000 + 3.300000 + 4.4 + 55 + + + + 289.200 + + 33.333 + 111.1 + trkpt-2011-07-02T17:47:25.000Z + this is the rte cmt + this is the rte desc + this is the rte src + http://www.gpsbabel.org + gpsbabel.org + Campground + T + 3d + 4 + 1.100000 + 2.200000 + 3.300000 + 4.4 + 55 + + + + + + 289.200 + + 12.120000 + 13.818100 + 33.333 + 111.1 + trkpt-2011-07-02T17:47:25.000Z + this is the trk cmt + this is the trk desc + this is the trk src + http://www.gpsbabel.org + gpsbabel.org + Campground + T + 3d + 4 + 1.100000 + 2.200000 + 3.300000 + 4.4 + 55 + + + + diff --git a/testo.d/gpx.test b/testo.d/gpx.test index 80a356086..f37fcf267 100644 --- a/testo.d/gpx.test +++ b/testo.d/gpx.test @@ -61,3 +61,45 @@ compare ${REFERENCE}/gdb-sample-v3-ilinks.gpx ${TMPDIR}/gdb-sample-v3-ilinks.gpx # use declared namespace prefixes in gpx reader gpsbabel -t -i gpx -f ${REFERENCE}/track/garminconnect.gpx -o unicsv,utc=0 -F ${TMPDIR}/garminconnect.csv compare ${REFERENCE}/track/garminconnect.csv ${TMPDIR}/garminconnect.csv + +# order of wpt type elements +gpsbabel -i gpx -f ${REFERENCE}/wptsequence.gpx -o gpx -F ${TMPDIR}/wptsequence.gpx +compare ${REFERENCE}/wptsequence.gpx ${TMPDIR}/wptsequence.gpx + +if [ -z "${VALGRIND}" ]; then + set -e + if command -v xmllint > /dev/null; + then + GPXS=$(find ${REFERENCE} -name \*.gpx) + mkdir -p ${TMPDIR}/validcheck + for f in $GPXS + do + case $f in + # this isn't a gpx file + ${REFERENCE}/track/trackfilter_discard_err.gpx) + ;; + + *) + tmpf=${TMPDIR}/validcheck/$(basename $f) + gpsbabel -i gpx -f $f -o gpx -F $tmpf + xmllint --schema ${BASEPATH}/tools/schema/gpx/master.xsd --noout $tmpf + ;; + esac; + + case $f in + # this isn't a gpx file + ${REFERENCE}/track/trackfilter_discard_err.gpx) + ;; + + *) + tmpf=${TMPDIR}/validcheck/$(basename $f) + gpsbabel -i gpx -f $f -o gpx,garminextensions -F $tmpf + xmllint --schema ${BASEPATH}/tools/schema/gpx/master.xsd --noout $tmpf + ;; + esac; + done + else + echo "Skipping GPX validation phase." + fi + set +e +fi diff --git a/testo.d/kml.test b/testo.d/kml.test index 212e3cbea..f92f3c4d7 100644 --- a/testo.d/kml.test +++ b/testo.d/kml.test @@ -84,7 +84,7 @@ if [ -z "${VALGRIND}" ]; then *) tmpf=${TMPDIR}/validcheck/$(basename $f) gpsbabel -i kml -f $f -o kml -F $tmpf - xmllint --schema ${BASEPATH}/tools/kml22-schema/kml22gx.xsd --noout $tmpf + xmllint --schema ${BASEPATH}/tools/schema/kml/kml22gx.xsd --noout $tmpf esac; done else diff --git a/tools/kml22-schema/atom-author-link.xsd b/tools/kml22-schema/atom-author-link.xsd deleted file mode 100644 index b3d77ade8..000000000 --- a/tools/kml22-schema/atom-author-link.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - atom-author-link.xsd 2008-01-23 - There is no official atom XSD. This XSD is created based on: - http://atompub.org/2005/08/17/atom.rnc. A subset of Atom as used in the - ogckml22.xsd is defined here. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/kml22-schema/kml22gx.xsd b/tools/kml22-schema/kml22gx.xsd deleted file mode 100644 index 791b3a544..000000000 --- a/tools/kml22-schema/kml22gx.xsd +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/kml22-schema/ogckml22.xsd b/tools/kml22-schema/ogckml22.xsd deleted file mode 100644 index 0d233808d..000000000 --- a/tools/kml22-schema/ogckml22.xsd +++ /dev/null @@ -1,1642 +0,0 @@ - - - - - ogckml22.xsd 2008-01-23 - XML Schema Document for OGC KML version 2.2. Copyright (c) - 2008 Open Geospatial Consortium. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - not anyURI due to $[x] substitution in - PhotoOverlay - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Snippet deprecated in 2.2 - - - - - - - - - - - - - Metadata deprecated in 2.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Metadata deprecated in 2.2 - - - - - - MetadataType deprecated in 2.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - is the root element. - - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Url deprecated in 2.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Url deprecated in 2.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - color deprecated in 2.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/kml22-schema/xAL.xsd b/tools/kml22-schema/xAL.xsd deleted file mode 100644 index b652731b1..000000000 --- a/tools/kml22-schema/xAL.xsd +++ /dev/null @@ -1,1680 +0,0 @@ - - - - - xAL: eXtensible Address Language -This is an XML document type definition (DTD) for -defining addresses. -Original Date of Creation: 1 March 2001 -Copyright(c) 2000, OASIS. All Rights Reserved [http://www.oasis-open.org] -Contact: Customer Information Quality Technical Committee, OASIS -http://www.oasis-open.org/committees/ciq -VERSION: 2.0 [MAJOR RELEASE] Date of Creation: 01 May 2002 -Last Update: 24 July 2002 -Previous Version: 1.3 - - - Common Attributes:Type - If not documented then it means, possible values of Type not limited to: Official, Unique, Abbreviation, OldName, Synonym -Code:Address element codes are used by groups like postal groups like ECCMA, ADIS, UN/PROLIST for postal services - - - - - Used by postal services to encode the name of the element. - - - - - - Root element for a list of addresses - - - - - - - - - Specific to DTD to specify the version number of DTD - - - - - - - - This container defines the details of the address. Can define multiple addresses including tracking address history - - - - - - - Postal authorities use specific postal service data to expedient delivery of mail - - - - - - A unique identifier of an address assigned by postal authorities. Example: DPID in Australia - - - - - Type of identifier. eg. DPID as in Australia - - - - - - - - - - Directly affects postal service distribution - - - - - Specific to postal service - - - - - - - - - Required for some postal services - - - - - Specific to postal service - - - - - - - - - Required for some postal services - - - - - Specific to postal service - - - - - - - - - Used for sorting addresses. Values may for example be CEDEX 16 (France) - - - - - Specific to postal service - - - - - - - - Latitude of delivery address - - - - - Specific to postal service - - - - - - - - - Latitude direction of delivery address;N = North and S = South - - - - Specific to postal service - - - - - - - - - Longtitude of delivery address - - - - - Specific to postal service - - - - - - - - - Longtitude direction of delivery address;N=North and S=South - - - - - Specific to postal service - - - - - - - - - any postal service elements not covered by the container can be represented using this element - - - - - Specific to postal service - - - - - - - - - - - USPS, ECMA, UN/PROLIST, etc - - - - - - - - Use the most suitable option. Country contains the most detailed information while Locality is missing Country and AdminArea - - - - Address as one line of free text - - - - - Postal, residential, corporate, etc - - - - - - - - - Container for Address lines - - - - - Specification of a country - - - - - - - A country code according to the specified scheme - - - - - Country code scheme possible values, but not limited to: iso.3166-2, iso.3166-3 for two and three character country codes. - - - - - - - - - - - - - - - - - - - - - - - - - - Type of address. Example: Postal, residential,business, primary, secondary, etc - - - - - Moved, Living, Investment, Deceased, etc.. - - - - - Start Date of the validity of address - - - - - End date of the validity of address - - - - - Communication, Contact, etc. - - - - - - Key identifier for the element for not reinforced references from other elements. Not required to be unique for the document to be valid, but application may get confused if not unique. Extend this schema adding unique contraint if needed. - - - - - - - - - - - - - - - - Occurrence of the building name before/after the type. eg. EGIS BUILDING where name appears before type - - - - - - - - - - - - - - - - - Name of the dependent locality - - - - - - - - - - Number of the dependent locality. Some areas are numbered. Eg. SECTOR 5 in a Suburb as in India or SOI SUKUMVIT 10 as in Thailand - - - - - Eg. SECTOR occurs before 5 in SECTOR 5 - - - - - - - - - - - - - - - - - Specification of a large mail user address. Examples of large mail users are postal companies, companies in France with a cedex number, hospitals and airports with their own post code. Large mail user addresses do not have a street name with premise name or premise number in countries like Netherlands. But they have a POBox and street also in countries like France - - - - - - A Postal van is specific for a route as in Is`rael, Rural route - - - - - - - - Dependent localities are Districts within cities/towns, locality divisions, postal -divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). - - - - - - - - City or IndustrialEstate, etc - - - - - Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system - - - - - "VIA" as in Hill Top VIA Parish where Parish is a locality and Hill Top is a dependent locality - - - - - Eg. Erode (Dist) where (Dist) is the Indicator - - - - - - - - - - Name of the firm - - - - - - - - - - - A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. - - - - - - - - - - - - - - Name of the large mail user. eg. Smith Ford International airport - - - - - Airport, Hospital, etc - - - - - - - - - Specification of the identification number of a large mail user. An example are the Cedex codes in France. - - - - - CEDEX Code - - - - - eg. Building 429 in which Building is the Indicator - - - - - - - - - Name of the building - - - - - - - - - - - - - - - - - Name of the the Mail Stop. eg. MSP, MS, etc - - - - - - - - - - Number of the Mail stop. eg. 123 in MS 123 - - - - - "-" in MS-123 - - - - - - - - - - - - - - - - - - Name of the Postal Route - - - - - - - - - - Number of the Postal Route - - - - - - - - - - - - - - - - - - - Name of the SubPremise - - - - - - EGIS Building where EGIS occurs before Building - - - - - - - - - - - - - - - - Name of the SubPremise Location. eg. LOBBY, BASEMENT, GROUND FLOOR, etc... - - - - - - - - Specification of the identifier of a sub-premise. Examples of sub-premises are apartments and suites. sub-premises in a building are often uniquely identified by means of consecutive -identifiers. The identifier can be a number, a letter or any combination of the two. In the latter case, the identifier includes exactly one variable (range) part, which is either a -number or a single letter that is surrounded by fixed parts at the left (prefix) or the right (postfix). - - - - - "TH" in 12TH which is a floor number, "NO." in NO.1, "#" in APT #12, etc. - - - - - "No." occurs before 1 in No.1, or TH occurs after 12 in 12TH - - - - - - - - - - - 12TH occurs "before" FLOOR (a type of subpremise) in 12TH FLOOR - - - - - - - - - - - "/" in 12/14 Archer Street where 12 is sub-premise number and 14 is premise number - - - - - - - - - - - Prefix of the sub premise number. eg. A in A-12 - - - - - A-12 where 12 is number and A is prefix and "-" is the separator - - - - - - - - - - Suffix of the sub premise number. eg. A in 12A - - - - - 12-A where 12 is number and A is suffix and "-" is the separator - - - - - - - - - - Name of the building - - - - - Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from a large mail user address, which contains no street. - - - - - A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. - - - - - - Specification of a single sub-premise. Examples of sub-premises are apartments and suites. -Each sub-premise should be uniquely identifiable. SubPremiseType: Specification of the name of a sub-premise type. Possible values not limited to: Suite, Appartment, Floor, Unknown -Multiple levels within a premise by recursively calling SubPremise Eg. Level 4, Suite 2, Block C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Free format address representation. An address can have more than one line. The order of the AddressLine elements must be preserved. - - - - - Defines the type of address line. eg. Street, Address Line 1, etc. - - - - - - - - - Locality is one level lower than adminisstrative area. Eg.: cities, reservations and any other built-up areas. - - - - - - - Name of the locality - - - - - - - - - - - - Specification of a large mail user address. Examples of large mail users are postal companies, companies in France with a cedex number, hospitals and airports with their own post code. Large mail user addresses do not have a street name with premise name or premise number in countries like Netherlands. But they have a POBox and street also in countries like France - - - - - - A Postal van is specific for a route as in Is`rael, Rural route - - - - - - - - Dependent localities are Districts within cities/towns, locality divisions, postal -divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). - - - - - - - - Possible values not limited to: City, IndustrialEstate, etc - - - - - Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system - - - - - Erode (Dist) where (Dist) is the Indicator - - - - - - - - Specification of a thoroughfare. A thoroughfare could be a rd, street, canal, river, etc. Note dependentlocality in a street. For example, in some countries, a large street will -have many subdivisions with numbers. Normally the subdivision name is the same as the road name, but with a number to identifiy it. Eg. SOI SUKUMVIT 3, SUKUMVIT RD, BANGKOK - - - - - - - - - A container to represent a range of numbers (from x thru y)for a thoroughfare. eg. 1-2 Albert Av - - - - - - - Starting number in the range - - - - - - - - - - - - - - - Ending number in the range - - - - - - - - - - - - - - - - Thoroughfare number ranges are odd or even - - - - - - - - - - - "No." No.12-13 - - - - - "-" in 12-14 or "Thru" in 12 Thru 14 etc. - - - - - No.12-14 where "No." is before actual street number - - - - - - - - - - - 23-25 Archer St, where number appears before name - - - - - - - - - - - - - - - - - - - - - North Baker Street, where North is the pre-direction. The direction appears before the name. - - - - - Appears before the thoroughfare name. Ed. Spanish: Avenida Aurora, where Avenida is the leading type / French: Rue Moliere, where Rue is the leading type. - - - - - Specification of the name of a Thoroughfare (also dependant street name): street name, canal name, etc. - - - - - Appears after the thoroughfare name. Ed. British: Baker Lane, where Lane is the trailing type. - - - - - 221-bis Baker Street North, where North is the post-direction. The post-direction appears after the name. - - - - - DependentThroughfare is related to a street; occurs in GB, IE, ES, PT - - - - - - - North Baker Street, where North is the pre-direction. The direction appears before the name. - - - - - Appears before the thoroughfare name. Ed. Spanish: Avenida Aurora, where Avenida is the leading type / French: Rue Moliere, where Rue is the leading type. - - - - - Specification of the name of a Thoroughfare (also dependant street name): street name, canal name, etc. - - - - - Appears after the thoroughfare name. Ed. British: Baker Lane, where Lane is the trailing type. - - - - - 221-bis Baker Street North, where North is the post-direction. The post-direction appears after the name. - - - - - - - - - - - - Dependent localities are Districts within cities/towns, locality divisions, postal -divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). - - - - - - Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from -a large mail user address, which contains no street. - - - - - - - - - - Does this thoroughfare have a a dependent thoroughfare? Corner of street X, etc - - - - - - - - - - - Corner of, Intersection of - - - - - Corner of Street1 AND Street 2 where AND is the Connector - - - - - STS in GEORGE and ADELAIDE STS, RDS IN A and B RDS, etc. Use only when both the street types are the same - - - - - - - - Examples of administrative areas are provinces counties, special regions (such as "Rijnmond"), etc. - - - - - - - Name of the administrative area. eg. MI in USA, NSW in Australia - - - - - - - - - - Specification of a sub-administrative area. An example of a sub-administrative areas is a county. There are two places where the name of an administrative -area can be specified and in this case, one becomes sub-administrative area. - - - - - - - Name of the sub-administrative area - - - - - - - - - - - - - - - - - Province or State or County or Kanton, etc - - - - - Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system - - - - - Erode (Dist) where (Dist) is the Indicator - - - - - - - - - - - - - - - Province or State or County or Kanton, etc - - - - - Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system - - - - - Erode (Dist) where (Dist) is the Indicator - - - - - - - - Specification of a post office. Examples are a rural post office where post is delivered and a post office containing post office boxes. - - - - - - - - Specification of the name of the post office. This can be a rural postoffice where post is delivered or a post office containing post office boxes. - - - - - - - - - - Specification of the number of the postoffice. Common in rural postoffices - - - - - MS in MS 62, # in MS # 12, etc. - - - - - MS occurs before 62 in MS 62 - - - - - - - - - - - - - - - - A Postal van is specific for a route as in Is`rael, Rural route - - - - - - - - - Could be a Mobile Postoffice Van as in Isreal - - - - - eg. Kottivakkam (P.O) here (P.O) is the Indicator - - - - - - - - PostalCode is the container element for either simple or complex (extended) postal codes. Type: Area Code, Postcode, etc. - - - - - - - Specification of a postcode. The postcode is formatted according to country-specific rules. Example: SW3 0A8-1A, 600074, 2067 - - - - - Old Postal Code, new code, etc - - - - - - - - - Examples are: 1234 (USA), 1G (UK), etc. - - - - - Delivery Point Suffix, New Postal Code, etc.. - - - - - The separator between postal code number and the extension. Eg. "-" - - - - - - - - - A post town is not the same as a locality. A post town can encompass a collection of (small) localities. It can also be a subpart of a locality. An actual post town in Norway is "Bergen". - - - - - - - Name of the post town - - - - - - - - - - GENERAL PO in MIAMI GENERAL PO - - - - - - - - - - eg. village, town, suburb, etc - - - - - - - - - - Area Code, Postcode, Delivery code as in NZ, etc - - - - - - - - Specification of a postbox like mail delivery point. Only a single postbox number can be specified. Examples of postboxes are POBox, free mail numbers, etc. - - - - - - - Specification of the number of a postbox - - - - - - - - - Specification of the prefix of the post box number. eg. A in POBox:A-123 - - - - - A-12 where 12 is number and A is prefix and "-" is the separator - - - - - - - - - Specification of the suffix of the post box number. eg. A in POBox:123A - - - - - 12-A where 12 is number and A is suffix and "-" is the separator - - - - - - - - - Some countries like USA have POBox as 12345-123 - - - - - "-" is the NumberExtensionSeparator in POBOX:12345-123 - - - - - - - - Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from -a large mail user address, which contains no street. - - - - - - - - Possible values are, not limited to: POBox and Freepost. - - - - - LOCKED BAG NO:1234 where the Indicator is NO: and Type is LOCKED BAG - - - - - - - - Subdivision in the firm: School of Physics at Victoria University (School of Physics is the department) - - - - - - - Specification of the name of a department. - - - - - - - - - - A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. - - - - - - - - School in Physics School, Division in Radiology division of school of physics - - - - - - - - Specification of a single premise, for example a house or a building. The premise as a whole has a unique premise (house) number or a premise name. There could be more than -one premise in a street referenced in an address. For example a building address near a major shopping centre or raiwlay station - - - - - - - Specification of the name of the premise (house, building, park, farm, etc). A premise name is specified when the premise cannot be addressed using a street name plus premise (house) number. - - - - - - EGIS Building where EGIS occurs before Building, DES JARDINS occurs after COMPLEXE DES JARDINS - - - - - - - - - - - - - - - - LOBBY, BASEMENT, GROUND FLOOR, etc... - - - - - - - - - - - Specification for defining the premise number range. Some premises have number as Building C1-C7 - - - - - - Start number details of the premise number range - - - - - - - - - - - - - End number details of the premise number range - - - - - - - - - - - - - - Eg. Odd or even number range - - - - - Eg. No. in Building No:C1-C5 - - - - - "-" in 12-14 or "Thru" in 12 Thru 14 etc. - - - - - - No.12-14 where "No." is before actual street number - - - - - - - - - - - Building 23-25 where the number occurs after building name - - - - - - - - - - - - - - - - - - - Specification of the name of a building. - - - - - - Specification of a single sub-premise. Examples of sub-premises are apartments and suites. Each sub-premise should be uniquely identifiable. - - - - - Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from a large mail user address, which contains no street. - - - - - - A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. - - - - - - - - - COMPLEXE in COMPLEX DES JARDINS, A building, station, etc - - - - - STREET, PREMISE, SUBPREMISE, PARK, FARM, etc - - - - - NEAR, ADJACENT TO, etc - - - - - DES, DE, LA, LA, DU in RUE DU BOIS. These terms connect a premise/thoroughfare type and premise/thoroughfare name. Terms may appear with names AVE DU BOIS - - - - - - - - Prefix before the number. A in A12 Archer Street - - - - A-12 where 12 is number and A is prefix and "-" is the separator - - - - - - - - - - Suffix after the number. A in 12A Archer Street - - - - - NEAR, ADJACENT TO, etc - 12-A where 12 is number and A is suffix and "-" is the separator - - - - - - - - - - Eg.: 23 Archer street or 25/15 Zero Avenue, etc - - - - - 12 Archer Street is "Single" and 12-14 Archer Street is "Range" - - - - - - - - - - - - No. in Street No.12 or "#" in Street # 12, etc. - - - - - No.12 where "No." is before actual street number - - - - - - - - - - - 23 Archer St, Archer Street 23, St Archer 23 - - - - - - - - - - - - - - - - - Specification of the identifier of the premise (house, building, etc). Premises in a street are often uniquely identified by means of consecutive identifiers. The identifier can be a number, a letter or any combination of the two. - - - - - Building 12-14 is "Range" and Building 12 is "Single" - - - - - - - - - - - - No. in House No.12, # in #12, etc. - - - - - No. occurs before 12 No.12 - - - - - - - - - - - 12 in BUILDING 12 occurs "after" premise type BUILDING - - - - - - - - - - - - - - - A in A12 - - - - - - - A-12 where 12 is number and A is prefix and "-" is the separator - - - - - - - - - - - - A in 12A - - - - - 12-A where 12 is number and A is suffix and "-" is the separator - - - - - - - - - - Specification of the name of a country. - - - - - Old name, new name, etc - - - - - - - diff --git a/tools/schema/gpx/fetch b/tools/schema/gpx/fetch new file mode 100755 index 000000000..6c6703d7c --- /dev/null +++ b/tools/schema/gpx/fetch @@ -0,0 +1,14 @@ +#!/bin/bash + +wget -O topografix/gpx10.xsd "http://www.topografix.com/GPX/1/0/gpx.xsd" +wget -O topografix/gpx11.xsd "http://www.topografix.com/GPX/1/1/gpx.xsd" + +wget -P garmin "https://www8.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd" +wget -P garmin "https://www8.garmin.com/xmlschemas/TrackPointExtensionv1.xsd" +wget -P garmin "https://www8.garmin.com/xmlschemas/TrackPointExtensionv2.xsd" +wget -P garmin "https://www8.garmin.com/xmlschemas/TripExtensionsv1.xsd" + +wget -O groundspeak/cache10.xsd "http://www.groundspeak.com/cache/1/0/cache.xsd" +wget -O groundspeak/cache101.xsd "http://www.groundspeak.com/cache/1/0/1/cache.xsd" +wget -O groundspeak/cache11.xsd "http://www.groundspeak.com/cache/1/1/cache.xsd" +wget -O groundspeak/cache12.xsd "http://www.groundspeak.com/cache/1/2/cache.xsd" diff --git a/tools/schema/gpx/garmin/GpxExtensionsv3.xsd b/tools/schema/gpx/garmin/GpxExtensionsv3.xsd new file mode 100644 index 000000000..04d396491 --- /dev/null +++ b/tools/schema/gpx/garmin/GpxExtensionsv3.xsd @@ -0,0 +1,215 @@ + + + + + This schema defines the Garmin extensions to be used with the GPX 1.1 schema. + The root elements defined by this schema are intended to be used as child + elements of the "extensions" elements in the GPX 1.1 schema. The GPX 1.1 + schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + + + + + + + + + + + + + + + This type contains data fields available in Garmin GDB waypoints that cannot + be represented in waypoints in GPX 1.1 instances. + + + + + + + + + + + + + + + + This type contains a list of categories to which a waypoint has been assigned. + Note that this list may contain categories which do not exist for a particular + application installation. + + + + + + + + + + + + + + + + + + + + + + + Category provides the ability to specify the type of a + phone number. For example, a phone number can be categorized as + "Home", "Work", "Mobile" e.t.c + + + + + + + + + This type contains data fields available in Garmin GDB routes that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + + This type contains data fields available in Garmin GDB routes that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + + This type contains data fields available in Garmin GDB tracks that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + This type contains data fields available in Garmin GDB track points that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a string that specifies how a waypoint should be + displayed on a map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The latitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + The longitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/GpxExtensionsv3.xsd.1 b/tools/schema/gpx/garmin/GpxExtensionsv3.xsd.1 new file mode 100644 index 000000000..04d396491 --- /dev/null +++ b/tools/schema/gpx/garmin/GpxExtensionsv3.xsd.1 @@ -0,0 +1,215 @@ + + + + + This schema defines the Garmin extensions to be used with the GPX 1.1 schema. + The root elements defined by this schema are intended to be used as child + elements of the "extensions" elements in the GPX 1.1 schema. The GPX 1.1 + schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + + + + + + + + + + + + + + + This type contains data fields available in Garmin GDB waypoints that cannot + be represented in waypoints in GPX 1.1 instances. + + + + + + + + + + + + + + + + This type contains a list of categories to which a waypoint has been assigned. + Note that this list may contain categories which do not exist for a particular + application installation. + + + + + + + + + + + + + + + + + + + + + + + Category provides the ability to specify the type of a + phone number. For example, a phone number can be categorized as + "Home", "Work", "Mobile" e.t.c + + + + + + + + + This type contains data fields available in Garmin GDB routes that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + + This type contains data fields available in Garmin GDB routes that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + + This type contains data fields available in Garmin GDB tracks that cannot + be represented in routes in GPX 1.1 instances. + + + + + + + + + + This type contains data fields available in Garmin GDB track points that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a string that specifies how a waypoint should be + displayed on a map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The latitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + The longitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd b/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd new file mode 100644 index 000000000..78b8649a6 --- /dev/null +++ b/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd @@ -0,0 +1,74 @@ + + + + + This schema defines Garmin extensions to be used with the GPX 1.1 schema. + The root element defined by this schema is intended to be used as a child + element of the "extensions" elements in the trkpt element in the GPX 1.1 schema. + The GPX 1.1 schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + This is a replacement for TrackPointExtension in + http://www.garmin.com/xmlschemas/GpxExtensions/v3 + + + + + + + This type contains data fields that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a heart rate measured in beats per minute. + + + + + + + + + This type contains a cadence measured in revolutions per minute. + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd.1 b/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd.1 new file mode 100644 index 000000000..78b8649a6 --- /dev/null +++ b/tools/schema/gpx/garmin/TrackPointExtensionv1.xsd.1 @@ -0,0 +1,74 @@ + + + + + This schema defines Garmin extensions to be used with the GPX 1.1 schema. + The root element defined by this schema is intended to be used as a child + element of the "extensions" elements in the trkpt element in the GPX 1.1 schema. + The GPX 1.1 schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + This is a replacement for TrackPointExtension in + http://www.garmin.com/xmlschemas/GpxExtensions/v3 + + + + + + + This type contains data fields that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a heart rate measured in beats per minute. + + + + + + + + + This type contains a cadence measured in revolutions per minute. + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd b/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd new file mode 100644 index 000000000..3417edd3a --- /dev/null +++ b/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd @@ -0,0 +1,94 @@ + + + + + This schema defines Garmin extensions to be used with the GPX 1.1 schema. + The root element defined by this schema is intended to be used as a child + element of the "extensions" elements in the trkpt element in the GPX 1.1 schema. + The GPX 1.1 schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + This is a replacement for TrackPointExtension in + http://www.garmin.com/xmlschemas/GpxExtensions/v3 + + + + + + + This type contains data fields that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a heart rate measured in beats per minute. + + + + + + + + + This type contains a cadence measured in revolutions per minute. + + + + + + + + + This type contains a speed measured in meters per second. + + + + + + + This type contains an angle measured in degrees in a clockwise direction from the true north line. + + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd.1 b/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd.1 new file mode 100644 index 000000000..3417edd3a --- /dev/null +++ b/tools/schema/gpx/garmin/TrackPointExtensionv2.xsd.1 @@ -0,0 +1,94 @@ + + + + + This schema defines Garmin extensions to be used with the GPX 1.1 schema. + The root element defined by this schema is intended to be used as a child + element of the "extensions" elements in the trkpt element in the GPX 1.1 schema. + The GPX 1.1 schema is available at http://www.topografix.com/GPX/1/1/gpx.xsd. + This is a replacement for TrackPointExtension in + http://www.garmin.com/xmlschemas/GpxExtensions/v3 + + + + + + + This type contains data fields that cannot + be represented in track points in GPX 1.1 instances. + + + + + + + + + + + + + + + + + This type contains a temperature value measured in degrees Celsius. + + + + + + + This type contains a distance value measured in meters. + + + + + + + This type contains a heart rate measured in beats per minute. + + + + + + + + + This type contains a cadence measured in revolutions per minute. + + + + + + + + + This type contains a speed measured in meters per second. + + + + + + + This type contains an angle measured in degrees in a clockwise direction from the true north line. + + + + + + + + + + This type provides the ability to extend any data type that includes it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TripExtensionsv1.xsd b/tools/schema/gpx/garmin/TripExtensionsv1.xsd new file mode 100644 index 000000000..588d55de3 --- /dev/null +++ b/tools/schema/gpx/garmin/TripExtensionsv1.xsd @@ -0,0 +1,136 @@ + + + + + This schema defines the Garmin route extensions specific to trips to be used + with the GPX 1.1 schema. The root elements defined by this schema are intended to be used as + child elements of the rte element in the GPX 1.1 schema. The GPX 1.1 schema is available at + http://www.topografix.com/GPX/1/1/gpx.xsd. + + + + + + + This type contains data fields intended to be used as child elements of + the rte element in the GPX 1.1 schema + + + + + Suggested transportation mode for this route. If the processor does + not know about the suggested transportation mode, a default will be chosen. Examples + include; Automotive, Motorcycling, Walking, Hiking, Mountaineering, Bicyling, + TourCycling, MountainBiking, ATV, DirtBiking, Truck, RV + + + + + + + + + + + Route via points are announced stops during a route. This type contains + data fields intended to be used as child elements of the rtept element in the GPX 1.1 schema + + + + + + Planned time to leave this route via, not valid for the last via in a + route. Date and time are in Univeral Coordinated Time (UTC), not local time. Conforms to + ISO 8601 specification for date/time representation. + + + + + Time spent at this route via. + + + + + Planned time to arrive at this route via, not valid for the first via + in a route. Date and time are in Univeral Coordinated Time (UTC), not local time. + Conforms to ISO 8601 specification for date/time representation. + + + + + Suggested calculation mode between this route via and the next route + via. If the CalculationMode element is not present or if the processor does not + recognize the suggested calculation mode, the processor may use a calculation mode + specified on a previous via. If none have been previously specified, the processor may + chose a default. Examples include; FasterTime, ShorterDistance, Direct (Off Road), + LessFuel, ScenicRoads + + + + + Suggested elevation mode between this route via and the next route + via. If the ElevationMode element is not present or if the processor does not recognize + the suggested elevation mode, the processor may use an elevation mode specified on a + previous via. If none have been previously specified, the processor may chose a default. + Examples include; Standard, MinimizeAscent + + + + + + + + + + A specific road or trail that the user selected to follow + between this route via and the next route via. If the NamedRoad element is not present + or if the processor does not recognize the suggested named road, the processor may use a + named road specified on a previous via. If none have been previously specified, the + processor may ignore this. + + + + + User friendly name of the road or trail + + + + + ID of the road or trail + + + + + Product and family ID of map product that contains the road or trail + + + + + + + + + + + Route shaping points influence the route path that is calculated, but are + not announced or listed in driving directions. This type contains data fields intended to be + used as child elements of the rtept element in the GPX 1.1 schema + + + + + + + + + This type provides the ability to extend any data type that includes + it. + + + + + + + diff --git a/tools/schema/gpx/garmin/TripExtensionsv1.xsd.1 b/tools/schema/gpx/garmin/TripExtensionsv1.xsd.1 new file mode 100644 index 000000000..588d55de3 --- /dev/null +++ b/tools/schema/gpx/garmin/TripExtensionsv1.xsd.1 @@ -0,0 +1,136 @@ + + + + + This schema defines the Garmin route extensions specific to trips to be used + with the GPX 1.1 schema. The root elements defined by this schema are intended to be used as + child elements of the rte element in the GPX 1.1 schema. The GPX 1.1 schema is available at + http://www.topografix.com/GPX/1/1/gpx.xsd. + + + + + + + This type contains data fields intended to be used as child elements of + the rte element in the GPX 1.1 schema + + + + + Suggested transportation mode for this route. If the processor does + not know about the suggested transportation mode, a default will be chosen. Examples + include; Automotive, Motorcycling, Walking, Hiking, Mountaineering, Bicyling, + TourCycling, MountainBiking, ATV, DirtBiking, Truck, RV + + + + + + + + + + + Route via points are announced stops during a route. This type contains + data fields intended to be used as child elements of the rtept element in the GPX 1.1 schema + + + + + + Planned time to leave this route via, not valid for the last via in a + route. Date and time are in Univeral Coordinated Time (UTC), not local time. Conforms to + ISO 8601 specification for date/time representation. + + + + + Time spent at this route via. + + + + + Planned time to arrive at this route via, not valid for the first via + in a route. Date and time are in Univeral Coordinated Time (UTC), not local time. + Conforms to ISO 8601 specification for date/time representation. + + + + + Suggested calculation mode between this route via and the next route + via. If the CalculationMode element is not present or if the processor does not + recognize the suggested calculation mode, the processor may use a calculation mode + specified on a previous via. If none have been previously specified, the processor may + chose a default. Examples include; FasterTime, ShorterDistance, Direct (Off Road), + LessFuel, ScenicRoads + + + + + Suggested elevation mode between this route via and the next route + via. If the ElevationMode element is not present or if the processor does not recognize + the suggested elevation mode, the processor may use an elevation mode specified on a + previous via. If none have been previously specified, the processor may chose a default. + Examples include; Standard, MinimizeAscent + + + + + + + + + + A specific road or trail that the user selected to follow + between this route via and the next route via. If the NamedRoad element is not present + or if the processor does not recognize the suggested named road, the processor may use a + named road specified on a previous via. If none have been previously specified, the + processor may ignore this. + + + + + User friendly name of the road or trail + + + + + ID of the road or trail + + + + + Product and family ID of map product that contains the road or trail + + + + + + + + + + + Route shaping points influence the route path that is calculated, but are + not announced or listed in driving directions. This type contains data fields intended to be + used as child elements of the rtept element in the GPX 1.1 schema + + + + + + + + + This type provides the ability to extend any data type that includes + it. + + + + + + + diff --git a/tools/schema/gpx/groundspeak/cache10.xsd b/tools/schema/gpx/groundspeak/cache10.xsd new file mode 100644 index 000000000..425dfb9ad --- /dev/null +++ b/tools/schema/gpx/groundspeak/cache10.xsd @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/schema/gpx/groundspeak/cache101.xsd b/tools/schema/gpx/groundspeak/cache101.xsd new file mode 100644 index 000000000..d0873b4a6 --- /dev/null +++ b/tools/schema/gpx/groundspeak/cache101.xsd @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/schema/gpx/groundspeak/cache11.xsd b/tools/schema/gpx/groundspeak/cache11.xsd new file mode 100644 index 000000000..fd83a6d5d --- /dev/null +++ b/tools/schema/gpx/groundspeak/cache11.xsd @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/schema/gpx/groundspeak/cache12.xsd b/tools/schema/gpx/groundspeak/cache12.xsd new file mode 100644 index 000000000..5324fabbd --- /dev/null +++ b/tools/schema/gpx/groundspeak/cache12.xsd @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/schema/gpx/master.xsd b/tools/schema/gpx/master.xsd new file mode 100644 index 000000000..7c767b4a4 --- /dev/null +++ b/tools/schema/gpx/master.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/tools/schema/gpx/topografix/gpx10.xsd b/tools/schema/gpx/topografix/gpx10.xsd new file mode 100644 index 000000000..a49992ddd --- /dev/null +++ b/tools/schema/gpx/topografix/gpx10.xsd @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/schema/gpx/topografix/gpx11.xsd b/tools/schema/gpx/topografix/gpx11.xsd new file mode 100644 index 000000000..a113a41c3 --- /dev/null +++ b/tools/schema/gpx/topografix/gpx11.xsd @@ -0,0 +1,788 @@ + + + + + + GPX schema version 1.1 - For more information on GPX and this schema, visit http://www.topografix.com/gpx.asp + + GPX uses the following conventions: all coordinates are relative to the WGS84 datum. All measurements are in metric units. + + + + + + + GPX is the root element in the XML file. + + + + + + + + GPX documents contain a metadata header, followed by waypoints, routes, and tracks. You can add your own elements + to the extensions section of the GPX document. + + + + + + + Metadata about the file. + + + + + + + A list of waypoints. + + + + + + + A list of routes. + + + + + + + A list of tracks. + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + + You must include the version number in your GPX document. + + + + + + + You must include the name or URL of the software that created your GPX document. This allows others to + inform the creator of a GPX instance document that fails to validate. + + + + + + + + + Information about the GPX file, author, and copyright restrictions goes in the metadata section. Providing rich, + meaningful information about your GPX files allows others to search for and use your GPS data. + + + + + + + The name of the GPX file. + + + + + + + A description of the contents of the GPX file. + + + + + + + The person or organization who created the GPX file. + + + + + + + Copyright and license information governing use of the file. + + + + + + + URLs associated with the location described in the file. + + + + + + + The creation date of the file. + + + + + + + Keywords associated with the file. Search engines or databases can use this information to classify the data. + + + + + + + Minimum and maximum coordinates which describe the extent of the coordinates in the file. + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + + + wpt represents a waypoint, point of interest, or named feature on a map. + + + + + + + + Elevation (in meters) of the point. + + + + + + + Creation/modification timestamp for element. Date and time in are in Univeral Coordinated Time (UTC), not local time! Conforms to ISO 8601 specification for date/time representation. Fractional seconds are allowed for millisecond timing in tracklogs. + + + + + + + Magnetic variation (in degrees) at the point + + + + + + + Height (in meters) of geoid (mean sea level) above WGS84 earth ellipsoid. As defined in NMEA GGA message. + + + + + + + + + The GPS name of the waypoint. This field will be transferred to and from the GPS. GPX does not place restrictions on the length of this field or the characters contained in it. It is up to the receiving application to validate the field before sending it to the GPS. + + + + + + + GPS waypoint comment. Sent to GPS as comment. + + + + + + + A text description of the element. Holds additional information about the element intended for the user, not the GPS. + + + + + + + Source of data. Included to give user some idea of reliability and accuracy of data. "Garmin eTrex", "USGS quad Boston North", e.g. + + + + + + + Link to additional information about the waypoint. + + + + + + + Text of GPS symbol name. For interchange with other programs, use the exact spelling of the symbol as displayed on the GPS. If the GPS abbreviates words, spell them out. + + + + + + + Type (classification) of the waypoint. + + + + + + + + + Type of GPX fix. + + + + + + + Number of satellites used to calculate the GPX fix. + + + + + + + Horizontal dilution of precision. + + + + + + + Vertical dilution of precision. + + + + + + + Position dilution of precision. + + + + + + + Number of seconds since last DGPS update. + + + + + + + ID of DGPS station used in differential correction. + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + + The latitude of the point. This is always in decimal degrees, and always in WGS84 datum. + + + + + + + The longitude of the point. This is always in decimal degrees, and always in WGS84 datum. + + + + + + + + + rte represents route - an ordered list of waypoints representing a series of turn points leading to a destination. + + + + + + + GPS name of route. + + + + + + + GPS comment for route. + + + + + + + Text description of route for user. Not sent to GPS. + + + + + + + Source of data. Included to give user some idea of reliability and accuracy of data. + + + + + + + Links to external information about the route. + + + + + + + GPS route number. + + + + + + + Type (classification) of route. + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + A list of route points. + + + + + + + + + + trk represents a track - an ordered list of points describing a path. + + + + + + + GPS name of track. + + + + + + + GPS comment for track. + + + + + + + User description of track. + + + + + + + Source of data. Included to give user some idea of reliability and accuracy of data. + + + + + + + Links to external information about track. + + + + + + + GPS track number. + + + + + + + Type (classification) of track. + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + A Track Segment holds a list of Track Points which are logically connected in order. To represent a single GPS track where GPS reception was lost, or the GPS receiver was turned off, start a new Track Segment for each continuous span of track data. + + + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + + + A Track Segment holds a list of Track Points which are logically connected in order. To represent a single GPS track where GPS reception was lost, or the GPS receiver was turned off, start a new Track Segment for each continuous span of track data. + + + + + + + A Track Point holds the coordinates, elevation, timestamp, and metadata for a single point in a track. + + + + + + + + You can add extend GPX by adding your own elements from another schema here. + + + + + + + + + + Information about the copyright holder and any license governing use of this file. By linking to an appropriate license, + you may place your data into the public domain or grant additional usage rights. + + + + + + + Year of copyright. + + + + + + + Link to external file containing license text. + + + + + + + + Copyright holder (TopoSoft, Inc.) + + + + + + + + + A link to an external resource (Web page, digital photo, video clip, etc) with additional information. + + + + + + + Text of hyperlink. + + + + + + + Mime type of content (image/jpeg) + + + + + + + + URL of hyperlink. + + + + + + + + + An email address. Broken into two parts (id and domain) to help prevent email harvesting. + + + + + + id half of email address (billgates2004) + + + + + + + domain half of email address (hotmail.com) + + + + + + + + + A person or organization. + + + + + + + Name of person or organization. + + + + + + + Email address. + + + + + + + Link to Web site or other external information about person. + + + + + + + + + + A geographic point with optional elevation and time. Available for use by other schemas. + + + + + + + The elevation (in meters) of the point. + + + + + + + The time that the point was recorded. + + + + + + + + The latitude of the point. Decimal degrees, WGS84 datum. + + + + + + + The latitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + An ordered sequence of points. (for polygons or polylines, e.g.) + + + + + + + Ordered list of geographic points. + + + + + + + + + + Two lat/lon pairs defining the extent of an element. + + + + + + The minimum latitude. + + + + + + + The minimum longitude. + + + + + + + The maximum latitude. + + + + + + + The maximum longitude. + + + + + + + + + + The latitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + + + The longitude of the point. Decimal degrees, WGS84 datum. + + + + + + + + + + + + Used for bearing, heading, course. Units are decimal degrees, true (not magnetic). + + + + + + + + + + + + Type of GPS fix. none means GPS had no fix. To signify "the fix info is unknown, leave out fixType entirely. pps = military signal used + + + + + + + + + + + + + + + Represents a differential GPS station. + + + + + + + + + diff --git a/tools/schema/kml/atom-author-link.xsd b/tools/schema/kml/atom-author-link.xsd new file mode 100644 index 000000000..b3d77ade8 --- /dev/null +++ b/tools/schema/kml/atom-author-link.xsd @@ -0,0 +1,66 @@ + + + + + atom-author-link.xsd 2008-01-23 + There is no official atom XSD. This XSD is created based on: + http://atompub.org/2005/08/17/atom.rnc. A subset of Atom as used in the + ogckml22.xsd is defined here. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/schema/kml/kml22gx.xsd b/tools/schema/kml/kml22gx.xsd new file mode 100644 index 000000000..791b3a544 --- /dev/null +++ b/tools/schema/kml/kml22gx.xsd @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/schema/kml/ogckml22.xsd b/tools/schema/kml/ogckml22.xsd new file mode 100644 index 000000000..0d233808d --- /dev/null +++ b/tools/schema/kml/ogckml22.xsd @@ -0,0 +1,1642 @@ + + + + + ogckml22.xsd 2008-01-23 + XML Schema Document for OGC KML version 2.2. Copyright (c) + 2008 Open Geospatial Consortium. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + not anyURI due to $[x] substitution in + PhotoOverlay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Snippet deprecated in 2.2 + + + + + + + + + + + + + Metadata deprecated in 2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Metadata deprecated in 2.2 + + + + + + MetadataType deprecated in 2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + is the root element. + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Url deprecated in 2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Url deprecated in 2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + color deprecated in 2.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/schema/kml/xAL.xsd b/tools/schema/kml/xAL.xsd new file mode 100644 index 000000000..b652731b1 --- /dev/null +++ b/tools/schema/kml/xAL.xsd @@ -0,0 +1,1680 @@ + + + + + xAL: eXtensible Address Language +This is an XML document type definition (DTD) for +defining addresses. +Original Date of Creation: 1 March 2001 +Copyright(c) 2000, OASIS. All Rights Reserved [http://www.oasis-open.org] +Contact: Customer Information Quality Technical Committee, OASIS +http://www.oasis-open.org/committees/ciq +VERSION: 2.0 [MAJOR RELEASE] Date of Creation: 01 May 2002 +Last Update: 24 July 2002 +Previous Version: 1.3 + + + Common Attributes:Type - If not documented then it means, possible values of Type not limited to: Official, Unique, Abbreviation, OldName, Synonym +Code:Address element codes are used by groups like postal groups like ECCMA, ADIS, UN/PROLIST for postal services + + + + + Used by postal services to encode the name of the element. + + + + + + Root element for a list of addresses + + + + + + + + + Specific to DTD to specify the version number of DTD + + + + + + + + This container defines the details of the address. Can define multiple addresses including tracking address history + + + + + + + Postal authorities use specific postal service data to expedient delivery of mail + + + + + + A unique identifier of an address assigned by postal authorities. Example: DPID in Australia + + + + + Type of identifier. eg. DPID as in Australia + + + + + + + + + + Directly affects postal service distribution + + + + + Specific to postal service + + + + + + + + + Required for some postal services + + + + + Specific to postal service + + + + + + + + + Required for some postal services + + + + + Specific to postal service + + + + + + + + + Used for sorting addresses. Values may for example be CEDEX 16 (France) + + + + + Specific to postal service + + + + + + + + Latitude of delivery address + + + + + Specific to postal service + + + + + + + + + Latitude direction of delivery address;N = North and S = South + + + + Specific to postal service + + + + + + + + + Longtitude of delivery address + + + + + Specific to postal service + + + + + + + + + Longtitude direction of delivery address;N=North and S=South + + + + + Specific to postal service + + + + + + + + + any postal service elements not covered by the container can be represented using this element + + + + + Specific to postal service + + + + + + + + + + + USPS, ECMA, UN/PROLIST, etc + + + + + + + + Use the most suitable option. Country contains the most detailed information while Locality is missing Country and AdminArea + + + + Address as one line of free text + + + + + Postal, residential, corporate, etc + + + + + + + + + Container for Address lines + + + + + Specification of a country + + + + + + + A country code according to the specified scheme + + + + + Country code scheme possible values, but not limited to: iso.3166-2, iso.3166-3 for two and three character country codes. + + + + + + + + + + + + + + + + + + + + + + + + + + Type of address. Example: Postal, residential,business, primary, secondary, etc + + + + + Moved, Living, Investment, Deceased, etc.. + + + + + Start Date of the validity of address + + + + + End date of the validity of address + + + + + Communication, Contact, etc. + + + + + + Key identifier for the element for not reinforced references from other elements. Not required to be unique for the document to be valid, but application may get confused if not unique. Extend this schema adding unique contraint if needed. + + + + + + + + + + + + + + + + Occurrence of the building name before/after the type. eg. EGIS BUILDING where name appears before type + + + + + + + + + + + + + + + + + Name of the dependent locality + + + + + + + + + + Number of the dependent locality. Some areas are numbered. Eg. SECTOR 5 in a Suburb as in India or SOI SUKUMVIT 10 as in Thailand + + + + + Eg. SECTOR occurs before 5 in SECTOR 5 + + + + + + + + + + + + + + + + + Specification of a large mail user address. Examples of large mail users are postal companies, companies in France with a cedex number, hospitals and airports with their own post code. Large mail user addresses do not have a street name with premise name or premise number in countries like Netherlands. But they have a POBox and street also in countries like France + + + + + + A Postal van is specific for a route as in Is`rael, Rural route + + + + + + + + Dependent localities are Districts within cities/towns, locality divisions, postal +divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). + + + + + + + + City or IndustrialEstate, etc + + + + + Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system + + + + + "VIA" as in Hill Top VIA Parish where Parish is a locality and Hill Top is a dependent locality + + + + + Eg. Erode (Dist) where (Dist) is the Indicator + + + + + + + + + + Name of the firm + + + + + + + + + + + A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. + + + + + + + + + + + + + + Name of the large mail user. eg. Smith Ford International airport + + + + + Airport, Hospital, etc + + + + + + + + + Specification of the identification number of a large mail user. An example are the Cedex codes in France. + + + + + CEDEX Code + + + + + eg. Building 429 in which Building is the Indicator + + + + + + + + + Name of the building + + + + + + + + + + + + + + + + + Name of the the Mail Stop. eg. MSP, MS, etc + + + + + + + + + + Number of the Mail stop. eg. 123 in MS 123 + + + + + "-" in MS-123 + + + + + + + + + + + + + + + + + + Name of the Postal Route + + + + + + + + + + Number of the Postal Route + + + + + + + + + + + + + + + + + + + Name of the SubPremise + + + + + + EGIS Building where EGIS occurs before Building + + + + + + + + + + + + + + + + Name of the SubPremise Location. eg. LOBBY, BASEMENT, GROUND FLOOR, etc... + + + + + + + + Specification of the identifier of a sub-premise. Examples of sub-premises are apartments and suites. sub-premises in a building are often uniquely identified by means of consecutive +identifiers. The identifier can be a number, a letter or any combination of the two. In the latter case, the identifier includes exactly one variable (range) part, which is either a +number or a single letter that is surrounded by fixed parts at the left (prefix) or the right (postfix). + + + + + "TH" in 12TH which is a floor number, "NO." in NO.1, "#" in APT #12, etc. + + + + + "No." occurs before 1 in No.1, or TH occurs after 12 in 12TH + + + + + + + + + + + 12TH occurs "before" FLOOR (a type of subpremise) in 12TH FLOOR + + + + + + + + + + + "/" in 12/14 Archer Street where 12 is sub-premise number and 14 is premise number + + + + + + + + + + + Prefix of the sub premise number. eg. A in A-12 + + + + + A-12 where 12 is number and A is prefix and "-" is the separator + + + + + + + + + + Suffix of the sub premise number. eg. A in 12A + + + + + 12-A where 12 is number and A is suffix and "-" is the separator + + + + + + + + + + Name of the building + + + + + Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from a large mail user address, which contains no street. + + + + + A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. + + + + + + Specification of a single sub-premise. Examples of sub-premises are apartments and suites. +Each sub-premise should be uniquely identifiable. SubPremiseType: Specification of the name of a sub-premise type. Possible values not limited to: Suite, Appartment, Floor, Unknown +Multiple levels within a premise by recursively calling SubPremise Eg. Level 4, Suite 2, Block C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Free format address representation. An address can have more than one line. The order of the AddressLine elements must be preserved. + + + + + Defines the type of address line. eg. Street, Address Line 1, etc. + + + + + + + + + Locality is one level lower than adminisstrative area. Eg.: cities, reservations and any other built-up areas. + + + + + + + Name of the locality + + + + + + + + + + + + Specification of a large mail user address. Examples of large mail users are postal companies, companies in France with a cedex number, hospitals and airports with their own post code. Large mail user addresses do not have a street name with premise name or premise number in countries like Netherlands. But they have a POBox and street also in countries like France + + + + + + A Postal van is specific for a route as in Is`rael, Rural route + + + + + + + + Dependent localities are Districts within cities/towns, locality divisions, postal +divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). + + + + + + + + Possible values not limited to: City, IndustrialEstate, etc + + + + + Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system + + + + + Erode (Dist) where (Dist) is the Indicator + + + + + + + + Specification of a thoroughfare. A thoroughfare could be a rd, street, canal, river, etc. Note dependentlocality in a street. For example, in some countries, a large street will +have many subdivisions with numbers. Normally the subdivision name is the same as the road name, but with a number to identifiy it. Eg. SOI SUKUMVIT 3, SUKUMVIT RD, BANGKOK + + + + + + + + + A container to represent a range of numbers (from x thru y)for a thoroughfare. eg. 1-2 Albert Av + + + + + + + Starting number in the range + + + + + + + + + + + + + + + Ending number in the range + + + + + + + + + + + + + + + + Thoroughfare number ranges are odd or even + + + + + + + + + + + "No." No.12-13 + + + + + "-" in 12-14 or "Thru" in 12 Thru 14 etc. + + + + + No.12-14 where "No." is before actual street number + + + + + + + + + + + 23-25 Archer St, where number appears before name + + + + + + + + + + + + + + + + + + + + + North Baker Street, where North is the pre-direction. The direction appears before the name. + + + + + Appears before the thoroughfare name. Ed. Spanish: Avenida Aurora, where Avenida is the leading type / French: Rue Moliere, where Rue is the leading type. + + + + + Specification of the name of a Thoroughfare (also dependant street name): street name, canal name, etc. + + + + + Appears after the thoroughfare name. Ed. British: Baker Lane, where Lane is the trailing type. + + + + + 221-bis Baker Street North, where North is the post-direction. The post-direction appears after the name. + + + + + DependentThroughfare is related to a street; occurs in GB, IE, ES, PT + + + + + + + North Baker Street, where North is the pre-direction. The direction appears before the name. + + + + + Appears before the thoroughfare name. Ed. Spanish: Avenida Aurora, where Avenida is the leading type / French: Rue Moliere, where Rue is the leading type. + + + + + Specification of the name of a Thoroughfare (also dependant street name): street name, canal name, etc. + + + + + Appears after the thoroughfare name. Ed. British: Baker Lane, where Lane is the trailing type. + + + + + 221-bis Baker Street North, where North is the post-direction. The post-direction appears after the name. + + + + + + + + + + + + Dependent localities are Districts within cities/towns, locality divisions, postal +divisions of cities, suburbs, etc. DependentLocality is a recursive element, but no nesting deeper than two exists (Locality-DependentLocality-DependentLocality). + + + + + + Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from +a large mail user address, which contains no street. + + + + + + + + + + Does this thoroughfare have a a dependent thoroughfare? Corner of street X, etc + + + + + + + + + + + Corner of, Intersection of + + + + + Corner of Street1 AND Street 2 where AND is the Connector + + + + + STS in GEORGE and ADELAIDE STS, RDS IN A and B RDS, etc. Use only when both the street types are the same + + + + + + + + Examples of administrative areas are provinces counties, special regions (such as "Rijnmond"), etc. + + + + + + + Name of the administrative area. eg. MI in USA, NSW in Australia + + + + + + + + + + Specification of a sub-administrative area. An example of a sub-administrative areas is a county. There are two places where the name of an administrative +area can be specified and in this case, one becomes sub-administrative area. + + + + + + + Name of the sub-administrative area + + + + + + + + + + + + + + + + + Province or State or County or Kanton, etc + + + + + Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system + + + + + Erode (Dist) where (Dist) is the Indicator + + + + + + + + + + + + + + + Province or State or County or Kanton, etc + + + + + Postal or Political - Sometimes locations must be distinguished between postal system, and physical locations as defined by a political system + + + + + Erode (Dist) where (Dist) is the Indicator + + + + + + + + Specification of a post office. Examples are a rural post office where post is delivered and a post office containing post office boxes. + + + + + + + + Specification of the name of the post office. This can be a rural postoffice where post is delivered or a post office containing post office boxes. + + + + + + + + + + Specification of the number of the postoffice. Common in rural postoffices + + + + + MS in MS 62, # in MS # 12, etc. + + + + + MS occurs before 62 in MS 62 + + + + + + + + + + + + + + + + A Postal van is specific for a route as in Is`rael, Rural route + + + + + + + + + Could be a Mobile Postoffice Van as in Isreal + + + + + eg. Kottivakkam (P.O) here (P.O) is the Indicator + + + + + + + + PostalCode is the container element for either simple or complex (extended) postal codes. Type: Area Code, Postcode, etc. + + + + + + + Specification of a postcode. The postcode is formatted according to country-specific rules. Example: SW3 0A8-1A, 600074, 2067 + + + + + Old Postal Code, new code, etc + + + + + + + + + Examples are: 1234 (USA), 1G (UK), etc. + + + + + Delivery Point Suffix, New Postal Code, etc.. + + + + + The separator between postal code number and the extension. Eg. "-" + + + + + + + + + A post town is not the same as a locality. A post town can encompass a collection of (small) localities. It can also be a subpart of a locality. An actual post town in Norway is "Bergen". + + + + + + + Name of the post town + + + + + + + + + + GENERAL PO in MIAMI GENERAL PO + + + + + + + + + + eg. village, town, suburb, etc + + + + + + + + + + Area Code, Postcode, Delivery code as in NZ, etc + + + + + + + + Specification of a postbox like mail delivery point. Only a single postbox number can be specified. Examples of postboxes are POBox, free mail numbers, etc. + + + + + + + Specification of the number of a postbox + + + + + + + + + Specification of the prefix of the post box number. eg. A in POBox:A-123 + + + + + A-12 where 12 is number and A is prefix and "-" is the separator + + + + + + + + + Specification of the suffix of the post box number. eg. A in POBox:123A + + + + + 12-A where 12 is number and A is suffix and "-" is the separator + + + + + + + + + Some countries like USA have POBox as 12345-123 + + + + + "-" is the NumberExtensionSeparator in POBOX:12345-123 + + + + + + + + Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from +a large mail user address, which contains no street. + + + + + + + + Possible values are, not limited to: POBox and Freepost. + + + + + LOCKED BAG NO:1234 where the Indicator is NO: and Type is LOCKED BAG + + + + + + + + Subdivision in the firm: School of Physics at Victoria University (School of Physics is the department) + + + + + + + Specification of the name of a department. + + + + + + + + + + A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. + + + + + + + + School in Physics School, Division in Radiology division of school of physics + + + + + + + + Specification of a single premise, for example a house or a building. The premise as a whole has a unique premise (house) number or a premise name. There could be more than +one premise in a street referenced in an address. For example a building address near a major shopping centre or raiwlay station + + + + + + + Specification of the name of the premise (house, building, park, farm, etc). A premise name is specified when the premise cannot be addressed using a street name plus premise (house) number. + + + + + + EGIS Building where EGIS occurs before Building, DES JARDINS occurs after COMPLEXE DES JARDINS + + + + + + + + + + + + + + + + LOBBY, BASEMENT, GROUND FLOOR, etc... + + + + + + + + + + + Specification for defining the premise number range. Some premises have number as Building C1-C7 + + + + + + Start number details of the premise number range + + + + + + + + + + + + + End number details of the premise number range + + + + + + + + + + + + + + Eg. Odd or even number range + + + + + Eg. No. in Building No:C1-C5 + + + + + "-" in 12-14 or "Thru" in 12 Thru 14 etc. + + + + + + No.12-14 where "No." is before actual street number + + + + + + + + + + + Building 23-25 where the number occurs after building name + + + + + + + + + + + + + + + + + + + Specification of the name of a building. + + + + + + Specification of a single sub-premise. Examples of sub-premises are apartments and suites. Each sub-premise should be uniquely identifiable. + + + + + Specification of a firm, company, organization, etc. It can be specified as part of an address that contains a street or a postbox. It is therefore different from a large mail user address, which contains no street. + + + + + + A MailStop is where the the mail is delivered to within a premise/subpremise/firm or a facility. + + + + + + + + + COMPLEXE in COMPLEX DES JARDINS, A building, station, etc + + + + + STREET, PREMISE, SUBPREMISE, PARK, FARM, etc + + + + + NEAR, ADJACENT TO, etc + + + + + DES, DE, LA, LA, DU in RUE DU BOIS. These terms connect a premise/thoroughfare type and premise/thoroughfare name. Terms may appear with names AVE DU BOIS + + + + + + + + Prefix before the number. A in A12 Archer Street + + + + A-12 where 12 is number and A is prefix and "-" is the separator + + + + + + + + + + Suffix after the number. A in 12A Archer Street + + + + + NEAR, ADJACENT TO, etc + 12-A where 12 is number and A is suffix and "-" is the separator + + + + + + + + + + Eg.: 23 Archer street or 25/15 Zero Avenue, etc + + + + + 12 Archer Street is "Single" and 12-14 Archer Street is "Range" + + + + + + + + + + + + No. in Street No.12 or "#" in Street # 12, etc. + + + + + No.12 where "No." is before actual street number + + + + + + + + + + + 23 Archer St, Archer Street 23, St Archer 23 + + + + + + + + + + + + + + + + + Specification of the identifier of the premise (house, building, etc). Premises in a street are often uniquely identified by means of consecutive identifiers. The identifier can be a number, a letter or any combination of the two. + + + + + Building 12-14 is "Range" and Building 12 is "Single" + + + + + + + + + + + + No. in House No.12, # in #12, etc. + + + + + No. occurs before 12 No.12 + + + + + + + + + + + 12 in BUILDING 12 occurs "after" premise type BUILDING + + + + + + + + + + + + + + + A in A12 + + + + + + + A-12 where 12 is number and A is prefix and "-" is the separator + + + + + + + + + + + + A in 12A + + + + + 12-A where 12 is number and A is suffix and "-" is the separator + + + + + + + + + + Specification of the name of a country. + + + + + Old name, new name, etc + + + + + + +