libdap  Updated for version 3.18.2
DapXmlNamespaces.h
1 /*
2  * DapXmlNamspaces.h
3  *
4  * Created on: Feb 19, 2014
5  * Author: ndp
6  */
7 
8 #ifndef DAPXMLNAMSPACES_H_
9 #define DAPXMLNAMSPACES_H_
10 
11 
12 namespace libdap {
13 
14 enum DAPVersion { DAP_2_0, DAP_3_2, DAP_4_0 };
15 
17 private:
18 
19  string c_xml_xsi;
20 
21  string c_xml_namespace;
22 
23  string grddl_transformation_dap32;
24 
25  string c_default_dap20_schema_location;
26  string c_default_dap32_schema_location;
27  string c_default_dap40_schema_location;
28 
29  string c_dap20_namespace;
30  string c_dap32_namespace;
31  string c_dap40_namespace;
32 
33 public:
34 
36  c_xml_xsi = "http://www.w3.org/2001/XMLSchema-instance";
37  c_xml_namespace = "http://www.w3.org/XML/1998/namespace";
38 
39  grddl_transformation_dap32 = "http://xml.opendap.org/transforms/ddxToRdfTriples.xsl";
40 
41  c_default_dap20_schema_location = "http://xml.opendap.org/dap/dap2.xsd";
42  c_default_dap32_schema_location = "http://xml.opendap.org/dap/dap3.2.xsd";
43  c_default_dap40_schema_location = "http://xml.opendap.org/dap/dap4.0.xsd";
44 
45  c_dap20_namespace = "http://xml.opendap.org/ns/DAP2";
46  c_dap32_namespace = "http://xml.opendap.org/ns/DAP/3.2#";
47  c_dap40_namespace = "http://xml.opendap.org/ns/DAP/4.0#";
48 
49  };
50  virtual ~DapXmlNamspaces(){};
51 
56  return c_xml_xsi;
57  }
58 
62  string getXmlNamespace(){
63  return c_xml_namespace;
64  }
65 
69  string getGrddlTransformation(DAPVersion version){
70  switch(version) {
71  case DAP_2_0:
72  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 2.0");
73  break;
74 
75  case DAP_3_2:
76  return grddl_transformation_dap32;
77  break;
78 
79  case DAP_4_0:
80  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - GRDDL Transformation undefined for DAP 4.0");
81  break;
82 
83  default:
84  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
85  break;
86  }
87  return 0;
88  }
89 
90 
91 
95  string getDapNamespaceString(DAPVersion version){
96  switch(version) {
97  case DAP_2_0:
98  return c_dap20_namespace;
99  break;
100 
101  case DAP_3_2:
102  return c_dap32_namespace;
103  break;
104 
105  case DAP_4_0:
106  return c_dap40_namespace;
107  break;
108 
109  default:
110  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getDapXmlNamespaceString() - Unrecognized namespace version.");
111  break;
112  }
113  return 0;
114  }
115 
119  string getSchemaLocationString(DAPVersion version){
120  switch(version) {
121  case DAP_2_0:
122  return c_default_dap20_schema_location;
123  break;
124 
125  case DAP_3_2:
126  return c_default_dap32_schema_location;
127  break;
128 
129  case DAP_4_0:
130  return c_default_dap40_schema_location;
131  break;
132 
133  default:
134  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getSchemaLocationString() - Unrecognized namespace version.");
135  break;
136  }
137  return 0;
138  }
139 
140 
141 
146  string getSchemaLocationDeclarationString(DAPVersion version){
147  switch(version) {
148  case DAP_2_0:
149  return c_dap20_namespace + " " + c_default_dap20_schema_location;
150  break;
151 
152  case DAP_3_2:
153  return c_dap32_namespace + " " + c_default_dap32_schema_location;
154  break;
155 
156  case DAP_4_0:
157  return c_dap40_namespace + " " + c_default_dap40_schema_location;
158  break;
159 
160  default:
161  throw InternalErr(__FILE__, __LINE__, "DapXmlNamspaces::getSchemaLocationDeclarationString() - Unrecognized namespace version.");
162  break;
163  }
164  return 0;
165  }
166 
167 };
168 
169 } /* namespace libdap */
170 #endif /* DAPXMLNAMSPACES_H_ */
string getGrddlTransformation(DAPVersion version)
A class for software fault reporting.
Definition: InternalErr.h:64
string getDapNamespaceString(DAPVersion version)
string getSchemaLocationDeclarationString(DAPVersion version)
string getSchemaLocationString(DAPVersion version)