libdap
Updated for version 3.17.0
|
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_ */