|
Packit |
a4aae4 |
// -*- mode: c++; c-basic-offset:4 -*-
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// This file is part of libdap, A C++ implementation of the OPeNDAP Data
|
|
Packit |
a4aae4 |
// Access Protocol.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Copyright (c) 2017 OPeNDAP, Inc.
|
|
Packit |
a4aae4 |
// Author: Nathan Potter <ndp@opendap.org>
|
|
Packit |
a4aae4 |
//
|
|
Packit |
a4aae4 |
// This library is free software; you can redistribute it and/or
|
|
Packit |
a4aae4 |
// modify it under the terms of the GNU Lesser General Public
|
|
Packit |
a4aae4 |
// License as published by the Free Software Foundation; either
|
|
Packit |
a4aae4 |
// version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
a4aae4 |
//
|
|
Packit |
a4aae4 |
// This library is distributed in the hope that it will be useful,
|
|
Packit |
a4aae4 |
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
a4aae4 |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
a4aae4 |
// Lesser General Public License for more details.
|
|
Packit |
a4aae4 |
//
|
|
Packit |
a4aae4 |
// You should have received a copy of the GNU Lesser General Public
|
|
Packit |
a4aae4 |
// License along with this library; if not, write to the Free Software
|
|
Packit |
a4aae4 |
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
Packit |
a4aae4 |
//
|
|
Packit |
a4aae4 |
// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#ifndef DAPXMLNAMSPACES_H_
|
|
Packit |
a4aae4 |
#define DAPXMLNAMSPACES_H_
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#include <string>
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
namespace libdap {
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
enum DAPVersion { DAP_2_0, DAP_3_2, DAP_4_0 };
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
class DapXmlNamspaces {
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
public:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
virtual ~DapXmlNamspaces() {};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the XML Schema-instance namespace string.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getXmlXsiNamespace(){
|
|
Packit |
a4aae4 |
return "http://www.w3.org/2001/XMLSchema-instance";
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the XML namespace string.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getXmlNamespace(){
|
|
Packit |
a4aae4 |
return "http://www.w3.org/XML/1998/namespace";
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the GRDDL transformation URL for the passed DAP version.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getGrddlTransformation(DAPVersion version){
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
switch(version) {
|
|
Packit |
a4aae4 |
case DAP_2_0:
|
|
Packit |
a4aae4 |
throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 2.0");
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_3_2:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/transforms/ddxToRdfTriples.xsl";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_4_0:
|
|
Packit |
a4aae4 |
throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 4.0");
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the DAP XML namespace string for the passed DAP version.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getDapNamespaceString(DAPVersion version){
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
switch(version) {
|
|
Packit |
a4aae4 |
case DAP_2_0:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/ns/DAP2";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_3_2:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/ns/DAP/3.2#";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_4_0:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/ns/DAP/4.0#";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the schema location URI string for the passed DAP version.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getSchemaLocationString(DAPVersion version){
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
switch(version) {
|
|
Packit |
a4aae4 |
case DAP_2_0:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/dap/dap2.xsd";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_3_2:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/dap/dap3.2.xsd";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case DAP_4_0:
|
|
Packit |
a4aae4 |
return "http://xml.opendap.org/dap/dap4.0.xsd";
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getSchemaLocationString() - Unrecognized namespace version.");
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/**
|
|
Packit |
a4aae4 |
* Returns the schema location declaration (the namespace string followed by a
|
|
Packit |
a4aae4 |
* space followed by the schema location string) for the passed DAP version.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
static std::string getSchemaLocationDeclarationString(DAPVersion version){
|
|
Packit |
a4aae4 |
return getDapNamespaceString(version).append(" ").append(getSchemaLocationString(version));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
} /* namespace libdap */
|
|
Packit |
a4aae4 |
#endif /* DAPXMLNAMSPACES_H_ */
|