diff options
122 files changed, 479 insertions, 77 deletions
@@ -1,4 +1,4 @@ -Copyright (c) 2005-2021 Code Synthesis Tools CC. +Copyright (c) 2005-2022 Code Synthesis Tools CC. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as diff --git a/libxsd-tests/cxx/parser/expat/basic/driver.cxx b/libxsd-tests/cxx/parser/expat/basic/driver.cxx index f601e7a..5c0325a 100644 --- a/libxsd-tests/cxx/parser/expat/basic/driver.cxx +++ b/libxsd-tests/cxx/parser/expat/basic/driver.cxx @@ -1,7 +1,6 @@ // file : cxx/parser/expat/basic/driver.cxx // copyright : GNU GPL v2 + exceptions; see accompanying LICENSE file -#include <cassert> #include <iostream> // Define XSD_CXX11 since we include libxsd headers directly. @@ -25,6 +24,9 @@ #include <xsd/cxx/parser/non-validating/xml-schema-pskel.hxx> #include <xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace xsd::cxx; diff --git a/libxsd-tests/cxx/parser/xerces/basic/driver.cxx b/libxsd-tests/cxx/parser/xerces/basic/driver.cxx index b7dfd1d..f578a6a 100644 --- a/libxsd-tests/cxx/parser/xerces/basic/driver.cxx +++ b/libxsd-tests/cxx/parser/xerces/basic/driver.cxx @@ -1,7 +1,6 @@ // file : cxx/parser/xerces/basic/driver.cxx // copyright : GNU GPL v2 + exceptions; see accompanying LICENSE file -#include <cassert> #include <iostream> // Define XSD_CXX11 since we include libxsd headers directly. @@ -25,6 +24,9 @@ #include <xsd/cxx/parser/non-validating/xml-schema-pskel.hxx> #include <xsd/cxx/parser/non-validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace xsd::cxx; diff --git a/libxsd-tests/cxx/tree/basic/driver.cxx b/libxsd-tests/cxx/tree/basic/driver.cxx index d36d31e..115bb6a 100644 --- a/libxsd-tests/cxx/tree/basic/driver.cxx +++ b/libxsd-tests/cxx/tree/basic/driver.cxx @@ -1,7 +1,6 @@ // file : cxx/tree/basic/driver.cxx // copyright : GNU GPL v2 + exceptions; see accompanying LICENSE file -#include <cassert> #include <iostream> #include <xercesc/dom/DOMText.hpp> @@ -32,6 +31,9 @@ #include <xsd/cxx/tree/exceptions.hxx> // parsing #include <xsd/cxx/tree/error-handler.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace xsd::cxx; diff --git a/libxsd-tests/manifest b/libxsd-tests/manifest index ca2fd01..13177ee 100644 --- a/libxsd-tests/manifest +++ b/libxsd-tests/manifest @@ -1,6 +1,6 @@ : 1 name: libxsd-tests -version: 4.2.0-b.2.z +version: 4.2.0-b.3.z project: xsd summary: XML Schema to C++ data binding compiler runtime library tests license: other: GPL-2.0-only with Xerces-C++ linking exception and FLOSS exception diff --git a/libxsd/manifest b/libxsd/manifest index e5d4ad4..45bab01 100644 --- a/libxsd/manifest +++ b/libxsd/manifest @@ -1,6 +1,6 @@ : 1 name: libxsd -version: 4.2.0-b.2.z +version: 4.2.0-b.3.z project: xsd summary: XML Schema to C++ data binding compiler runtime library license: other: GPL-2.0-only with Xerces-C++ linking exception and FLOSS exception diff --git a/libxsd/xsd/cxx/tree/type-factory-map.hxx b/libxsd/xsd/cxx/tree/type-factory-map.hxx index e20acfe..d52982f 100644 --- a/libxsd/xsd/cxx/tree/type-factory-map.hxx +++ b/libxsd/xsd/cxx/tree/type-factory-map.hxx @@ -150,11 +150,14 @@ namespace xsd // // - template<unsigned long id, typename C, typename T> + template<unsigned long id, typename C> struct element_factory_initializer { + typedef typename type_factory_map<C>::factory factory; + element_factory_initializer (const C* root_name, const C* root_ns, - const C* subst_name, const C* subst_ns); + const C* subst_name, const C* subst_ns, + factory); ~element_factory_initializer (); diff --git a/libxsd/xsd/cxx/tree/type-factory-map.txx b/libxsd/xsd/cxx/tree/type-factory-map.txx index 1eddb25..5a9dc38 100644 --- a/libxsd/xsd/cxx/tree/type-factory-map.txx +++ b/libxsd/xsd/cxx/tree/type-factory-map.txx @@ -302,6 +302,9 @@ namespace xsd if (i != element_map_.end ()) { + // Note that we may find an abstract element in which case the + // returned factory will be NULL. + // f = find_substitution (i->second, qn); } } @@ -455,21 +458,22 @@ namespace xsd // // - template<unsigned long id, typename C, typename T> - element_factory_initializer<id, C, T>:: + template<unsigned long id, typename C> + element_factory_initializer<id, C>:: element_factory_initializer (const C* root_name, const C* root_ns, - const C* subst_name, const C* subst_ns) + const C* subst_name, const C* subst_ns, + factory f) : root_name_ (root_name), root_ns_ (root_ns), subst_name_ (subst_name), subst_ns_ (subst_ns) { type_factory_map_instance<id, C> ().register_element ( xml::qualified_name<C> (root_name, root_ns), xml::qualified_name<C> (subst_name, subst_ns), - &factory_impl<T>); + f); } - template<unsigned long id, typename C, typename T> - element_factory_initializer<id, C, T>:: + template<unsigned long id, typename C> + element_factory_initializer<id, C>:: ~element_factory_initializer () { type_factory_map_instance<id, C> ().unregister_element ( diff --git a/libxsd/xsd/cxx/tree/type-serializer-map.hxx b/libxsd/xsd/cxx/tree/type-serializer-map.hxx index 38b2fb9..50869b5 100644 --- a/libxsd/xsd/cxx/tree/type-serializer-map.hxx +++ b/libxsd/xsd/cxx/tree/type-serializer-map.hxx @@ -216,8 +216,11 @@ namespace xsd template<unsigned long id, typename C, typename T> struct element_serializer_initializer { + typedef typename type_serializer_map<C>::serializer serializer; + element_serializer_initializer (const C* root_name, const C* root_ns, - const C* subst_name, const C* subst_ns); + const C* subst_name, const C* subst_ns, + serializer); ~element_serializer_initializer (); diff --git a/libxsd/xsd/cxx/tree/type-serializer-map.txx b/libxsd/xsd/cxx/tree/type-serializer-map.txx index 1acdad2..a6c690a 100644 --- a/libxsd/xsd/cxx/tree/type-serializer-map.txx +++ b/libxsd/xsd/cxx/tree/type-serializer-map.txx @@ -550,14 +550,21 @@ namespace xsd template<unsigned long id, typename C, typename T> element_serializer_initializer<id, C, T>:: element_serializer_initializer (const C* root_name, const C* root_ns, - const C* subst_name, const C* subst_ns) + const C* subst_name, const C* subst_ns, + serializer s) : root_name_ (root_name), root_ns_ (root_ns) { + // Note that we still have to use real typeid (instead of, say, NULL) + // for abstract elements to make sure we have separate entries for + // each of them. We can assume that such a typeid can never be looked + // up (since it's impossible to instantiate the corresponding abstract + // type). + // type_serializer_map_instance<id, C> ().register_element ( xml::qualified_name<C> (root_name, root_ns), xml::qualified_name<C> (subst_name, subst_ns), typeid (T), - &serializer_impl<T>); + s); } template<unsigned long id, typename C, typename T> diff --git a/libxsd/xsd/cxx/xml/dom/parsing-source.hxx b/libxsd/xsd/cxx/xml/dom/parsing-source.hxx index fc0bd71..e4cb37e 100644 --- a/libxsd/xsd/cxx/xml/dom/parsing-source.hxx +++ b/libxsd/xsd/cxx/xml/dom/parsing-source.hxx @@ -8,6 +8,7 @@ #include <xercesc/dom/DOMNode.hpp> #include <xercesc/dom/DOMAttr.hpp> +#include <xercesc/dom/DOMText.hpp> #include <xercesc/dom/DOMElement.hpp> #include <xercesc/dom/DOMDocument.hpp> #include <xercesc/dom/DOMNamedNodeMap.hpp> diff --git a/xsd-examples/manifest b/xsd-examples/manifest index fc949c2..29b4f0f 100644 --- a/xsd-examples/manifest +++ b/xsd-examples/manifest @@ -1,6 +1,6 @@ : 1 name: xsd-examples -version: 4.2.0-b.2.z +version: 4.2.0-b.3.z project: xsd summary: XML Schema to C++ data binding compiler examples license: Unlicence diff --git a/xsd-tests/clash/driver.cxx b/xsd-tests/clash/driver.cxx index 478e71a..c8fd0ed 100644 --- a/xsd-tests/clash/driver.cxx +++ b/xsd-tests/clash/driver.cxx @@ -4,6 +4,9 @@ #include "foo.hxx" #include "clash.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/code/name-conflict/driver.cxx b/xsd-tests/code/name-conflict/driver.cxx index a6eb4fe..55763df 100644 --- a/xsd-tests/code/name-conflict/driver.cxx +++ b/xsd-tests/code/name-conflict/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/code/name-escaping/driver.cxx b/xsd-tests/code/name-escaping/driver.cxx index 8d74030..dcfb967 100644 --- a/xsd-tests/code/name-escaping/driver.cxx +++ b/xsd-tests/code/name-escaping/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/cxx/parser/built-in/driver.cxx b/xsd-tests/cxx/parser/built-in/driver.cxx index 008bc2d..aab2f19 100644 --- a/xsd-tests/cxx/parser/built-in/driver.cxx +++ b/xsd-tests/cxx/parser/built-in/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; diff --git a/xsd-tests/cxx/parser/enumeration/driver.cxx b/xsd-tests/cxx/parser/enumeration/driver.cxx index 4776ee2..d5488f7 100644 --- a/xsd-tests/cxx/parser/enumeration/driver.cxx +++ b/xsd-tests/cxx/parser/enumeration/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace xml_schema; diff --git a/xsd-tests/cxx/parser/list/driver.cxx b/xsd-tests/cxx/parser/list/driver.cxx index 382da5b..42d3255 100644 --- a/xsd-tests/cxx/parser/list/driver.cxx +++ b/xsd-tests/cxx/parser/list/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/name-clash/inheritance/driver.cxx b/xsd-tests/cxx/parser/name-clash/inheritance/driver.cxx index 9e9b905..cdb2b22 100644 --- a/xsd-tests/cxx/parser/name-clash/inheritance/driver.cxx +++ b/xsd-tests/cxx/parser/name-clash/inheritance/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/polymorphism/recursive/driver.cxx b/xsd-tests/cxx/parser/polymorphism/recursive/driver.cxx index 26793a0..4e7ffde 100644 --- a/xsd-tests/cxx/parser/polymorphism/recursive/driver.cxx +++ b/xsd-tests/cxx/parser/polymorphism/recursive/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" #include "test-pimpl.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx b/xsd-tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx index 7c7f410..ba44859 100644 --- a/xsd-tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx +++ b/xsd-tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx @@ -5,6 +5,9 @@ #include "test-pimpl.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; namespace test diff --git a/xsd-tests/cxx/parser/polymorphism/same-type/driver.cxx b/xsd-tests/cxx/parser/polymorphism/same-type/driver.cxx index 6da4a0a..cf0180b 100644 --- a/xsd-tests/cxx/parser/polymorphism/same-type/driver.cxx +++ b/xsd-tests/cxx/parser/polymorphism/same-type/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/recursive/driver.cxx b/xsd-tests/cxx/parser/recursive/driver.cxx index c93fd35..0877dfc 100644 --- a/xsd-tests/cxx/parser/recursive/driver.cxx +++ b/xsd-tests/cxx/parser/recursive/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; struct sub_pimpl: sub_type_pskel diff --git a/xsd-tests/cxx/parser/test-template/driver.cxx b/xsd-tests/cxx/parser/test-template/driver.cxx index 333c6fd..74c8c99 100644 --- a/xsd-tests/cxx/parser/test-template/driver.cxx +++ b/xsd-tests/cxx/parser/test-template/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/union/driver.cxx b/xsd-tests/cxx/parser/union/driver.cxx index c5b5c71..d133b41 100644 --- a/xsd-tests/cxx/parser/union/driver.cxx +++ b/xsd-tests/cxx/parser/union/driver.cxx @@ -9,6 +9,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/validation/all/driver.cxx b/xsd-tests/cxx/parser/validation/all/driver.cxx index a8cbcca..31081cb 100644 --- a/xsd-tests/cxx/parser/validation/all/driver.cxx +++ b/xsd-tests/cxx/parser/validation/all/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/validation/any/driver.cxx b/xsd-tests/cxx/parser/validation/any/driver.cxx index 1eceda6..2f22d37 100644 --- a/xsd-tests/cxx/parser/validation/any/driver.cxx +++ b/xsd-tests/cxx/parser/validation/any/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; @@ -35,7 +38,7 @@ struct any_a_pimpl: any_a_pskel } virtual void - _start_any_element (ro_string const&, + _start_any_element (ro_string const&, ro_string const& n, ro_string const*) { diff --git a/xsd-tests/cxx/parser/validation/attribute/driver.cxx b/xsd-tests/cxx/parser/validation/attribute/driver.cxx index 4710564..a98796e 100644 --- a/xsd-tests/cxx/parser/validation/attribute/driver.cxx +++ b/xsd-tests/cxx/parser/validation/attribute/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; diff --git a/xsd-tests/cxx/parser/validation/built-in/any-type/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/any-type/driver.cxx index cbeb864..35b3927 100644 --- a/xsd-tests/cxx/parser/validation/built-in/any-type/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/any-type/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; @@ -23,7 +26,7 @@ struct any_type_pimpl: xml_schema::any_type_pimpl } virtual void - _start_any_element (ro_string const&, + _start_any_element (ro_string const&, ro_string const& n, ro_string const*) { diff --git a/xsd-tests/cxx/parser/validation/built-in/binary/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/binary/driver.cxx index 3fe20ec..b3f0dbf 100644 --- a/xsd-tests/cxx/parser/validation/built-in/binary/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/binary/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in base64Binary and hexBinary types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/boolean/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/boolean/driver.cxx index f1499cd..3b25ffe 100644 --- a/xsd-tests/cxx/parser/validation/built-in/boolean/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/boolean/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in boolean type validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; bool diff --git a/xsd-tests/cxx/parser/validation/built-in/byte/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/byte/driver.cxx index b533cfd..9b0e9a1 100644 --- a/xsd-tests/cxx/parser/validation/built-in/byte/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/byte/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in byte and unsigned byte types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/date-time/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/date-time/driver.cxx index da02a50..36f384f 100644 --- a/xsd-tests/cxx/parser/validation/built-in/date-time/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/date-time/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in date and time types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/float/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/float/driver.cxx index e92c419..87a744d 100644 --- a/xsd-tests/cxx/parser/validation/built-in/float/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/float/driver.cxx @@ -4,11 +4,13 @@ // Test the built-in float, double, and decimal types validation. // #include <math.h> -#include <cassert> #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/int/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/int/driver.cxx index 270cd0e..7e68b35 100644 --- a/xsd-tests/cxx/parser/validation/built-in/int/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/int/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in int and unsigned int types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/integer/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/integer/driver.cxx index 3a5fdd5..4f8a80c 100644 --- a/xsd-tests/cxx/parser/validation/built-in/integer/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/integer/driver.cxx @@ -7,11 +7,13 @@ #include <string> #include <sstream> -#include <cassert> #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace xsd::cxx::parser::validating; diff --git a/xsd-tests/cxx/parser/validation/built-in/long/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/long/driver.cxx index a4ab565..41feb0b 100644 --- a/xsd-tests/cxx/parser/validation/built-in/long/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/long/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in long and unsigned long types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/qname/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/qname/driver.cxx index 85acd1c..8845b38 100644 --- a/xsd-tests/cxx/parser/validation/built-in/qname/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/qname/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in QName type validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; bool diff --git a/xsd-tests/cxx/parser/validation/built-in/short/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/short/driver.cxx index 7c79b22..f09f975 100644 --- a/xsd-tests/cxx/parser/validation/built-in/short/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/short/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in short and unsigned short types validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/string/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/string/driver.cxx index 920385a..d74ee52 100644 --- a/xsd-tests/cxx/parser/validation/built-in/string/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/string/driver.cxx @@ -4,11 +4,13 @@ // Test the built-in string & friends types validation. // #include <string> -#include <cassert> #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; template <typename T> diff --git a/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx index dcc9242..c296858 100644 --- a/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx +++ b/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx @@ -3,11 +3,12 @@ // Test the built-in anyURI type validation. // -#include <cassert> - #include <xsd/cxx/parser/validating/exceptions.hxx> #include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> +#undef NDEBUG +#include <cassert> + using namespace xsd::cxx::parser::validating; int diff --git a/xsd-tests/cxx/parser/validation/choice/driver.cxx b/xsd-tests/cxx/parser/validation/choice/driver.cxx index 4a52c5d..edfb15d 100644 --- a/xsd-tests/cxx/parser/validation/choice/driver.cxx +++ b/xsd-tests/cxx/parser/validation/choice/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; diff --git a/xsd-tests/cxx/parser/validation/restriction/driver.cxx b/xsd-tests/cxx/parser/validation/restriction/driver.cxx index 206b9f8..ea7f192 100644 --- a/xsd-tests/cxx/parser/validation/restriction/driver.cxx +++ b/xsd-tests/cxx/parser/validation/restriction/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/parser/validation/sequence/driver.cxx b/xsd-tests/cxx/parser/validation/sequence/driver.cxx index 6b5bf70..07d33e2 100644 --- a/xsd-tests/cxx/parser/validation/sequence/driver.cxx +++ b/xsd-tests/cxx/parser/validation/sequence/driver.cxx @@ -10,6 +10,9 @@ #include "test-pskel.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using xml_schema::ro_string; @@ -59,7 +62,7 @@ struct sequence_pimpl: sequence_pskel } virtual void - _start_any_element (ro_string const& ns, + _start_any_element (ro_string const& ns, ro_string const& name, ro_string const*) { diff --git a/xsd-tests/cxx/tree/any-type/driver.cxx b/xsd-tests/cxx/tree/any-type/driver.cxx index a8fccf6..8ed00c7 100644 --- a/xsd-tests/cxx/tree/any-type/driver.cxx +++ b/xsd-tests/cxx/tree/any-type/driver.cxx @@ -16,6 +16,9 @@ #include <xsd/cxx/xml/string.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using namespace xercesc; diff --git a/xsd-tests/cxx/tree/binary/cdr/driver.cxx b/xsd-tests/cxx/tree/binary/cdr/driver.cxx index fe74bb5..4656b03 100644 --- a/xsd-tests/cxx/tree/binary/cdr/driver.cxx +++ b/xsd-tests/cxx/tree/binary/cdr/driver.cxx @@ -5,11 +5,13 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include <iostream> #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/binary/polymorphic/driver.cxx b/xsd-tests/cxx/tree/binary/polymorphic/driver.cxx index 15ebf17..ebc0dba 100644 --- a/xsd-tests/cxx/tree/binary/polymorphic/driver.cxx +++ b/xsd-tests/cxx/tree/binary/polymorphic/driver.cxx @@ -5,7 +5,6 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include <iostream> #include <typeinfo> @@ -13,6 +12,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/binary/xdr-ordered/driver.cxx b/xsd-tests/cxx/tree/binary/xdr-ordered/driver.cxx index d61a645..46a2e1f 100644 --- a/xsd-tests/cxx/tree/binary/xdr-ordered/driver.cxx +++ b/xsd-tests/cxx/tree/binary/xdr-ordered/driver.cxx @@ -8,11 +8,13 @@ #include <memory> // std::auto_ptr/unique_ptr #include <cstring> // std::memcpy -#include <cassert> #include <iostream> #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/binary/xdr/driver.cxx b/xsd-tests/cxx/tree/binary/xdr/driver.cxx index 04606ea..a497d73 100644 --- a/xsd-tests/cxx/tree/binary/xdr/driver.cxx +++ b/xsd-tests/cxx/tree/binary/xdr/driver.cxx @@ -6,11 +6,13 @@ #include <memory> // std::auto_ptr/unique_ptr #include <cstring> // std::memcpy -#include <cassert> #include <iostream> #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/built-in/driver.cxx b/xsd-tests/cxx/tree/built-in/driver.cxx index 4141290..ccb43ac 100644 --- a/xsd-tests/cxx/tree/built-in/driver.cxx +++ b/xsd-tests/cxx/tree/built-in/driver.cxx @@ -8,9 +8,11 @@ #include <sstream> #include <iostream> - #include "types.hxx" +#undef NDEBUG +#include <cassert> + using std::cerr; using std::endl; diff --git a/xsd-tests/cxx/tree/chameleon/driver.cxx b/xsd-tests/cxx/tree/chameleon/driver.cxx index c22ca55..0d95864 100644 --- a/xsd-tests/cxx/tree/chameleon/driver.cxx +++ b/xsd-tests/cxx/tree/chameleon/driver.cxx @@ -9,6 +9,9 @@ #include "includer.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/comparison/driver.cxx b/xsd-tests/cxx/tree/comparison/driver.cxx index aa7b66d..36b0647 100644 --- a/xsd-tests/cxx/tree/comparison/driver.cxx +++ b/xsd-tests/cxx/tree/comparison/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/compilation/driver.cxx b/xsd-tests/cxx/tree/compilation/driver.cxx index 5c5ab39..818cb6b 100644 --- a/xsd-tests/cxx/tree/compilation/driver.cxx +++ b/xsd-tests/cxx/tree/compilation/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/complex/ctor/driver.cxx b/xsd-tests/cxx/tree/complex/ctor/driver.cxx index 7beaa93..7cc25bb 100644 --- a/xsd-tests/cxx/tree/complex/ctor/driver.cxx +++ b/xsd-tests/cxx/tree/complex/ctor/driver.cxx @@ -4,7 +4,6 @@ // Test generation of varous complex type constructors. // -#include <cassert> #include <memory> #include "test.hxx" @@ -16,6 +15,9 @@ # define XSD_MOVE(x) x #endif +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/containment/driver.cxx b/xsd-tests/cxx/tree/containment/driver.cxx index 65c17fc..db8db72 100644 --- a/xsd-tests/cxx/tree/containment/driver.cxx +++ b/xsd-tests/cxx/tree/containment/driver.cxx @@ -5,7 +5,6 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include "test.hxx" @@ -16,6 +15,9 @@ # define XSD_MOVE(x) x #endif +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/default/general/driver.cxx b/xsd-tests/cxx/tree/default/general/driver.cxx index 7031636..f15a0c7 100644 --- a/xsd-tests/cxx/tree/default/general/driver.cxx +++ b/xsd-tests/cxx/tree/default/general/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/default/omit/driver.cxx b/xsd-tests/cxx/tree/default/omit/driver.cxx index 3dcc0d8..c7d32c9 100644 --- a/xsd-tests/cxx/tree/default/omit/driver.cxx +++ b/xsd-tests/cxx/tree/default/omit/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/detach/driver.cxx b/xsd-tests/cxx/tree/detach/driver.cxx index b632b5d..1d7e1f9 100644 --- a/xsd-tests/cxx/tree/detach/driver.cxx +++ b/xsd-tests/cxx/tree/detach/driver.cxx @@ -5,7 +5,6 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include "test.hxx" @@ -16,6 +15,9 @@ # define XSD_MOVE(x) x #endif +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/dom-association/dom-parse.cxx b/xsd-tests/cxx/tree/dom-association/dom-parse.cxx index 281eb2c..a14b8e9 100644 --- a/xsd-tests/cxx/tree/dom-association/dom-parse.cxx +++ b/xsd-tests/cxx/tree/dom-association/dom-parse.cxx @@ -15,6 +15,9 @@ #include <xsd/cxx/tree/exceptions.hxx> #include <xsd/cxx/tree/error-handler.hxx> +#undef NDEBUG +#include <cassert> + using namespace xercesc; namespace xml = xsd::cxx::xml; namespace tree = xsd::cxx::tree; diff --git a/xsd-tests/cxx/tree/dom-association/driver.cxx b/xsd-tests/cxx/tree/dom-association/driver.cxx index d85e105..2470212 100644 --- a/xsd-tests/cxx/tree/dom-association/driver.cxx +++ b/xsd-tests/cxx/tree/dom-association/driver.cxx @@ -13,6 +13,9 @@ #include "dom-parse.hxx" #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using namespace xercesc; diff --git a/xsd-tests/cxx/tree/encoding/char/iso-8859-1/driver.cxx b/xsd-tests/cxx/tree/encoding/char/iso-8859-1/driver.cxx index e356815..9d92c12 100644 --- a/xsd-tests/cxx/tree/encoding/char/iso-8859-1/driver.cxx +++ b/xsd-tests/cxx/tree/encoding/char/iso-8859-1/driver.cxx @@ -10,6 +10,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/encoding/char/lcp/driver.cxx b/xsd-tests/cxx/tree/encoding/char/lcp/driver.cxx index 97c0875..54f99e6 100644 --- a/xsd-tests/cxx/tree/encoding/char/lcp/driver.cxx +++ b/xsd-tests/cxx/tree/encoding/char/lcp/driver.cxx @@ -11,6 +11,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/encoding/char/utf-8/driver.cxx b/xsd-tests/cxx/tree/encoding/char/utf-8/driver.cxx index 7892667..7f83d2b 100644 --- a/xsd-tests/cxx/tree/encoding/char/utf-8/driver.cxx +++ b/xsd-tests/cxx/tree/encoding/char/utf-8/driver.cxx @@ -10,6 +10,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/encoding/wchar/driver.cxx b/xsd-tests/cxx/tree/encoding/wchar/driver.cxx index dbcbcba..f4e7993 100644 --- a/xsd-tests/cxx/tree/encoding/wchar/driver.cxx +++ b/xsd-tests/cxx/tree/encoding/wchar/driver.cxx @@ -10,6 +10,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/enumeration/ctor/driver.cxx b/xsd-tests/cxx/tree/enumeration/ctor/driver.cxx index c5ea1f2..3ea4a28 100644 --- a/xsd-tests/cxx/tree/enumeration/ctor/driver.cxx +++ b/xsd-tests/cxx/tree/enumeration/ctor/driver.cxx @@ -7,6 +7,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/enumeration/inheritance/driver.cxx b/xsd-tests/cxx/tree/enumeration/inheritance/driver.cxx index b517b1f..d2494c0 100644 --- a/xsd-tests/cxx/tree/enumeration/inheritance/driver.cxx +++ b/xsd-tests/cxx/tree/enumeration/inheritance/driver.cxx @@ -5,11 +5,13 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include <iostream> #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/float/driver.cxx b/xsd-tests/cxx/tree/float/driver.cxx index 0f7455f..b4409ad 100644 --- a/xsd-tests/cxx/tree/float/driver.cxx +++ b/xsd-tests/cxx/tree/float/driver.cxx @@ -10,6 +10,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/list/ctor/driver.cxx b/xsd-tests/cxx/tree/list/ctor/driver.cxx index 5673e67..f821cdd 100644 --- a/xsd-tests/cxx/tree/list/ctor/driver.cxx +++ b/xsd-tests/cxx/tree/list/ctor/driver.cxx @@ -7,6 +7,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/name-clash/inheritance/driver.cxx b/xsd-tests/cxx/tree/name-clash/inheritance/driver.cxx index 634c56a..ae0d337 100644 --- a/xsd-tests/cxx/tree/name-clash/inheritance/driver.cxx +++ b/xsd-tests/cxx/tree/name-clash/inheritance/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/naming/camel/driver.cxx b/xsd-tests/cxx/tree/naming/camel/driver.cxx index 600b3ff..82dddba 100644 --- a/xsd-tests/cxx/tree/naming/camel/driver.cxx +++ b/xsd-tests/cxx/tree/naming/camel/driver.cxx @@ -11,6 +11,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/naming/java/driver.cxx b/xsd-tests/cxx/tree/naming/java/driver.cxx index b47ff74..4738296 100644 --- a/xsd-tests/cxx/tree/naming/java/driver.cxx +++ b/xsd-tests/cxx/tree/naming/java/driver.cxx @@ -11,6 +11,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/naming/knr/driver.cxx b/xsd-tests/cxx/tree/naming/knr/driver.cxx index 8c75dd9..f959a20 100644 --- a/xsd-tests/cxx/tree/naming/knr/driver.cxx +++ b/xsd-tests/cxx/tree/naming/knr/driver.cxx @@ -11,6 +11,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/order/driver.cxx b/xsd-tests/cxx/tree/order/driver.cxx index f1902ba..46a0065 100644 --- a/xsd-tests/cxx/tree/order/driver.cxx +++ b/xsd-tests/cxx/tree/order/driver.cxx @@ -5,7 +5,6 @@ // #include <memory> // std::auto_ptr/unique_ptr -#include <cassert> #include <iostream> #include <xercesc/dom/DOM.hpp> @@ -13,6 +12,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using namespace xercesc; diff --git a/xsd-tests/cxx/tree/polymorphism/comparison/driver.cxx b/xsd-tests/cxx/tree/polymorphism/comparison/driver.cxx index cadb225..502fa3c 100644 --- a/xsd-tests/cxx/tree/polymorphism/comparison/driver.cxx +++ b/xsd-tests/cxx/tree/polymorphism/comparison/driver.cxx @@ -10,6 +10,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/polymorphism/ostream/driver.cxx b/xsd-tests/cxx/tree/polymorphism/ostream/driver.cxx index b030be9..8754ac0 100644 --- a/xsd-tests/cxx/tree/polymorphism/ostream/driver.cxx +++ b/xsd-tests/cxx/tree/polymorphism/ostream/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/polymorphism/same-type/driver.cxx b/xsd-tests/cxx/tree/polymorphism/same-type/driver.cxx index 94f82f5..bebd0a1 100644 --- a/xsd-tests/cxx/tree/polymorphism/same-type/driver.cxx +++ b/xsd-tests/cxx/tree/polymorphism/same-type/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/prefix/driver.cxx b/xsd-tests/cxx/tree/prefix/driver.cxx index bd2e46d..4eadf96 100644 --- a/xsd-tests/cxx/tree/prefix/driver.cxx +++ b/xsd-tests/cxx/tree/prefix/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/test-template/driver.cxx b/xsd-tests/cxx/tree/test-template/driver.cxx index 5257279..69c1ed9 100644 --- a/xsd-tests/cxx/tree/test-template/driver.cxx +++ b/xsd-tests/cxx/tree/test-template/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/types-only/driver.cxx b/xsd-tests/cxx/tree/types-only/driver.cxx index 730b807..f9cce83 100644 --- a/xsd-tests/cxx/tree/types-only/driver.cxx +++ b/xsd-tests/cxx/tree/types-only/driver.cxx @@ -9,6 +9,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/union/ctor/driver.cxx b/xsd-tests/cxx/tree/union/ctor/driver.cxx index 246eea8..20d03ad 100644 --- a/xsd-tests/cxx/tree/union/ctor/driver.cxx +++ b/xsd-tests/cxx/tree/union/ctor/driver.cxx @@ -7,6 +7,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; diff --git a/xsd-tests/cxx/tree/wildcard/driver.cxx b/xsd-tests/cxx/tree/wildcard/driver.cxx index e3040c7..2847391 100644 --- a/xsd-tests/cxx/tree/wildcard/driver.cxx +++ b/xsd-tests/cxx/tree/wildcard/driver.cxx @@ -15,6 +15,9 @@ #include <xsd/cxx/xml/string.hxx> +#undef NDEBUG +#include <cassert> + using namespace std; using namespace test; using namespace xercesc; diff --git a/xsd-tests/failed/driver.cxx b/xsd-tests/failed/driver.cxx index a84b24c..4154f9e 100644 --- a/xsd-tests/failed/driver.cxx +++ b/xsd-tests/failed/driver.cxx @@ -3,6 +3,9 @@ #include "test-00.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/manifest b/xsd-tests/manifest index 9170440..b11bba7 100644 --- a/xsd-tests/manifest +++ b/xsd-tests/manifest @@ -1,6 +1,6 @@ : 1 name: xsd-tests -version: 4.2.0-b.2.z +version: 4.2.0-b.3.z project: xsd summary: XML Schema to C++ data binding compiler tests license: other: GPL-2.0-only with Xerces-C++ linking exception and FLOSS exception diff --git a/xsd-tests/morphing/anonymous/attribute-group/driver.cxx b/xsd-tests/morphing/anonymous/attribute-group/driver.cxx index 1632d7d..e2eb296 100644 --- a/xsd-tests/morphing/anonymous/attribute-group/driver.cxx +++ b/xsd-tests/morphing/anonymous/attribute-group/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/morphing/anonymous/basic/driver.cxx b/xsd-tests/morphing/anonymous/basic/driver.cxx index fc289eb..c3f081a 100644 --- a/xsd-tests/morphing/anonymous/basic/driver.cxx +++ b/xsd-tests/morphing/anonymous/basic/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/morphing/anonymous/cyclic-inclusion/driver.cxx b/xsd-tests/morphing/anonymous/cyclic-inclusion/driver.cxx index 9046ee4..d79f00f 100644 --- a/xsd-tests/morphing/anonymous/cyclic-inclusion/driver.cxx +++ b/xsd-tests/morphing/anonymous/cyclic-inclusion/driver.cxx @@ -4,6 +4,9 @@ #include "includee.hxx" #include "includer.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/morphing/anonymous/group/driver.cxx b/xsd-tests/morphing/anonymous/group/driver.cxx index 2a76396..23a80e6 100644 --- a/xsd-tests/morphing/anonymous/group/driver.cxx +++ b/xsd-tests/morphing/anonymous/group/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/processing/inheritance/driver.cxx.in b/xsd-tests/processing/inheritance/driver.cxx.in index df18427..b37ad02 100644 --- a/xsd-tests/processing/inheritance/driver.cxx.in +++ b/xsd-tests/processing/inheritance/driver.cxx.in @@ -3,6 +3,9 @@ #include "test-$num$.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/anonymous/driver.cxx b/xsd-tests/schema/anonymous/driver.cxx index f902fdb..be1e3f0 100644 --- a/xsd-tests/schema/anonymous/driver.cxx +++ b/xsd-tests/schema/anonymous/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/any-type/driver.cxx b/xsd-tests/schema/any-type/driver.cxx index a94f099..9e82604 100644 --- a/xsd-tests/schema/any-type/driver.cxx +++ b/xsd-tests/schema/any-type/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/any/driver.cxx.in b/xsd-tests/schema/any/driver.cxx.in index 9c36761..33d5aa7 100644 --- a/xsd-tests/schema/any/driver.cxx.in +++ b/xsd-tests/schema/any/driver.cxx.in @@ -3,6 +3,9 @@ #include "$sch$.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/attribute-group/driver.cxx b/xsd-tests/schema/attribute-group/driver.cxx index 328cef4..2ca9593 100644 --- a/xsd-tests/schema/attribute-group/driver.cxx +++ b/xsd-tests/schema/attribute-group/driver.cxx @@ -3,6 +3,9 @@ #include "global.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/attribute/driver.cxx b/xsd-tests/schema/attribute/driver.cxx index 3d29b36..061e69c 100644 --- a/xsd-tests/schema/attribute/driver.cxx +++ b/xsd-tests/schema/attribute/driver.cxx @@ -5,6 +5,9 @@ #include "global.hxx" #include "local.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/cardinality/driver.cxx b/xsd-tests/schema/cardinality/driver.cxx index d8b218e..2c7dd73 100644 --- a/xsd-tests/schema/cardinality/driver.cxx +++ b/xsd-tests/schema/cardinality/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/chameleon/driver.cxx b/xsd-tests/schema/chameleon/driver.cxx index 7b408ef..553b1d3 100644 --- a/xsd-tests/schema/chameleon/driver.cxx +++ b/xsd-tests/schema/chameleon/driver.cxx @@ -4,6 +4,9 @@ #include "includer.hxx" #include "schemas/includee.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/enumeration/driver.cxx b/xsd-tests/schema/enumeration/driver.cxx index 406c8ab..df1f680 100644 --- a/xsd-tests/schema/enumeration/driver.cxx +++ b/xsd-tests/schema/enumeration/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/forward/driver.cxx b/xsd-tests/schema/forward/driver.cxx index ee6519e..e8c0de0 100644 --- a/xsd-tests/schema/forward/driver.cxx +++ b/xsd-tests/schema/forward/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/group/driver.cxx b/xsd-tests/schema/group/driver.cxx index e754194..d4744e5 100644 --- a/xsd-tests/schema/group/driver.cxx +++ b/xsd-tests/schema/group/driver.cxx @@ -4,6 +4,9 @@ #include "test.hxx" #include "global.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/import/driver.cxx b/xsd-tests/schema/import/driver.cxx index a94b2f3..aa289ea 100644 --- a/xsd-tests/schema/import/driver.cxx +++ b/xsd-tests/schema/import/driver.cxx @@ -3,6 +3,9 @@ #include "importer.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/include/driver.cxx b/xsd-tests/schema/include/driver.cxx index 779d9d6..8276621 100644 --- a/xsd-tests/schema/include/driver.cxx +++ b/xsd-tests/schema/include/driver.cxx @@ -3,6 +3,9 @@ #include "includer.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/no-namespace/driver.cxx b/xsd-tests/schema/no-namespace/driver.cxx index ef62942..6d31468 100644 --- a/xsd-tests/schema/no-namespace/driver.cxx +++ b/xsd-tests/schema/no-namespace/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/recursive/driver.cxx b/xsd-tests/schema/recursive/driver.cxx index 55c33cd..0e85546 100644 --- a/xsd-tests/schema/recursive/driver.cxx +++ b/xsd-tests/schema/recursive/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/ref-type/valid/driver.cxx.in b/xsd-tests/schema/ref-type/valid/driver.cxx.in index 434aa40..0c2936b 100644 --- a/xsd-tests/schema/ref-type/valid/driver.cxx.in +++ b/xsd-tests/schema/ref-type/valid/driver.cxx.in @@ -3,6 +3,9 @@ #include "$sch$.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/restriction/driver.cxx b/xsd-tests/schema/restriction/driver.cxx index 2ffeb74..eeacc91 100644 --- a/xsd-tests/schema/restriction/driver.cxx +++ b/xsd-tests/schema/restriction/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd-tests/schema/union/driver.cxx b/xsd-tests/schema/union/driver.cxx index 45f290f..2a0f699 100644 --- a/xsd-tests/schema/union/driver.cxx +++ b/xsd-tests/schema/union/driver.cxx @@ -3,6 +3,9 @@ #include "test.hxx" +#undef NDEBUG +#include <cassert> + int main (int, char*[]) { diff --git a/xsd/build/root.build b/xsd/build/root.build index 4407c3e..8589e33 100644 --- a/xsd/build/root.build +++ b/xsd/build/root.build @@ -21,7 +21,7 @@ if ($cxx.target.system == 'win32-msvc') cxx.poptions += -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS if ($cxx.class == 'msvc') - cxx.coptions += /wd4251 /wd4275 /wd4800 /wd4819 + cxx.coptions += /wd4251 /wd4275 /wd4800 cxx.poptions =+ "-I$out_root" "-I$src_root" diff --git a/xsd/buildfile b/xsd/buildfile index 298d3ce..552635c 100644 --- a/xsd/buildfile +++ b/xsd/buildfile @@ -3,6 +3,7 @@ ./: {*/ -build/} doc{INSTALL NEWS README} legal{GPLv2 LICENSE FLOSSE} manifest -# Don't install the INSTALL file. +# Don't install tests or the INSTALL file. # +tests/: install = false doc{INSTALL}@./: install = false diff --git a/xsd/doc/xsd-epilogue.1 b/xsd/doc/xsd-epilogue.1 index 192880c..a37da89 100644 --- a/xsd/doc/xsd-epilogue.1 +++ b/xsd/doc/xsd-epilogue.1 @@ -65,6 +65,9 @@ The value (stands for lower-camel-case) signifies a naming convention where the first letter of each word except the first is capitalized, for example: foo(), fooBar(). The +.B ucc +value (stands for upper-camel-case) signifies a naming convention where the +first letter of each word is capitalized, for example: Foo(), FooBar(). The .B java naming convention is similar to the lower-camel-case one except that accessor functions are prefixed with get, modifier functions are prefixed with set, diff --git a/xsd/doc/xsd-epilogue.xhtml b/xsd/doc/xsd-epilogue.xhtml index aef0418..632b2d9 100644 --- a/xsd/doc/xsd-epilogue.xhtml +++ b/xsd/doc/xsd-epilogue.xhtml @@ -38,14 +38,17 @@ <p>Similarly, the <code><b>--function-naming</b></code> option specifies the convention that should be used for naming C++ functions. Possible values for this option are <code><b>knr</b></code> - (default), <code><b>lcc</b></code>, and <code><b>java</b></code>. The - <code><b>knr</b></code> value (stands for K&R) signifies - the standard, lower-case naming convention with the underscore - used as a word delimiter, for example: <code>foo()</code>, - <code>foo_bar()</code>. The <code><b>lcc</b></code> value - (stands for lower-camel-case) signifies a naming convention - where the first letter of each word except the first is - capitalized, for example: <code>foo()</code>, <code>fooBar()</code>. + (default), <code><b>lcc</b></code>, <code><b>ucc</b></code>, and + <code><b>java</b></code>. The <code><b>knr</b></code> value (stands + for K&R) signifies the standard, lower-case naming convention + with the underscore used as a word delimiter, for example: + <code>foo()</code>, <code>foo_bar()</code>. The <code><b>lcc</b></code> + value (stands for lower-camel-case) signifies a naming convention + where the first letter of each word except the first is capitalized, + for example: <code>foo()</code>, <code>fooBar()</code>. The + <code><b>ucc</b></code> value (stands for upper-camel-case) signifies + a naming convention where the first letter of each word is capitalized, + for example: <code>Foo()</code>, <code>FooBar()</code>. The <code><b>java</b></code> naming convention is similar to the lower-camel-case one except that accessor functions are prefixed with <code>get</code>, modifier functions are prefixed diff --git a/xsd/manifest b/xsd/manifest index 52e789a..33ee935 100644 --- a/xsd/manifest +++ b/xsd/manifest @@ -1,6 +1,6 @@ : 1 name: xsd -version: 4.2.0-b.2.z +version: 4.2.0-b.3.z summary: XML Schema to C++ data binding compiler license: other: GPL-2.0-only with Xerces-C++ linking exception and FLOSS exception topics: C++, XML, XML Schema, XML parser, source code generation diff --git a/xsd/tests/.gitignore b/xsd/tests/.gitignore new file mode 100644 index 0000000..35ec43f --- /dev/null +++ b/xsd/tests/.gitignore @@ -0,0 +1,2 @@ +test/ +test-*/ diff --git a/xsd/tests/build/.gitignore b/xsd/tests/build/.gitignore new file mode 100644 index 0000000..4a730a3 --- /dev/null +++ b/xsd/tests/build/.gitignore @@ -0,0 +1,3 @@ +config.build +root/ +bootstrap/ diff --git a/xsd/tests/build/bootstrap.build b/xsd/tests/build/bootstrap.build new file mode 100644 index 0000000..33c8d02 --- /dev/null +++ b/xsd/tests/build/bootstrap.build @@ -0,0 +1,8 @@ +# file : tests/build/bootstrap.build +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +project = # Unnamed subproject. + +using config +using dist +using test diff --git a/xsd/tests/build/root.build b/xsd/tests/build/root.build new file mode 100644 index 0000000..dd7abe5 --- /dev/null +++ b/xsd/tests/build/root.build @@ -0,0 +1,16 @@ +# file : tests/build/root.build +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +# We need to configure C++ module to obtain the target information (see +# below). +# +using cxx.config + +# Import the XSD compiler we will be testing. +# +import! [metadata] xsd = xsd%exe{xsd} +testscript{*}: test = $xsd + +# Specify the test target for cross-testing. +# +test.target = $cxx.target diff --git a/xsd/tests/buildfile b/xsd/tests/buildfile new file mode 100644 index 0000000..201b1d7 --- /dev/null +++ b/xsd/tests/buildfile @@ -0,0 +1,4 @@ +# file : tests/buildfile +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +./: testscript $xsd diff --git a/xsd/tests/testscript b/xsd/tests/testscript new file mode 100644 index 0000000..7570d4d --- /dev/null +++ b/xsd/tests/testscript @@ -0,0 +1,26 @@ +# file : tests/testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: version +: +$* --version >>~/EOO/ +/CodeSynthesis XSD XML Schema to C\+\+ compiler .+/ +/.*/* +EOO + +: basics +: +cat <<EOI >=test.xsd; +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:complexType name="hello_t"> + <xsd:sequence> + <xsd:element name="greeting" type="xsd:string"/> + <xsd:element name="name" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="hello" type="hello_t"/> +</xsd:schema> +EOI +$* cxx-tree --generate-inline test.xsd &test.hxx &test.ixx &test.cxx; +test -f test.hxx && test -f test.ixx && test -f test.cxx diff --git a/xsd/xsd/buildfile b/xsd/xsd/buildfile index 1a58561..eac0ff9 100644 --- a/xsd/xsd/buildfile +++ b/xsd/xsd/buildfile @@ -67,6 +67,7 @@ cli_options = --std c++11 -I $src_root --generate-specifier \ backlink = true } {{ + diag cli ($<[0]) $cli $cli_options -o $directory($path($>[0])) $path($<[0]) }} diff --git a/xsd/xsd/cxx/tree/name-processor.cxx b/xsd/xsd/cxx/tree/name-processor.cxx index 6ca616e..325870a 100644 --- a/xsd/xsd/cxx/tree/name-processor.cxx +++ b/xsd/xsd/cxx/tree/name-processor.cxx @@ -129,6 +129,12 @@ namespace CXX accessor_regex.push_back ("/([^,]+),([^,]+),([^,]+)/\\l$1\\u$2\\u$3/"); accessor_regex.push_back ("/([^,]+)/\\l$1/"); } + else if (fn == "ucc") + { + accessor_regex.push_back ("/([^,]+),([^,]+)/\\u$1\\u$2/"); + accessor_regex.push_back ("/([^,]+),([^,]+),([^,]+)/\\u$1\\u$2\\u$3/"); + accessor_regex.push_back ("/([^,]+)/\\u$1/"); + } else { // Java: add get. @@ -169,6 +175,11 @@ namespace CXX modifier_regex.push_back ("/([^,]+),([^,]+)/\\l$1\\u$2/"); modifier_regex.push_back ("/([^,]+)/\\l$1/"); } + else if (fn == "ucc") + { + modifier_regex.push_back ("/([^,]+),([^,]+)/\\u$1\\u$2/"); + modifier_regex.push_back ("/([^,]+)/\\u$1/"); + } else { // Java: add set. @@ -202,6 +213,10 @@ namespace CXX { parser_regex.push_back ("/(.+)/\\l$1/"); } + else if (fn == "ucc") + { + parser_regex.push_back ("/(.+)/\\u$1/"); + } else if (fn == "java") { // Java: add parse. @@ -219,6 +234,10 @@ namespace CXX { serializer_regex.push_back ("/(.+)/\\l$1/"); } + else if (fn == "ucc") + { + serializer_regex.push_back ("/(.+)/\\u$1/"); + } else if (fn == "java") { // Java: add serialize. @@ -244,6 +263,11 @@ namespace CXX const_regex.push_back ("/([^,]+),([^,]+),([^,]+)/\\l$1_\\u$2_\\u$3/"); const_regex.push_back ("/([^,]+),([^,]+)/\\l$1\\u$2/"); } + else if (fn == "ucc") + { + const_regex.push_back ("/([^,]+),([^,]+),([^,]+)/\\u$1_\\u$2_\\u$3/"); + const_regex.push_back ("/([^,]+),([^,]+)/\\u$1\\u$2/"); + } else { // Java: all uppercase. @@ -2173,6 +2197,8 @@ namespace CXX if (fn == "knr") n.context ().set ("tree-node-key", String ("tree_node_key")); + else if (fn == "ucc") + n.context ().set ("tree-node-key", String ("TreeNodeKey")); else n.context ().set ("tree-node-key", String ("treeNodeKey")); diff --git a/xsd/xsd/cxx/tree/options.cli b/xsd/xsd/cxx/tree/options.cli index 1f0b23f..0230429 100644 --- a/xsd/xsd/cxx/tree/options.cli +++ b/xsd/xsd/cxx/tree/options.cli @@ -257,9 +257,9 @@ namespace CXX { "<style>", "Specify the function naming convention that should be used in the - generated code. Valid styles are \cb{knr} (default), \cb{lcc}, and - \cb{java}. See the NAMING CONVENTION section below for more - information." + generated code. Valid styles are \cb{knr} (default), \cb{lcc}, + \cb{ucc}, and \cb{java}. See the NAMING CONVENTION section below + for more information." }; NarrowStrings --type-regex diff --git a/xsd/xsd/cxx/tree/serialization-source.cxx b/xsd/xsd/cxx/tree/serialization-source.cxx index 9be7499..08b81d6 100644 --- a/xsd/xsd/cxx/tree/serialization-source.cxx +++ b/xsd/xsd/cxx/tree/serialization-source.cxx @@ -999,8 +999,25 @@ namespace CXX virtual void traverse (Type& e) { + // Similar to parsing, we cannot just omit this element if it's + // abstract because it may serve as a "link" between the root of the + // substitution group and a non-abstract element that uses this + // element as its root (see + // element_serializer_map::find_substitution() for details). + // if (polymorphic && e.substitutes_p ()) { + SemanticGraph::Type& t (e.type ()); + + // Check if this element is abstract. + // + bool abst; + { + SemanticGraph::Complex* tc; + abst = (tc = dynamic_cast<SemanticGraph::Complex*> (&t)) != 0 && + tc->abstract_p (); + } + Type& r (e.substitutes ().root ()); String const& name (ename (e)); @@ -1016,7 +1033,18 @@ namespace CXX << strlit (r.name ()) << "," << endl << strlit (r.namespace_ ().name ()) << "," << endl << strlit (e.name ()) << "," << endl - << strlit (e.namespace_ ().name ()) << ");" + << strlit (e.namespace_ ().name ()) << "," << endl; + + if (abst) + os << "0"; + else + { + os << "&::xsd::cxx::tree::serializer_impl< "; + belongs (e, belongs_); + os << " >"; + } + + os << ");" << endl << endl; } diff --git a/xsd/xsd/cxx/tree/tree-source.cxx b/xsd/xsd/cxx/tree/tree-source.cxx index 00e895b..d702509 100644 --- a/xsd/xsd/cxx/tree/tree-source.cxx +++ b/xsd/xsd/cxx/tree/tree-source.cxx @@ -3727,24 +3727,36 @@ namespace CXX } } - if (!abst && polymorphic && e.substitutes_p () && - !options.suppress_parsing ()) + // Note that we cannot just omit this element if it's abstract + // because it may serve as a "link" between the root of the + // substitution group and a non-abstract element that uses this + // element as its root (see element_factory_map::find_substitution() + // for details). + // + if (polymorphic && e.substitutes_p () && !options.suppress_parsing ()) { String const& name (ename (e)); Type& r (e.substitutes ().root ()); os << "static" << endl << "const ::xsd::cxx::tree::element_factory_initializer< " << - poly_plate << ", " << char_type << ", "; - - belongs (e, belongs_); - - os << " >" << endl + poly_plate << ", " << char_type << " >" << endl << "_xsd_" << name << "_element_factory_init (" << endl << strlit (r.name ()) << "," << endl << strlit (r.namespace_ ().name ()) << "," << endl << strlit (e.name ()) << "," << endl - << strlit (e.namespace_ ().name ()) << ");" + << strlit (e.namespace_ ().name ()) << "," << endl; + + if (abst) + os << "0"; + else + { + os << "&::xsd::cxx::tree::factory_impl< "; + belongs (e, belongs_); + os << " >"; + } + + os << ");" << endl << endl; } diff --git a/xsd/xsd/cxx/tree/validator.cxx b/xsd/xsd/cxx/tree/validator.cxx index 46deb6c..9785560 100644 --- a/xsd/xsd/cxx/tree/validator.cxx +++ b/xsd/xsd/cxx/tree/validator.cxx @@ -587,7 +587,7 @@ namespace CXX NarrowString fn (ops.function_naming ()); - if (fn != "knr" && fn != "lcc" && fn != "java") + if (fn != "knr" && fn != "lcc" && fn != "ucc" && fn != "java") { wcerr << "error: unknown function naming style specified: '" << fn.c_str () << "'" << endl; |