libdap  Updated for version 3.17.0
DapXmlNamespaces.h
00001 /*
00002  * DapXmlNamspaces.h
00003  *
00004  *  Created on: Feb 19, 2014
00005  *      Author: ndp
00006  */
00007 
00008 #ifndef DAPXMLNAMSPACES_H_
00009 #define DAPXMLNAMSPACES_H_
00010 
00011 
00012 namespace libdap {
00013 
00014 enum DAPVersion { DAP_2_0, DAP_3_2, DAP_4_0 };
00015 
00016 class DapXmlNamspaces {
00017 private:
00018 
00019          string c_xml_xsi;
00020 
00021          string c_xml_namespace;
00022 
00023          string grddl_transformation_dap32;
00024 
00025          string c_default_dap20_schema_location;
00026          string c_default_dap32_schema_location;
00027          string c_default_dap40_schema_location;
00028 
00029          string c_dap20_namespace;
00030          string c_dap32_namespace;
00031          string c_dap40_namespace;
00032 
00033 public:
00034 
00035         DapXmlNamspaces(){
00036                  c_xml_xsi = "http://www.w3.org/2001/XMLSchema-instance";
00037                  c_xml_namespace = "http://www.w3.org/XML/1998/namespace";
00038 
00039                  grddl_transformation_dap32 = "http://xml.opendap.org/transforms/ddxToRdfTriples.xsl";
00040 
00041                  c_default_dap20_schema_location = "http://xml.opendap.org/dap/dap2.xsd";
00042                  c_default_dap32_schema_location = "http://xml.opendap.org/dap/dap3.2.xsd";
00043                  c_default_dap40_schema_location = "http://xml.opendap.org/dap/dap4.0.xsd";
00044 
00045                  c_dap20_namespace = "http://xml.opendap.org/ns/DAP2";
00046                  c_dap32_namespace = "http://xml.opendap.org/ns/DAP/3.2#";
00047                  c_dap40_namespace = "http://xml.opendap.org/ns/DAP/4.0#";
00048 
00049         };
00050         virtual ~DapXmlNamspaces(){};
00051 
00055         string getXmlXsiNamespace(){
00056                 return c_xml_xsi;
00057         }
00058 
00062         string getXmlNamespace(){
00063                 return c_xml_namespace;
00064         }
00065 
00069         string getGrddlTransformation(DAPVersion version){
00070                 switch(version) {
00071                 case DAP_2_0:
00072                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 2.0");
00073                         break;
00074 
00075                 case DAP_3_2:
00076                         return grddl_transformation_dap32;
00077                         break;
00078 
00079                 case DAP_4_0:
00080                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 4.0");
00081                         break;
00082 
00083                 default:
00084                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
00085                         break;
00086                 }
00087                 return 0;
00088         }
00089 
00090 
00091 
00095         string getDapNamespaceString(DAPVersion version){
00096                 switch(version) {
00097                 case DAP_2_0:
00098                         return c_dap20_namespace;
00099                         break;
00100 
00101                 case DAP_3_2:
00102                         return c_dap32_namespace;
00103                         break;
00104 
00105                 case DAP_4_0:
00106                         return c_dap40_namespace;
00107                         break;
00108 
00109                 default:
00110                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
00111                         break;
00112                 }
00113                 return 0;
00114         }
00115 
00119         string getSchemaLocationString(DAPVersion version){
00120                 switch(version) {
00121                 case DAP_2_0:
00122                         return c_default_dap20_schema_location;
00123                         break;
00124 
00125                 case DAP_3_2:
00126                         return c_default_dap32_schema_location;
00127                         break;
00128 
00129                 case DAP_4_0:
00130                         return c_default_dap40_schema_location;
00131                         break;
00132 
00133                 default:
00134                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getSchemaLocationString() - Unrecognized namespace version.");
00135                         break;
00136                 }
00137                 return 0;
00138         }
00139 
00140 
00141 
00146         string getSchemaLocationDeclarationString(DAPVersion version){
00147                 switch(version) {
00148                 case DAP_2_0:
00149                         return c_dap20_namespace + " " + c_default_dap20_schema_location;
00150                         break;
00151 
00152                 case DAP_3_2:
00153                         return c_dap32_namespace + " " + c_default_dap32_schema_location;
00154                         break;
00155 
00156                 case DAP_4_0:
00157                         return c_dap40_namespace + " " + c_default_dap40_schema_location;
00158                         break;
00159 
00160                 default:
00161                         throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getSchemaLocationDeclarationString() - Unrecognized namespace version.");
00162                         break;
00163                 }
00164                 return 0;
00165         }
00166 
00167 };
00168 
00169 } /* namespace libdap */
00170 #endif /* DAPXMLNAMSPACES_H_ */