aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/serializer-source.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsde/cxx/hybrid/serializer-source.cxx')
-rw-r--r--xsde/cxx/hybrid/serializer-source.cxx28
1 files changed, 26 insertions, 2 deletions
diff --git a/xsde/cxx/hybrid/serializer-source.cxx b/xsde/cxx/hybrid/serializer-source.cxx
index 87004fa..b15a3bf 100644
--- a/xsde/cxx/hybrid/serializer-source.cxx
+++ b/xsde/cxx/hybrid/serializer-source.cxx
@@ -204,8 +204,22 @@ namespace CXX
os << "void " << name << "::" << endl
<< "_serialize_content ()"
- << "{"
- << "this->_characters (this->" << state << "->" <<
+ << "{";
+
+ if (!options.value<CLI::suppress_validation> () &&
+ !options.value<CLI::suppress_serializer_val> ())
+ {
+ // Do facet validation.
+ //
+ os << "::xsde::cxx::serializer::validating::string_common::" <<
+ "validate_facets (" << endl
+ << "this->" << state << "->" << string << " ()," << endl
+ << "this->_facets ()," << endl
+ << "this->_context ());"
+ << endl;
+ }
+
+ os << "this->_characters (this->" << state << "->" <<
string << " ());"
<< "}";
}
@@ -1377,6 +1391,16 @@ namespace CXX
ctx.os << "#include <string.h>" << endl
<< endl;
+ if (ctx.enum_ &&
+ !ctx.options.value<CLI::suppress_validation> () &&
+ !ctx.options.value<CLI::suppress_serializer_val> ())
+ {
+ // We need this functionality for enum mapping.
+ //
+ ctx.os << "#include <xsde/cxx/serializer/validating/string-common.hxx>" << endl
+ << endl;
+ }
+
Traversal::Schema schema;
Traversal::Sources sources;