diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:21:29 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:21:29 +0200 |
commit | bada6666c70977a058755ccf232e7d67b24adeed (patch) | |
tree | 1e92d50cebce96abaf9bce19e36026c47f77b9ba /xsd/libxsd/xsd/cxx/parser | |
parent | eaf34adcbd8095bc6d1f3371b1227f654c7b19fc (diff) |
New upstream release
Diffstat (limited to 'xsd/libxsd/xsd/cxx/parser')
45 files changed, 149 insertions, 170 deletions
diff --git a/xsd/libxsd/xsd/cxx/parser/document.hxx b/xsd/libxsd/xsd/cxx/parser/document.hxx index 992b800..731808b 100644 --- a/xsd/libxsd/xsd/cxx/parser/document.hxx +++ b/xsd/libxsd/xsd/cxx/parser/document.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/document.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_DOCUMENT_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/document.txx b/xsd/libxsd/xsd/cxx/parser/document.txx index cad49ce..3c25574 100644 --- a/xsd/libxsd/xsd/cxx/parser/document.txx +++ b/xsd/libxsd/xsd/cxx/parser/document.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/document.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <cassert> diff --git a/xsd/libxsd/xsd/cxx/parser/elements.hxx b/xsd/libxsd/xsd/cxx/parser/elements.hxx index 5f0bead..2f814d1 100644 --- a/xsd/libxsd/xsd/cxx/parser/elements.hxx +++ b/xsd/libxsd/xsd/cxx/parser/elements.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/elements.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_ELEMENTS_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/elements.txx b/xsd/libxsd/xsd/cxx/parser/elements.txx index 5706107..3aaf017 100644 --- a/xsd/libxsd/xsd/cxx/parser/elements.txx +++ b/xsd/libxsd/xsd/cxx/parser/elements.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/elements.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/error-handler.hxx b/xsd/libxsd/xsd/cxx/parser/error-handler.hxx index b83c0a8..1352bec 100644 --- a/xsd/libxsd/xsd/cxx/parser/error-handler.hxx +++ b/xsd/libxsd/xsd/cxx/parser/error-handler.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/error-handler.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_ERROR_HANDLER_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/error-handler.txx b/xsd/libxsd/xsd/cxx/parser/error-handler.txx index 23751d2..db247a7 100644 --- a/xsd/libxsd/xsd/cxx/parser/error-handler.txx +++ b/xsd/libxsd/xsd/cxx/parser/error-handler.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/error-handler.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/exceptions.hxx b/xsd/libxsd/xsd/cxx/parser/exceptions.hxx index c0e90dd..04cf30f 100644 --- a/xsd/libxsd/xsd/cxx/parser/exceptions.hxx +++ b/xsd/libxsd/xsd/cxx/parser/exceptions.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/exceptions.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_EXCEPTIONS_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/exceptions.ixx b/xsd/libxsd/xsd/cxx/parser/exceptions.ixx index d4e13f3..f7489f3 100644 --- a/xsd/libxsd/xsd/cxx/parser/exceptions.ixx +++ b/xsd/libxsd/xsd/cxx/parser/exceptions.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/exceptions.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/exceptions.txx b/xsd/libxsd/xsd/cxx/parser/exceptions.txx index 5423cdd..d0e52b6 100644 --- a/xsd/libxsd/xsd/cxx/parser/exceptions.txx +++ b/xsd/libxsd/xsd/cxx/parser/exceptions.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/exceptions.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/expat/elements.hxx b/xsd/libxsd/xsd/cxx/parser/expat/elements.hxx index c9f3de0..86e7a73 100644 --- a/xsd/libxsd/xsd/cxx/parser/expat/elements.hxx +++ b/xsd/libxsd/xsd/cxx/parser/expat/elements.hxx @@ -1,16 +1,21 @@ // file : xsd/cxx/parser/expat/elements.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_EXPAT_ELEMENTS_HXX #define XSD_CXX_PARSER_EXPAT_ELEMENTS_HXX +#include <xsd/cxx/config.hxx> // XSD_CXX11 + #include <string> #include <iosfwd> #include <cstddef> // std::size_t #include <vector> +#ifdef XSD_CXX11 +# include <memory> // std::unique_ptr +#endif + #include <expat.h> // We only support UTF-8 expat for now. @@ -35,6 +40,19 @@ namespace xsd { namespace expat { +#ifdef XSD_CXX11 + struct parser_deleter + { + void + operator() (XML_Parser p) const + { + if (p != 0) + XML_ParserFree (p); + } + }; + + typedef std::unique_ptr<XML_ParserStruct> parser_auto_ptr; +#else // Simple auto pointer for Expat's XML_Parser object. // struct parser_auto_ptr @@ -61,8 +79,8 @@ namespace xsd return *this; } - public: - operator XML_Parser () + XML_Parser + get () const { return parser_; } @@ -76,12 +94,12 @@ namespace xsd private: XML_Parser parser_; }; - +#endif // XSD_CXX11 // // template <typename C> - struct document: cxx::parser::document<C> // VC 7.1 likes it qualified + struct document: cxx::parser::document<C> // VC likes it qualified { public: document (parser_base<C>&, diff --git a/xsd/libxsd/xsd/cxx/parser/expat/elements.txx b/xsd/libxsd/xsd/cxx/parser/expat/elements.txx index 08ecf21..d3fc0d9 100644 --- a/xsd/libxsd/xsd/cxx/parser/expat/elements.txx +++ b/xsd/libxsd/xsd/cxx/parser/expat/elements.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/expat/elements.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <new> // std::bad_alloc @@ -334,18 +333,18 @@ namespace xsd { // First call. // - if (auto_xml_parser_ == 0) + if (auto_xml_parser_.get () == 0) { auto_xml_parser_ = XML_ParserCreateNS (0, XML_Char (' ')); - if (auto_xml_parser_ == 0) + if (auto_xml_parser_.get () == 0) throw std::bad_alloc (); if (system_id || public_id) - parse_begin (auto_xml_parser_, + parse_begin (auto_xml_parser_.get (), system_id ? *system_id : *public_id, eh); else - parse_begin (auto_xml_parser_, eh); + parse_begin (auto_xml_parser_.get (), eh); } bool r (XML_Parse (xml_parser_, diff --git a/xsd/libxsd/xsd/cxx/parser/map.hxx b/xsd/libxsd/xsd/cxx/parser/map.hxx index 663b178..d097f16 100644 --- a/xsd/libxsd/xsd/cxx/parser/map.hxx +++ b/xsd/libxsd/xsd/cxx/parser/map.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/map.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_MAP_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/map.ixx b/xsd/libxsd/xsd/cxx/parser/map.ixx index 0b70680..96fc937 100644 --- a/xsd/libxsd/xsd/cxx/parser/map.ixx +++ b/xsd/libxsd/xsd/cxx/parser/map.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/map.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/map.txx b/xsd/libxsd/xsd/cxx/parser/map.txx index aa7099d..3f85760 100644 --- a/xsd/libxsd/xsd/cxx/parser/map.txx +++ b/xsd/libxsd/xsd/cxx/parser/map.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/map.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/parser.hxx b/xsd/libxsd/xsd/cxx/parser/non-validating/parser.hxx index 9eda6f4..4ecc4f1 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/parser.hxx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/parser.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/parser.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_NON_VALIDATING_PARSER_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx b/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx index c95b92e..79b6568 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/parser.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/parser.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <cassert> diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx index 397386d..fc1f838 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_NON_VALIDATING_XML_SCHEMA_PIMPL_HXX @@ -8,6 +7,8 @@ #include <string> +#include <xsd/cxx/config.hxx> // XSD_AUTO_PTR + #include <xsd/cxx/parser/non-validating/xml-schema-pskel.hxx> namespace xsd @@ -564,7 +565,7 @@ namespace xsd virtual void _characters (const ro_string<C>&); - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_base64_binary (); protected: @@ -582,7 +583,7 @@ namespace xsd virtual void _characters (const ro_string<C>&); - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_hex_binary (); protected: diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.ixx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.ixx index db9a5d1..3555693 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.ixx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pimpl.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.txx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.txx index c430f49..28280f5 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.txx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pimpl.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pimpl.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <limits> @@ -1157,7 +1156,7 @@ namespace xsd } template <typename C> - std::auto_ptr<buffer> base64_binary_pimpl<C>:: + XSD_AUTO_PTR<buffer> base64_binary_pimpl<C>:: post_base64_binary () { typedef typename std::basic_string<C>::size_type size_type; @@ -1199,7 +1198,7 @@ namespace xsd size_type quad_count (size / 4); size_type capacity (quad_count * 3 + 1); - std::auto_ptr<buffer> buf (new buffer (capacity, capacity)); + XSD_AUTO_PTR<buffer> buf (new buffer (capacity, capacity)); char* dst (buf->data ()); size_type si (0), di (0); // Source and destination indexes. @@ -1309,7 +1308,7 @@ namespace xsd } template <typename C> - std::auto_ptr<buffer> hex_binary_pimpl<C>:: + XSD_AUTO_PTR<buffer> hex_binary_pimpl<C>:: post_hex_binary () { typedef typename ro_string<C>::size_type size_type; @@ -1318,7 +1317,7 @@ namespace xsd size_type size (trim_right (tmp)); buffer::size_t n (size / 2); - std::auto_ptr<buffer> buf (new buffer (n)); + XSD_AUTO_PTR<buffer> buf (new buffer (n)); const C* src (tmp.data ()); char* dst (buf->data ()); diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.hxx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.hxx index 8e4972a..334be01 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.hxx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.hxx @@ -1,13 +1,14 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pskel.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_NON_VALIDATING_XML_SCHEMA_PSKEL_HXX #define XSD_CXX_PARSER_NON_VALIDATING_XML_SCHEMA_PSKEL_HXX #include <string> -#include <memory> // auto_ptr +#include <memory> // std::auto_ptr/unique_ptr + +#include <xsd/cxx/config.hxx> // XSD_AUTO_PTR #include <xsd/cxx/parser/xml-schema.hxx> #include <xsd/cxx/parser/non-validating/parser.hxx> @@ -494,7 +495,7 @@ namespace xsd template <typename C> struct base64_binary_pskel: simple_content<C> { - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_base64_binary () = 0; static const C* @@ -507,7 +508,7 @@ namespace xsd template <typename C> struct hex_binary_pskel: simple_content<C> { - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_hex_binary () = 0; static const C* diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.ixx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.ixx index 13b1fab..44cc6e4 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.ixx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pskel.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx index b6352df..e2fd1b3 100644 --- a/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx +++ b/xsd/libxsd/xsd/cxx/parser/non-validating/xml-schema-pskel.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/non-validating/xml-schema-pskel.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.hxx b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.hxx index 9af39d7..8fd2def 100644 --- a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.hxx +++ b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/schema-exceptions.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.ixx b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.ixx index cfd2d18..71be381 100644 --- a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.ixx +++ b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/schema-exceptions.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.txx b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.txx index 7ac45ae..77c569a 100644 --- a/xsd/libxsd/xsd/cxx/parser/schema-exceptions.txx +++ b/xsd/libxsd/xsd/cxx/parser/schema-exceptions.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/schema-exceptions.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/substitution-map.hxx b/xsd/libxsd/xsd/cxx/parser/substitution-map.hxx index 416d1ec..d191e28 100644 --- a/xsd/libxsd/xsd/cxx/parser/substitution-map.hxx +++ b/xsd/libxsd/xsd/cxx/parser/substitution-map.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/substitution-map.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_SUBSTITUTION_MAP_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/substitution-map.txx b/xsd/libxsd/xsd/cxx/parser/substitution-map.txx index dad0ec6..45216cd 100644 --- a/xsd/libxsd/xsd/cxx/parser/substitution-map.txx +++ b/xsd/libxsd/xsd/cxx/parser/substitution-map.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/substitution-map.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.hxx b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.hxx index c0efda8..07086e3 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.hxx +++ b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/exceptions.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_VALIDATING_EXCEPTIONS_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.ixx b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.ixx index 74bb909..72bfe8d 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.ixx +++ b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/exceptions.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.txx b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.txx index 6205215..c2b8928 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/exceptions.txx +++ b/xsd/libxsd/xsd/cxx/parser/validating/exceptions.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/exceptions.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.hxx b/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.hxx index d9307b4..b8ae938 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.hxx +++ b/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/inheritance-map.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_VALIDATING_INHERITANCE_MAP_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.txx b/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.txx index 1a63e65..ba4803e 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.txx +++ b/xsd/libxsd/xsd/cxx/parser/validating/inheritance-map.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/inheritance-map.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/validating/parser.hxx b/xsd/libxsd/xsd/cxx/parser/validating/parser.hxx index da297d9..c305fe1 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/parser.hxx +++ b/xsd/libxsd/xsd/cxx/parser/validating/parser.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/parser.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_VALIDATING_PARSER_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/validating/parser.txx b/xsd/libxsd/xsd/cxx/parser/validating/parser.txx index d447725..9a5800a 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/parser.txx +++ b/xsd/libxsd/xsd/cxx/parser/validating/parser.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/parser.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <cassert> diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.hxx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.hxx index 619a8c7..ae64d2b 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.hxx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/xml-schema-pimpl.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_VALIDATING_XML_SCHEMA_PIMPL_HXX @@ -8,6 +7,8 @@ #include <string> +#include <xsd/cxx/config.hxx> // XSD_AUTO_PTR + #include <xsd/cxx/parser/validating/xml-schema-pskel.hxx> namespace xsd @@ -664,12 +665,12 @@ namespace xsd virtual void _post (); - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_base64_binary (); protected: std::basic_string<C> str_; - std::auto_ptr<buffer> buf_; + XSD_AUTO_PTR<buffer> buf_; }; // hexBinary @@ -686,12 +687,12 @@ namespace xsd virtual void _post (); - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_hex_binary (); protected: std::basic_string<C> str_; - std::auto_ptr<buffer> buf_; + XSD_AUTO_PTR<buffer> buf_; }; // gday diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.ixx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.ixx index c6f8127..94a9b8e 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.ixx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/xml-schema-pimpl.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx index 55121c2..ad587c5 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx @@ -1,11 +1,14 @@ // file : xsd/cxx/parser/validating/xml-schema-pimpl.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <limits> #include <locale> +#ifdef XSD_CXX11 +# include <utility> // std::move +#endif + #include <xsd/cxx/zc-istream.hxx> #include <xsd/cxx/parser/validating/exceptions.hxx> @@ -1634,10 +1637,14 @@ namespace xsd } template <typename C> - std::auto_ptr<buffer> base64_binary_pimpl<C>:: + XSD_AUTO_PTR<buffer> base64_binary_pimpl<C>:: post_base64_binary () { +#ifdef XSD_CXX11 + return std::move (buf_); +#else return buf_; +#endif } // hex_binary @@ -1721,10 +1728,14 @@ namespace xsd } template <typename C> - std::auto_ptr<buffer> hex_binary_pimpl<C>:: + XSD_AUTO_PTR<buffer> hex_binary_pimpl<C>:: post_hex_binary () { +#ifdef XSD_CXX11 + return std::move (buf_); +#else return buf_; +#endif } // time_zone diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.hxx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.hxx index 67c8057..ffc7de3 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.hxx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.hxx @@ -1,13 +1,14 @@ // file : xsd/cxx/parser/validating/xml-schema-pskel.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_VALIDATING_XML_SCHEMA_PSKEL_HXX #define XSD_CXX_PARSER_VALIDATING_XML_SCHEMA_PSKEL_HXX #include <string> -#include <memory> // auto_ptr +#include <memory> // std::auto_ptr/unique_ptr + +#include <xsd/cxx/config.hxx> // XSD_AUTO_PTR #include <xsd/cxx/parser/xml-schema.hxx> #include <xsd/cxx/parser/validating/parser.hxx> @@ -494,7 +495,7 @@ namespace xsd template <typename C> struct base64_binary_pskel: simple_content<C> { - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_base64_binary () = 0; static const C* @@ -507,7 +508,7 @@ namespace xsd template <typename C> struct hex_binary_pskel: simple_content<C> { - virtual std::auto_ptr<buffer> + virtual XSD_AUTO_PTR<buffer> post_hex_binary () = 0; static const C* diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.ixx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.ixx index 6958bea..b6da227 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.ixx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/xml-schema-pskel.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #if defined(XSD_CXX_PARSER_USE_CHAR) || !defined(XSD_CXX_PARSER_USE_WCHAR) diff --git a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx index 4ae50e3..49d53c5 100644 --- a/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx +++ b/xsd/libxsd/xsd/cxx/parser/validating/xml-schema-pskel.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/validating/xml-schema-pskel.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd diff --git a/xsd/libxsd/xsd/cxx/parser/xerces/elements.hxx b/xsd/libxsd/xsd/cxx/parser/xerces/elements.hxx index e0439f3..da493f9 100644 --- a/xsd/libxsd/xsd/cxx/parser/xerces/elements.hxx +++ b/xsd/libxsd/xsd/cxx/parser/xerces/elements.hxx @@ -1,12 +1,11 @@ // file : xsd/cxx/parser/xerces/elements.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_XERCES_ELEMENTS_HXX #define XSD_CXX_PARSER_XERCES_ELEMENTS_HXX -#include <memory> // std::auto_ptr +#include <memory> // std::auto_ptr/unique_ptr #include <string> #include <iosfwd> #include <vector> @@ -16,6 +15,10 @@ #include <xercesc/sax2/SAX2XMLReader.hpp> #include <xercesc/sax2/DefaultHandler.hpp> +#include <xercesc/util/XercesVersion.hpp> + +#include <xsd/cxx/config.hxx> // XSD_AUTO_PTR + #include <xsd/cxx/xml/elements.hxx> #include <xsd/cxx/xml/error-handler.hxx> @@ -23,6 +26,10 @@ #include <xsd/cxx/parser/elements.hxx> #include <xsd/cxx/parser/document.hxx> +#if _XERCES_VERSION < 30000 +# error Xerces-C++ 2-series is not supported +#endif + namespace xsd { namespace cxx @@ -79,7 +86,7 @@ namespace xsd // // template <typename C> - struct document: cxx::parser::document<C> // VC 7.1 likes it qualified + struct document: cxx::parser::document<C> // VC likes it qualified { public: document (parser_base<C>& root, @@ -371,7 +378,7 @@ namespace xsd const properties<C>&); private: - std::auto_ptr<xercesc::SAX2XMLReader> + XSD_AUTO_PTR<xercesc::SAX2XMLReader> create_sax_ (flags, const properties<C>&); private: @@ -386,8 +393,8 @@ namespace xsd event_router (cxx::parser::document<C>&, bool polymorphic); // I know, some of those consts are stupid. But that's what - // Xerces folks put into their interfaces and VC 7.1 thinks - // there are different signatures if one strips this fluff off. + // Xerces folks put into their interfaces and VC thinks there + // are different signatures if one strips this fluff off. // virtual void setDocumentLocator (const xercesc::Locator* const); @@ -403,13 +410,8 @@ namespace xsd const XMLCh* const lname, const XMLCh* const qname); -#if _XERCES_VERSION >= 30000 virtual void characters (const XMLCh* const s, const XMLSize_t length); -#else - virtual void - characters (const XMLCh* const s, const unsigned int length); -#endif virtual void startPrefixMapping (const XMLCh* const prefix, diff --git a/xsd/libxsd/xsd/cxx/parser/xerces/elements.txx b/xsd/libxsd/xsd/cxx/parser/xerces/elements.txx index 2c1e2a1..f41b074 100644 --- a/xsd/libxsd/xsd/cxx/parser/xerces/elements.txx +++ b/xsd/libxsd/xsd/cxx/parser/xerces/elements.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/xerces/elements.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <istream> @@ -12,6 +11,7 @@ #include <xercesc/sax2/XMLReaderFactory.hpp> #include <xercesc/validators/schema/SchemaSymbols.hpp> #include <xercesc/util/XMLUni.hpp> +#include <xercesc/util/XMLString.hpp> #include <xsd/cxx/xml/string.hxx> #include <xsd/cxx/xml/sax/std-input-source.hxx> @@ -94,7 +94,7 @@ namespace xsd error_handler<C> eh; xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (uri, eh_proxy, *sax, f, p); @@ -123,7 +123,7 @@ namespace xsd xml::auto_initializer init ((f & flags::dont_initialize) == 0); xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (uri, eh_proxy, *sax, f, p); @@ -152,7 +152,7 @@ namespace xsd const properties<C>& p) { xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (uri, eh_proxy, *sax, f, p); @@ -389,7 +389,7 @@ namespace xsd { error_handler<C> eh; xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (is, eh_proxy, *sax, f, p); @@ -404,7 +404,7 @@ namespace xsd const properties<C>& p) { xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (is, eh_proxy, *sax, f, p); @@ -420,7 +420,7 @@ namespace xsd const properties<C>& p) { xml::sax::bits::error_handler_proxy<C> eh_proxy (eh); - std::auto_ptr<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); + XSD_AUTO_PTR<xercesc::SAX2XMLReader> sax (create_sax_ (f, p)); parse (is, eh_proxy, *sax, f, p); @@ -527,14 +527,8 @@ namespace xsd xml::string (e.message ()).c_str (), id.c_str (), id.c_str (), -#if _XERCES_VERSION >= 30000 static_cast<XMLFileLoc> (e.line ()), - static_cast<XMLFileLoc> (e.column ()) -#else - static_cast<XMLSSize_t> (e.line ()), - static_cast<XMLSSize_t> (e.column ()) -#endif - ); + static_cast<XMLFileLoc> (e.column ())); eh.fatalError (se); } @@ -565,14 +559,8 @@ namespace xsd xml::string (e.message ()).c_str (), id.c_str (), id.c_str (), -#if _XERCES_VERSION >= 30000 static_cast<XMLFileLoc> (e.line ()), - static_cast<XMLFileLoc> (e.column ()) -#else - static_cast<XMLSSize_t> (e.line ()), - static_cast<XMLSSize_t> (e.column ()) -#endif - ); + static_cast<XMLFileLoc> (e.column ())); eh.fatalError (se); } @@ -580,16 +568,12 @@ namespace xsd template <typename C> - std::auto_ptr<xercesc::SAX2XMLReader> document<C>:: + XSD_AUTO_PTR<xercesc::SAX2XMLReader> document<C>:: create_sax_ (flags f, const properties<C>& p) { - // HP aCC cannot handle using namespace xercesc; - // - using xercesc::SAX2XMLReader; - using xercesc::XMLReaderFactory; - using xercesc::XMLUni; + using namespace xercesc; - std::auto_ptr<SAX2XMLReader> sax ( + XSD_AUTO_PTR<SAX2XMLReader> sax ( XMLReaderFactory::createXMLReader ()); sax->setFeature (XMLUni::fgSAX2CoreNameSpaces, true); @@ -670,6 +654,9 @@ namespace xsd const XMLCh* const /*qname*/, const xercesc::Attributes& attributes) { + using xercesc::XMLUni; + using xercesc::XMLString; + typedef std::basic_string<C> string; { @@ -792,13 +779,19 @@ namespace xsd } } -#if _XERCES_VERSION >= 30000 for (XMLSize_t i (0), end (attributes.getLength()); i < end; ++i) -#else - for (unsigned int i (0), end (attributes.getLength()); i < end; ++i) -#endif { - string ns (xml::transcode<C> (attributes.getURI (i))); + const XMLCh* xns (attributes.getURI (i)); + + // When SAX2 reports the xmlns attribute, it does not include + // the proper attribute namespace. So we have to detect and + // rectify this case. + // + if (XMLString::equals (attributes.getQName (i), + XMLUni::fgXMLNSString)) + xns = XMLUni::fgXMLNSURIName; + + string ns (xml::transcode<C> (xns)); string name (xml::transcode<C> (attributes.getLocalName (i))); string value (xml::transcode<C> (attributes.getValue (i))); @@ -868,11 +861,7 @@ namespace xsd template <typename C> void event_router<C>:: -#if _XERCES_VERSION >= 30000 characters (const XMLCh* const s, const XMLSize_t n) -#else - characters (const XMLCh* const s, const unsigned int n) -#endif { typedef std::basic_string<C> string; @@ -949,16 +938,8 @@ namespace xsd if (id != 0) e.id (xml::transcode<C> (id)); -#if _XERCES_VERSION >= 30000 e.line (static_cast<unsigned long> (loc_->getLineNumber ())); e.column (static_cast<unsigned long> (loc_->getColumnNumber ())); -#else - XMLSSize_t l (loc_->getLineNumber ()); - XMLSSize_t c (loc_->getColumnNumber ()); - - e.line (l == -1 ? 0 : static_cast<unsigned long> (l)); - e.column (c == -1 ? 0: static_cast<unsigned long> (c)); -#endif } } } diff --git a/xsd/libxsd/xsd/cxx/parser/xml-schema.hxx b/xsd/libxsd/xsd/cxx/parser/xml-schema.hxx index 5d1f1c6..cc3dd5f 100644 --- a/xsd/libxsd/xsd/cxx/parser/xml-schema.hxx +++ b/xsd/libxsd/xsd/cxx/parser/xml-schema.hxx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/xml-schema.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_XML_SCHEMA_HXX diff --git a/xsd/libxsd/xsd/cxx/parser/xml-schema.ixx b/xsd/libxsd/xsd/cxx/parser/xml-schema.ixx index 891bc6f..06ead34 100644 --- a/xsd/libxsd/xsd/cxx/parser/xml-schema.ixx +++ b/xsd/libxsd/xsd/cxx/parser/xml-schema.ixx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/xml-schema.ixx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <new> // operator new/delete diff --git a/xsd/libxsd/xsd/cxx/parser/xml-schema.txx b/xsd/libxsd/xsd/cxx/parser/xml-schema.txx index 5f41a18..90e558d 100644 --- a/xsd/libxsd/xsd/cxx/parser/xml-schema.txx +++ b/xsd/libxsd/xsd/cxx/parser/xml-schema.txx @@ -1,6 +1,5 @@ // file : xsd/cxx/parser/xml-schema.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd |