summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE2
-rw-r--r--libxsd-tests/cxx/parser/expat/basic/driver.cxx4
-rw-r--r--libxsd-tests/cxx/parser/xerces/basic/driver.cxx4
-rw-r--r--libxsd-tests/cxx/tree/basic/driver.cxx4
-rw-r--r--libxsd-tests/manifest2
-rw-r--r--libxsd/manifest2
-rw-r--r--libxsd/xsd/cxx/tree/type-factory-map.hxx7
-rw-r--r--libxsd/xsd/cxx/tree/type-factory-map.txx16
-rw-r--r--libxsd/xsd/cxx/tree/type-serializer-map.hxx5
-rw-r--r--libxsd/xsd/cxx/tree/type-serializer-map.txx11
-rw-r--r--libxsd/xsd/cxx/xml/dom/parsing-source.hxx1
-rw-r--r--xsd-examples/manifest2
-rw-r--r--xsd-tests/clash/driver.cxx3
-rw-r--r--xsd-tests/code/name-conflict/driver.cxx3
-rw-r--r--xsd-tests/code/name-escaping/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/built-in/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/enumeration/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/list/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/name-clash/inheritance/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/polymorphism/recursive/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx3
-rw-r--r--xsd-tests/cxx/parser/polymorphism/same-type/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/recursive/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/test-template/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/union/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/validation/all/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/validation/any/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/attribute/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/any-type/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/binary/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/boolean/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/byte/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/date-time/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/float/driver.cxx4
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/int/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/integer/driver.cxx4
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/long/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/qname/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/short/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/string/driver.cxx4
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx5
-rw-r--r--xsd-tests/cxx/parser/validation/choice/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/validation/restriction/driver.cxx3
-rw-r--r--xsd-tests/cxx/parser/validation/sequence/driver.cxx5
-rw-r--r--xsd-tests/cxx/tree/any-type/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/binary/cdr/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/binary/polymorphic/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/binary/xdr-ordered/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/binary/xdr/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/built-in/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/chameleon/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/comparison/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/compilation/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/complex/ctor/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/containment/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/default/general/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/default/omit/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/detach/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/dom-association/dom-parse.cxx3
-rw-r--r--xsd-tests/cxx/tree/dom-association/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/encoding/char/iso-8859-1/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/encoding/char/lcp/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/encoding/char/utf-8/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/encoding/wchar/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/enumeration/ctor/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/enumeration/inheritance/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/float/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/list/ctor/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/name-clash/inheritance/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/naming/camel/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/naming/java/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/naming/knr/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/order/driver.cxx4
-rw-r--r--xsd-tests/cxx/tree/polymorphism/comparison/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/polymorphism/ostream/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/polymorphism/same-type/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/prefix/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/test-template/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/types-only/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/union/ctor/driver.cxx3
-rw-r--r--xsd-tests/cxx/tree/wildcard/driver.cxx3
-rw-r--r--xsd-tests/failed/driver.cxx3
-rw-r--r--xsd-tests/manifest2
-rw-r--r--xsd-tests/morphing/anonymous/attribute-group/driver.cxx3
-rw-r--r--xsd-tests/morphing/anonymous/basic/driver.cxx3
-rw-r--r--xsd-tests/morphing/anonymous/cyclic-inclusion/driver.cxx3
-rw-r--r--xsd-tests/morphing/anonymous/group/driver.cxx3
-rw-r--r--xsd-tests/processing/inheritance/driver.cxx.in3
-rw-r--r--xsd-tests/schema/anonymous/driver.cxx3
-rw-r--r--xsd-tests/schema/any-type/driver.cxx3
-rw-r--r--xsd-tests/schema/any/driver.cxx.in3
-rw-r--r--xsd-tests/schema/attribute-group/driver.cxx3
-rw-r--r--xsd-tests/schema/attribute/driver.cxx3
-rw-r--r--xsd-tests/schema/cardinality/driver.cxx3
-rw-r--r--xsd-tests/schema/chameleon/driver.cxx3
-rw-r--r--xsd-tests/schema/enumeration/driver.cxx3
-rw-r--r--xsd-tests/schema/forward/driver.cxx3
-rw-r--r--xsd-tests/schema/group/driver.cxx3
-rw-r--r--xsd-tests/schema/import/driver.cxx3
-rw-r--r--xsd-tests/schema/include/driver.cxx3
-rw-r--r--xsd-tests/schema/no-namespace/driver.cxx3
-rw-r--r--xsd-tests/schema/recursive/driver.cxx3
-rw-r--r--xsd-tests/schema/ref-type/valid/driver.cxx.in3
-rw-r--r--xsd-tests/schema/restriction/driver.cxx3
-rw-r--r--xsd-tests/schema/union/driver.cxx3
-rw-r--r--xsd/build/root.build2
-rw-r--r--xsd/buildfile3
-rw-r--r--xsd/doc/xsd-epilogue.13
-rw-r--r--xsd/doc/xsd-epilogue.xhtml19
-rw-r--r--xsd/manifest2
-rw-r--r--xsd/tests/.gitignore2
-rw-r--r--xsd/tests/build/.gitignore3
-rw-r--r--xsd/tests/build/bootstrap.build8
-rw-r--r--xsd/tests/build/root.build16
-rw-r--r--xsd/tests/buildfile4
-rw-r--r--xsd/tests/testscript26
-rw-r--r--xsd/xsd/buildfile1
-rw-r--r--xsd/xsd/cxx/tree/name-processor.cxx26
-rw-r--r--xsd/xsd/cxx/tree/options.cli6
-rw-r--r--xsd/xsd/cxx/tree/serialization-source.cxx30
-rw-r--r--xsd/xsd/cxx/tree/tree-source.cxx28
-rw-r--r--xsd/xsd/cxx/tree/validator.cxx2
122 files changed, 479 insertions, 77 deletions
diff --git a/LICENSE b/LICENSE
index 1a691ad..5604610 100644
--- a/LICENSE
+++ b/LICENSE
@@ -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&amp;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&amp;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;