aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/parser
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-10-18 11:17:51 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-10-18 11:17:51 +0200
commitd80d096ee8743fd6f7382d274272b0b6d7faf9bf (patch)
treed0f0bee1e645cb2b86b6837ac0db8a7d2821e533 /xsde/cxx/parser
parent0e4637025fa8d1b4234b0512561d31f0dd023843 (diff)
Support for schema evolution using substitution groups
New examples: hybrid/evolution/ignore and hybrid/evolution/passthrough.
Diffstat (limited to 'xsde/cxx/parser')
-rw-r--r--xsde/cxx/parser/element-validation-source.cxx4
-rw-r--r--xsde/cxx/parser/parser-header.cxx6
2 files changed, 7 insertions, 3 deletions
diff --git a/xsde/cxx/parser/element-validation-source.cxx b/xsde/cxx/parser/element-validation-source.cxx
index 5533549..82428f6 100644
--- a/xsde/cxx/parser/element-validation-source.cxx
+++ b/xsde/cxx/parser/element-validation-source.cxx
@@ -494,9 +494,7 @@ namespace CXX
}
else
{
- os << "ctx.current_.any_ = true;"
- << "ctx.current_.depth_++;"
- << endl
+ os << "ctx.start_wildcard_content ();"
<< "this->_start_any_element (ns, n" <<
(poly_runtime ? (poly_code ? ", t" : ", 0") : "") << ");"
<< "}"
diff --git a/xsde/cxx/parser/parser-header.cxx b/xsde/cxx/parser/parser-header.cxx
index 2498768..bf9e31e 100644
--- a/xsde/cxx/parser/parser-header.cxx
+++ b/xsde/cxx/parser/parser-header.cxx
@@ -1625,6 +1625,11 @@ namespace CXX
<< "using ::xsde::cxx::parser::parser_map_impl;"
<< endl;
+ os << "// Parser substitution map callack." << endl
+ << "//" << endl
+ << "using ::xsde::cxx::parser::parser_smap_callback;"
+ << endl;
+
os << "// Substitution and inheritance hashmaps load querying." << endl
<< "//" << endl
<< "using ::xsde::cxx::parser::parser_smap_buckets;"
@@ -1775,6 +1780,7 @@ namespace CXX
if (ctx.poly_code)
{
ctx.os << "#include <xsde/cxx/parser/map.hxx>" << endl
+ << "#include <xsde/cxx/parser/substitution-map-callback.hxx>" << endl
<< "#include <xsde/cxx/parser/substitution-map-load.hxx>" << endl;
if (ctx.validation)