You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.0 KiB
C++
80 lines
3.0 KiB
C++
// Copyright 2009, Google Inc. All rights reserved.
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions are met:
|
|
//
|
|
// 1. Redistributions of source code must retain the above copyright notice,
|
|
// this list of conditions and the following disclaimer.
|
|
// 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
// this list of conditions and the following disclaimer in the documentation
|
|
// and/or other materials provided with the distribution.
|
|
// 3. Neither the name of Google Inc. nor the names of its contributors may be
|
|
// used to endorse or promote products derived from this software without
|
|
// specific prior written permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
#ifndef KML_BASE_XML_NAMESPACES_H__
|
|
#define KML_BASE_XML_NAMESPACES_H__
|
|
|
|
#include "kml/base/util.h"
|
|
|
|
namespace kmlbase {
|
|
|
|
// These identify KML-related XML namespaces. Most are not used by KML or
|
|
// by libkml and are here only as a convenience when parsing other XML
|
|
// langauges that may include KML. Many are specific to the Google Data APIs
|
|
// as indicated.
|
|
typedef enum {
|
|
XMLNS_NONE,
|
|
XMLNS_APP,
|
|
XMLNS_ATOM,
|
|
XMLNS_BATCH, // Google Data
|
|
XMLNS_DOCS, // Google Data
|
|
XMLNS_EXIF,
|
|
XMLNS_GD, // Google Data
|
|
XMLNS_GEORSS,
|
|
XMLNS_GML,
|
|
XMLNS_GPHOTO, // Google Data
|
|
XMLNS_GPX,
|
|
XMLNS_GX22,
|
|
XMLNS_GS, // Google Data
|
|
XMLNS_KML22,
|
|
XMLNS_MEDIA,
|
|
XMLNS_OPENSEARCH,
|
|
XMLNS_XAL,
|
|
XMLNS_XML,
|
|
XMLNS_XSD,
|
|
XMLNS_XSI
|
|
} XmlnsId;
|
|
|
|
// This data structure associates the libkml-internal xmlns id with the
|
|
// namespace's typical prefix and the full namespace name. All ids, prefixes,
|
|
// and namespaces must be unique.
|
|
struct XmlNamespace {
|
|
XmlnsId xmlns_id_;
|
|
const char* prefix_;
|
|
const char* xml_namespace_;
|
|
};
|
|
|
|
// This function returns a libkml-specific prefix and XML namespace for the
|
|
// given id. This exists such that elements within libkml need only hold
|
|
// a small identifier instead of a full namespace string. Either prefix or
|
|
// xml_namespace pointers can be NULL. The return value indicates whether
|
|
// the given id is known to libkml.
|
|
bool FindXmlNamespaceAndPrefix(XmlnsId xmlns_id, string* prefix,
|
|
string* xml_namespace);
|
|
|
|
} // end namespace kmlbase
|
|
|
|
#endif // KML_BASE_XML_NAMESPACES_H__
|