00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef CONFIGURATION_XMLSCHEMA_CONFIGURATION_XMLSCHEMA_H
00035 #define CONFIGURATION_XMLSCHEMA_CONFIGURATION_XMLSCHEMA_H
00036
00037 #ifndef XSD_CXX11
00038 #define XSD_CXX11
00039 #endif
00040
00041 #ifndef XSD_USE_CHAR
00042 #define XSD_USE_CHAR
00043 #endif
00044
00045 #ifndef XSD_CXX_TREE_USE_CHAR
00046 #define XSD_CXX_TREE_USE_CHAR
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #include <xsd/cxx/config.hxx>
00055
00056 #if (XSD_INT_VERSION != 4000000L)
00057 #error XSD runtime version mismatch
00058 #endif
00059
00060 #include <xsd/cxx/pre.hxx>
00061
00062 #include <xsd/cxx/xml/char-utf8.hxx>
00063
00064 #include <xsd/cxx/tree/exceptions.hxx>
00065 #include <xsd/cxx/tree/elements.hxx>
00066 #include <xsd/cxx/tree/types.hxx>
00067
00068 #include <xsd/cxx/xml/error-handler.hxx>
00069
00070 #include <xsd/cxx/xml/dom/auto-ptr.hxx>
00071
00072 #include <xsd/cxx/tree/parsing.hxx>
00073 #include <xsd/cxx/tree/parsing/byte.hxx>
00074 #include <xsd/cxx/tree/parsing/unsigned-byte.hxx>
00075 #include <xsd/cxx/tree/parsing/short.hxx>
00076 #include <xsd/cxx/tree/parsing/unsigned-short.hxx>
00077 #include <xsd/cxx/tree/parsing/int.hxx>
00078 #include <xsd/cxx/tree/parsing/unsigned-int.hxx>
00079 #include <xsd/cxx/tree/parsing/long.hxx>
00080 #include <xsd/cxx/tree/parsing/unsigned-long.hxx>
00081 #include <xsd/cxx/tree/parsing/boolean.hxx>
00082 #include <xsd/cxx/tree/parsing/float.hxx>
00083 #include <xsd/cxx/tree/parsing/double.hxx>
00084 #include <xsd/cxx/tree/parsing/decimal.hxx>
00085
00086 namespace xml_schema
00087 {
00088
00089
00090 typedef ::xsd::cxx::tree::type type;
00091 typedef ::xsd::cxx::tree::simple_type< char, type > simple_type;
00092 typedef ::xsd::cxx::tree::type container;
00093
00094
00095
00096 typedef signed char byte;
00097 typedef unsigned char unsigned_byte;
00098
00099
00100
00101 typedef short short_;
00102 typedef unsigned short unsigned_short;
00103
00104
00105
00106 typedef int int_;
00107 typedef unsigned int unsigned_int;
00108
00109
00110
00111 typedef long long long_;
00112 typedef unsigned long long unsigned_long;
00113
00114
00115
00116 typedef long long integer;
00117 typedef long long non_positive_integer;
00118 typedef unsigned long long non_negative_integer;
00119 typedef unsigned long long positive_integer;
00120 typedef long long negative_integer;
00121
00122
00123
00124 typedef bool boolean;
00125
00126
00127
00128 typedef float float_;
00129 typedef double double_;
00130 typedef double decimal;
00131
00132
00133
00134 typedef ::xsd::cxx::tree::string< char, simple_type > string;
00135 typedef ::xsd::cxx::tree::normalized_string< char, string > normalized_string;
00136 typedef ::xsd::cxx::tree::token< char, normalized_string > token;
00137 typedef ::xsd::cxx::tree::name< char, token > name;
00138 typedef ::xsd::cxx::tree::nmtoken< char, token > nmtoken;
00139 typedef ::xsd::cxx::tree::nmtokens< char, simple_type, nmtoken > nmtokens;
00140 typedef ::xsd::cxx::tree::ncname< char, name > ncname;
00141 typedef ::xsd::cxx::tree::language< char, token > language;
00142
00143
00144
00145 typedef ::xsd::cxx::tree::id< char, ncname > id;
00146 typedef ::xsd::cxx::tree::idref< char, ncname, type > idref;
00147 typedef ::xsd::cxx::tree::idrefs< char, simple_type, idref > idrefs;
00148
00149
00150
00151 typedef ::xsd::cxx::tree::uri< char, simple_type > uri;
00152
00153
00154
00155 typedef ::xsd::cxx::tree::qname< char, simple_type, uri, ncname > qname;
00156
00157
00158
00159 typedef ::xsd::cxx::tree::buffer< char > buffer;
00160 typedef ::xsd::cxx::tree::base64_binary< char, simple_type > base64_binary;
00161 typedef ::xsd::cxx::tree::hex_binary< char, simple_type > hex_binary;
00162
00163
00164
00165 typedef ::xsd::cxx::tree::time_zone time_zone;
00166 typedef ::xsd::cxx::tree::date< char, simple_type > date;
00167 typedef ::xsd::cxx::tree::date_time< char, simple_type > date_time;
00168 typedef ::xsd::cxx::tree::duration< char, simple_type > duration;
00169 typedef ::xsd::cxx::tree::gday< char, simple_type > gday;
00170 typedef ::xsd::cxx::tree::gmonth< char, simple_type > gmonth;
00171 typedef ::xsd::cxx::tree::gmonth_day< char, simple_type > gmonth_day;
00172 typedef ::xsd::cxx::tree::gyear< char, simple_type > gyear;
00173 typedef ::xsd::cxx::tree::gyear_month< char, simple_type > gyear_month;
00174 typedef ::xsd::cxx::tree::time< char, simple_type > time;
00175
00176
00177
00178 typedef ::xsd::cxx::tree::entity< char, ncname > entity;
00179 typedef ::xsd::cxx::tree::entities< char, simple_type, entity > entities;
00180
00181 typedef ::xsd::cxx::tree::content_order content_order;
00182
00183
00184 typedef ::xsd::cxx::tree::flags flags;
00185 typedef ::xsd::cxx::tree::properties< char > properties;
00186
00187
00188
00189 typedef ::xsd::cxx::tree::severity severity;
00190 typedef ::xsd::cxx::tree::error< char > error;
00191 typedef ::xsd::cxx::tree::diagnostics< char > diagnostics;
00192
00193
00194
00195 typedef ::xsd::cxx::tree::exception< char > exception;
00196 typedef ::xsd::cxx::tree::bounds< char > bounds;
00197 typedef ::xsd::cxx::tree::duplicate_id< char > duplicate_id;
00198 typedef ::xsd::cxx::tree::parsing< char > parsing;
00199 typedef ::xsd::cxx::tree::expected_element< char > expected_element;
00200 typedef ::xsd::cxx::tree::unexpected_element< char > unexpected_element;
00201 typedef ::xsd::cxx::tree::expected_attribute< char > expected_attribute;
00202 typedef ::xsd::cxx::tree::unexpected_enumerator< char > unexpected_enumerator;
00203 typedef ::xsd::cxx::tree::expected_text_content< char > expected_text_content;
00204 typedef ::xsd::cxx::tree::no_prefix_mapping< char > no_prefix_mapping;
00205
00206
00207
00208 typedef ::xsd::cxx::xml::error_handler< char > error_handler;
00209
00210
00211
00212 namespace dom
00213 {
00214
00215
00216 using ::xsd::cxx::xml::dom::unique_ptr;
00217
00218 #ifndef XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA
00219 #define XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA
00220
00221
00222 const XMLCh* const tree_node_key = ::xsd::cxx::tree::user_data_keys::node;
00223 #endif
00224 }
00225 }
00226
00227
00228
00229 namespace asr_object_database
00230 {
00231 class configuration;
00232 class database;
00233 }
00234
00235
00236 #include <memory>
00237 #include <limits>
00238 #include <algorithm>
00239 #include <utility>
00240
00241 #include <xsd/cxx/xml/char-utf8.hxx>
00242
00243 #include <xsd/cxx/tree/exceptions.hxx>
00244 #include <xsd/cxx/tree/elements.hxx>
00245 #include <xsd/cxx/tree/containers.hxx>
00246 #include <xsd/cxx/tree/list.hxx>
00247
00248 #include <xsd/cxx/xml/dom/parsing-header.hxx>
00249
00250 namespace asr_object_database
00251 {
00252 class configuration: public ::xml_schema::type
00253 {
00254 public:
00255
00256
00257 typedef ::asr_object_database::database database_type;
00258 typedef ::xsd::cxx::tree::sequence< database_type > database_sequence;
00259 typedef database_sequence::iterator database_iterator;
00260 typedef database_sequence::const_iterator database_const_iterator;
00261 typedef ::xsd::cxx::tree::traits< database_type, char > database_traits;
00262
00263 const database_sequence&
00264 database () const;
00265
00266 database_sequence&
00267 database ();
00268
00269 void
00270 database (const database_sequence& s);
00271
00272
00273
00274 configuration ();
00275
00276 configuration (const ::xercesc::DOMElement& e,
00277 ::xml_schema::flags f = 0,
00278 ::xml_schema::container* c = 0);
00279
00280 configuration (const configuration& x,
00281 ::xml_schema::flags f = 0,
00282 ::xml_schema::container* c = 0);
00283
00284 virtual configuration*
00285 _clone (::xml_schema::flags f = 0,
00286 ::xml_schema::container* c = 0) const;
00287
00288 configuration&
00289 operator= (const configuration& x);
00290
00291 virtual
00292 ~configuration ();
00293
00294
00295
00296 protected:
00297 void
00298 parse (::xsd::cxx::xml::dom::parser< char >&,
00299 ::xml_schema::flags);
00300
00301 protected:
00302 database_sequence database_;
00303 };
00304
00305 class database: public ::xml_schema::type
00306 {
00307 public:
00308
00309
00310 typedef ::xml_schema::string uniqueName_type;
00311 typedef ::xsd::cxx::tree::traits< uniqueName_type, char > uniqueName_traits;
00312
00313 const uniqueName_type&
00314 uniqueName () const;
00315
00316 uniqueName_type&
00317 uniqueName ();
00318
00319 void
00320 uniqueName (const uniqueName_type& x);
00321
00322 void
00323 uniqueName (::std::unique_ptr< uniqueName_type > p);
00324
00325
00326
00327 typedef ::xml_schema::string basenameMatchPattern_type;
00328 typedef ::xsd::cxx::tree::traits< basenameMatchPattern_type, char > basenameMatchPattern_traits;
00329
00330 const basenameMatchPattern_type&
00331 basenameMatchPattern () const;
00332
00333 basenameMatchPattern_type&
00334 basenameMatchPattern ();
00335
00336 void
00337 basenameMatchPattern (const basenameMatchPattern_type& x);
00338
00339 void
00340 basenameMatchPattern (::std::unique_ptr< basenameMatchPattern_type > p);
00341
00342
00343
00344 typedef ::xml_schema::string objectDbRootFolder_type;
00345 typedef ::xsd::cxx::tree::traits< objectDbRootFolder_type, char > objectDbRootFolder_traits;
00346
00347 const objectDbRootFolder_type&
00348 objectDbRootFolder () const;
00349
00350 objectDbRootFolder_type&
00351 objectDbRootFolder ();
00352
00353 void
00354 objectDbRootFolder (const objectDbRootFolder_type& x);
00355
00356 void
00357 objectDbRootFolder (::std::unique_ptr< objectDbRootFolder_type > p);
00358
00359
00360
00361 database (const uniqueName_type&,
00362 const basenameMatchPattern_type&,
00363 const objectDbRootFolder_type&);
00364
00365 database (const ::xercesc::DOMElement& e,
00366 ::xml_schema::flags f = 0,
00367 ::xml_schema::container* c = 0);
00368
00369 database (const database& x,
00370 ::xml_schema::flags f = 0,
00371 ::xml_schema::container* c = 0);
00372
00373 virtual database*
00374 _clone (::xml_schema::flags f = 0,
00375 ::xml_schema::container* c = 0) const;
00376
00377 database&
00378 operator= (const database& x);
00379
00380 virtual
00381 ~database ();
00382
00383
00384
00385 protected:
00386 void
00387 parse (::xsd::cxx::xml::dom::parser< char >&,
00388 ::xml_schema::flags);
00389
00390 protected:
00391 ::xsd::cxx::tree::one< uniqueName_type > uniqueName_;
00392 ::xsd::cxx::tree::one< basenameMatchPattern_type > basenameMatchPattern_;
00393 ::xsd::cxx::tree::one< objectDbRootFolder_type > objectDbRootFolder_;
00394 };
00395 }
00396
00397 #include <iosfwd>
00398
00399 #include <xercesc/sax/InputSource.hpp>
00400 #include <xercesc/dom/DOMDocument.hpp>
00401 #include <xercesc/dom/DOMErrorHandler.hpp>
00402
00403 namespace asr_object_database
00404 {
00405
00406
00407
00408 ::std::unique_ptr< ::asr_object_database::configuration >
00409 configuration_ (const ::std::string& uri,
00410 ::xml_schema::flags f = 0,
00411 const ::xml_schema::properties& p = ::xml_schema::properties ());
00412
00413 ::std::unique_ptr< ::asr_object_database::configuration >
00414 configuration_ (const ::std::string& uri,
00415 ::xml_schema::error_handler& eh,
00416 ::xml_schema::flags f = 0,
00417 const ::xml_schema::properties& p = ::xml_schema::properties ());
00418
00419 ::std::unique_ptr< ::asr_object_database::configuration >
00420 configuration_ (const ::std::string& uri,
00421 ::xercesc::DOMErrorHandler& eh,
00422 ::xml_schema::flags f = 0,
00423 const ::xml_schema::properties& p = ::xml_schema::properties ());
00424
00425
00426
00427
00428 ::std::unique_ptr< ::asr_object_database::configuration >
00429 configuration_ (::std::istream& is,
00430 ::xml_schema::flags f = 0,
00431 const ::xml_schema::properties& p = ::xml_schema::properties ());
00432
00433 ::std::unique_ptr< ::asr_object_database::configuration >
00434 configuration_ (::std::istream& is,
00435 ::xml_schema::error_handler& eh,
00436 ::xml_schema::flags f = 0,
00437 const ::xml_schema::properties& p = ::xml_schema::properties ());
00438
00439 ::std::unique_ptr< ::asr_object_database::configuration >
00440 configuration_ (::std::istream& is,
00441 ::xercesc::DOMErrorHandler& eh,
00442 ::xml_schema::flags f = 0,
00443 const ::xml_schema::properties& p = ::xml_schema::properties ());
00444
00445 ::std::unique_ptr< ::asr_object_database::configuration >
00446 configuration_ (::std::istream& is,
00447 const ::std::string& id,
00448 ::xml_schema::flags f = 0,
00449 const ::xml_schema::properties& p = ::xml_schema::properties ());
00450
00451 ::std::unique_ptr< ::asr_object_database::configuration >
00452 configuration_ (::std::istream& is,
00453 const ::std::string& id,
00454 ::xml_schema::error_handler& eh,
00455 ::xml_schema::flags f = 0,
00456 const ::xml_schema::properties& p = ::xml_schema::properties ());
00457
00458 ::std::unique_ptr< ::asr_object_database::configuration >
00459 configuration_ (::std::istream& is,
00460 const ::std::string& id,
00461 ::xercesc::DOMErrorHandler& eh,
00462 ::xml_schema::flags f = 0,
00463 const ::xml_schema::properties& p = ::xml_schema::properties ());
00464
00465
00466
00467
00468 ::std::unique_ptr< ::asr_object_database::configuration >
00469 configuration_ (::xercesc::InputSource& is,
00470 ::xml_schema::flags f = 0,
00471 const ::xml_schema::properties& p = ::xml_schema::properties ());
00472
00473 ::std::unique_ptr< ::asr_object_database::configuration >
00474 configuration_ (::xercesc::InputSource& is,
00475 ::xml_schema::error_handler& eh,
00476 ::xml_schema::flags f = 0,
00477 const ::xml_schema::properties& p = ::xml_schema::properties ());
00478
00479 ::std::unique_ptr< ::asr_object_database::configuration >
00480 configuration_ (::xercesc::InputSource& is,
00481 ::xercesc::DOMErrorHandler& eh,
00482 ::xml_schema::flags f = 0,
00483 const ::xml_schema::properties& p = ::xml_schema::properties ());
00484
00485
00486
00487
00488 ::std::unique_ptr< ::asr_object_database::configuration >
00489 configuration_ (const ::xercesc::DOMDocument& d,
00490 ::xml_schema::flags f = 0,
00491 const ::xml_schema::properties& p = ::xml_schema::properties ());
00492
00493 ::std::unique_ptr< ::asr_object_database::configuration >
00494 configuration_ (::xml_schema::dom::unique_ptr< ::xercesc::DOMDocument > d,
00495 ::xml_schema::flags f = 0,
00496 const ::xml_schema::properties& p = ::xml_schema::properties ());
00497 }
00498
00499 #include <xsd/cxx/post.hxx>
00500
00501
00502
00503
00504
00505
00506 #endif // CONFIGURATION_XMLSCHEMA_CONFIGURATION_XMLSCHEMA_H