From c964e1d8c0ff4e645691386ff92b41440223649b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 28 Mar 2010 20:04:12 +0200 Subject: Add facet support for other string-based types (serializer) --- libxsde/xsde/cxx/parser/validating/string-common.cxx | 12 +++++++----- libxsde/xsde/cxx/parser/validating/string-common.hxx | 2 +- libxsde/xsde/cxx/serializer/validating/id-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/id.cxx | 9 ++++++++- libxsde/xsde/cxx/serializer/validating/idref-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/idref.cxx | 9 ++++++++- .../xsde/cxx/serializer/validating/language-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/language.cxx | 9 ++++++++- libxsde/xsde/cxx/serializer/validating/name-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/name.cxx | 9 ++++++++- libxsde/xsde/cxx/serializer/validating/ncname-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/ncname.cxx | 9 ++++++++- libxsde/xsde/cxx/serializer/validating/nmtoken-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/nmtoken.cxx | 9 ++++++++- .../serializer/validating/normalized-string-stl.cxx | 15 +++++++++++---- .../cxx/serializer/validating/normalized-string.cxx | 10 ++++++++-- .../xsde/cxx/serializer/validating/string-common.cxx | 18 +++++++++++------- .../xsde/cxx/serializer/validating/string-common.hxx | 4 ++-- libxsde/xsde/cxx/serializer/validating/string-stl.cxx | 9 +++++---- libxsde/xsde/cxx/serializer/validating/string.cxx | 8 +++++--- libxsde/xsde/cxx/serializer/validating/token-stl.cxx | 14 +++++++++++--- libxsde/xsde/cxx/serializer/validating/token.cxx | 9 ++++++++- libxsde/xsde/cxx/serializer/validating/uri-stl.cxx | 7 ++++++- libxsde/xsde/cxx/serializer/validating/uri.cxx | 7 ++++++- .../cxx/serializer/validating/xml-schema-sskel.hxx | 11 +++++++---- .../cxx/serializer/validating/xml-schema-sskel.ixx | 12 +++++++++++- xsde/cxx/hybrid/serializer-source.cxx | 7 +++---- 27 files changed, 216 insertions(+), 67 deletions(-) diff --git a/libxsde/xsde/cxx/parser/validating/string-common.cxx b/libxsde/xsde/cxx/parser/validating/string-common.cxx index 15956f6..e226766 100644 --- a/libxsde/xsde/cxx/parser/validating/string-common.cxx +++ b/libxsde/xsde/cxx/parser/validating/string-common.cxx @@ -14,7 +14,7 @@ namespace xsde { namespace validating { - void string_common:: + bool string_common:: validate_facets (const char* s, size_t n, const string_facets::facets& f, @@ -23,19 +23,19 @@ namespace xsde if (f.length_set_ && n != f.length_) { ctx.schema_error (schema_error::length_not_equal_prescribed); - return; + return false; } if (f.min_length_set_ && n < f.min_length_) { ctx.schema_error (schema_error::length_less_than_min); - return; + return false; } if (f.max_length_set_ && n > f.max_length_) { ctx.schema_error (schema_error::length_greater_than_max); - return; + return false; } if (f.enum_count_ != 0) @@ -51,9 +51,11 @@ namespace xsde if (i == f.enum_count_) { ctx.schema_error (schema_error::value_not_in_enumeration); - return; + return false; } } + + return true; } } } diff --git a/libxsde/xsde/cxx/parser/validating/string-common.hxx b/libxsde/xsde/cxx/parser/validating/string-common.hxx index 52ea0c5..3191a3c 100644 --- a/libxsde/xsde/cxx/parser/validating/string-common.hxx +++ b/libxsde/xsde/cxx/parser/validating/string-common.hxx @@ -18,7 +18,7 @@ namespace xsde { struct string_common { - static void + static bool validate_facets (const char* s, size_t n, const string_facets::facets&, diff --git a/libxsde/xsde/cxx/serializer/validating/id-stl.cxx b/libxsde/xsde/cxx/serializer/validating/id-stl.cxx index 974b8e2..f7ba57c 100644 --- a/libxsde/xsde/cxx/serializer/validating/id-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/id-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -27,10 +28,17 @@ namespace xsde std::string tmp; tmp.swap (value_); - if (xml::valid_ncname (tmp.c_str (), tmp.size ())) - _characters (tmp.c_str (), tmp.size ()); - else + if (!xml::valid_ncname (tmp.c_str (), tmp.size ())) + { _schema_error (schema_error::invalid_id_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/id.cxx b/libxsde/xsde/cxx/serializer/validating/id.cxx index 94198a4..55e91ef 100644 --- a/libxsde/xsde/cxx/serializer/validating/id.cxx +++ b/libxsde/xsde/cxx/serializer/validating/id.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -36,7 +37,13 @@ namespace xsde size_t n = strlen (value_); if (xml::valid_ncname (value_, n)) - _characters (value_, n); + { + if (string_common::validate_facets ( + value_, n, _facets (), _context ())) + { + _characters (value_, n); + } + } else _schema_error (schema_error::invalid_id_value); diff --git a/libxsde/xsde/cxx/serializer/validating/idref-stl.cxx b/libxsde/xsde/cxx/serializer/validating/idref-stl.cxx index a4aee50..3fdc2de 100644 --- a/libxsde/xsde/cxx/serializer/validating/idref-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/idref-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -27,10 +28,17 @@ namespace xsde std::string tmp; tmp.swap (value_); - if (xml::valid_ncname (tmp.c_str (), tmp.size ())) - _characters (tmp.c_str (), tmp.size ()); - else + if (!xml::valid_ncname (tmp.c_str (), tmp.size ())) + { _schema_error (schema_error::invalid_idref_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/idref.cxx b/libxsde/xsde/cxx/serializer/validating/idref.cxx index f87bd76..93e4228 100644 --- a/libxsde/xsde/cxx/serializer/validating/idref.cxx +++ b/libxsde/xsde/cxx/serializer/validating/idref.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -36,7 +37,13 @@ namespace xsde size_t n = strlen (value_); if (xml::valid_ncname (value_, n)) - _characters (value_, n); + { + if (string_common::validate_facets ( + value_, n, _facets (), _context ())) + { + _characters (value_, n); + } + } else _schema_error (schema_error::invalid_idref_value); diff --git a/libxsde/xsde/cxx/serializer/validating/language-stl.cxx b/libxsde/xsde/cxx/serializer/validating/language-stl.cxx index 55e3b9b..ae16931 100644 --- a/libxsde/xsde/cxx/serializer/validating/language-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/language-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -62,10 +63,17 @@ namespace xsde } } - if (ok) - _characters (tmp.c_str (), tmp.size ()); - else + if (!ok) + { _schema_error (schema_error::invalid_language_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/language.cxx b/libxsde/xsde/cxx/serializer/validating/language.cxx index 05ecd15..662c512 100644 --- a/libxsde/xsde/cxx/serializer/validating/language.cxx +++ b/libxsde/xsde/cxx/serializer/validating/language.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -65,7 +66,13 @@ namespace xsde } if (ok) - _characters (value_); + { + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } + } else _schema_error (schema_error::invalid_language_value); diff --git a/libxsde/xsde/cxx/serializer/validating/name-stl.cxx b/libxsde/xsde/cxx/serializer/validating/name-stl.cxx index 4541a21..97b0381 100644 --- a/libxsde/xsde/cxx/serializer/validating/name-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/name-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -51,10 +52,17 @@ namespace xsde } } - if (ok) - _characters (tmp.c_str (), tmp.size ()); - else + if (!ok) + { _schema_error (schema_error::invalid_name_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/name.cxx b/libxsde/xsde/cxx/serializer/validating/name.cxx index eec2a94..c1fec6e 100644 --- a/libxsde/xsde/cxx/serializer/validating/name.cxx +++ b/libxsde/xsde/cxx/serializer/validating/name.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -54,7 +55,13 @@ namespace xsde } if (ok) - _characters (value_); + { + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } + } else _schema_error (schema_error::invalid_name_value); diff --git a/libxsde/xsde/cxx/serializer/validating/ncname-stl.cxx b/libxsde/xsde/cxx/serializer/validating/ncname-stl.cxx index a8b7b7c..74a6584 100644 --- a/libxsde/xsde/cxx/serializer/validating/ncname-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/ncname-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -27,10 +28,17 @@ namespace xsde std::string tmp; tmp.swap (value_); - if (xml::valid_ncname (tmp.c_str (), tmp.size ())) - _characters (tmp.c_str (), tmp.size ()); - else + if (!xml::valid_ncname (tmp.c_str (), tmp.size ())) + { _schema_error (schema_error::invalid_ncname_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/ncname.cxx b/libxsde/xsde/cxx/serializer/validating/ncname.cxx index 38ee90f..ee6079b 100644 --- a/libxsde/xsde/cxx/serializer/validating/ncname.cxx +++ b/libxsde/xsde/cxx/serializer/validating/ncname.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -36,7 +37,13 @@ namespace xsde size_t n = strlen (value_); if (xml::valid_ncname (value_, n)) - _characters (value_, n); + { + if (string_common::validate_facets ( + value_, n, _facets (), _context ())) + { + _characters (value_, n); + } + } else _schema_error (schema_error::invalid_ncname_value); diff --git a/libxsde/xsde/cxx/serializer/validating/nmtoken-stl.cxx b/libxsde/xsde/cxx/serializer/validating/nmtoken-stl.cxx index e417b98..f336620 100644 --- a/libxsde/xsde/cxx/serializer/validating/nmtoken-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/nmtoken-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -42,10 +43,17 @@ namespace xsde ok = false; } - if (ok) - _characters (tmp.c_str (), tmp.size ()); - else + if (!ok) + { _schema_error (schema_error::invalid_nmtoken_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/nmtoken.cxx b/libxsde/xsde/cxx/serializer/validating/nmtoken.cxx index 10acf64..a230b57 100644 --- a/libxsde/xsde/cxx/serializer/validating/nmtoken.cxx +++ b/libxsde/xsde/cxx/serializer/validating/nmtoken.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -45,7 +46,13 @@ namespace xsde } if (ok) - _characters (value_); + { + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } + } else _schema_error (schema_error::invalid_nmtoken_value); diff --git a/libxsde/xsde/cxx/serializer/validating/normalized-string-stl.cxx b/libxsde/xsde/cxx/serializer/validating/normalized-string-stl.cxx index b7ccde7..cf1bbc0 100644 --- a/libxsde/xsde/cxx/serializer/validating/normalized-string-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/normalized-string-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -35,13 +36,19 @@ namespace xsde break; } - if (*s == '\0') - _characters (tmp.c_str (), tmp.size ()); - else + if (*s != '\0') + { _schema_error (schema_error::invalid_normalized_string_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } } } - diff --git a/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx b/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx index 72ade2e..89bb32c 100644 --- a/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx +++ b/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -38,7 +39,13 @@ namespace xsde } if (*s == '\0') - _characters (value_); + { + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } + } else _schema_error (schema_error::invalid_normalized_string_value); @@ -52,4 +59,3 @@ namespace xsde } } } - diff --git a/libxsde/xsde/cxx/serializer/validating/string-common.cxx b/libxsde/xsde/cxx/serializer/validating/string-common.cxx index c9c70b8..f7d49b6 100644 --- a/libxsde/xsde/cxx/serializer/validating/string-common.cxx +++ b/libxsde/xsde/cxx/serializer/validating/string-common.cxx @@ -14,7 +14,7 @@ namespace xsde { namespace validating { - void string_common:: + bool string_common:: validate_facets (const char* s, const string_facets::facets& f, context& ctx) @@ -24,11 +24,13 @@ namespace xsde f.max_length_set_ || f.enum_count_ != 0) { - validate_facets (s, strlen (s), f, ctx); + return validate_facets (s, strlen (s), f, ctx); } + + return true; } - void string_common:: + bool string_common:: validate_facets (const char* s, size_t n, const string_facets::facets& f, @@ -37,19 +39,19 @@ namespace xsde if (f.length_set_ && n != f.length_) { ctx.schema_error (schema_error::length_not_equal_prescribed); - return; + return false; } if (f.min_length_set_ && n < f.min_length_) { ctx.schema_error (schema_error::length_less_than_min); - return; + return false; } if (f.max_length_set_ && n > f.max_length_) { ctx.schema_error (schema_error::length_greater_than_max); - return; + return false; } if (f.enum_count_ != 0) @@ -65,9 +67,11 @@ namespace xsde if (i == f.enum_count_) { ctx.schema_error (schema_error::value_not_in_enumeration); - return; + return false; } } + + return true; } } } diff --git a/libxsde/xsde/cxx/serializer/validating/string-common.hxx b/libxsde/xsde/cxx/serializer/validating/string-common.hxx index b49ef5a..118ecea 100644 --- a/libxsde/xsde/cxx/serializer/validating/string-common.hxx +++ b/libxsde/xsde/cxx/serializer/validating/string-common.hxx @@ -18,12 +18,12 @@ namespace xsde { struct string_common { - static void + static bool validate_facets (const char* s, const string_facets::facets&, context&); - static void + static bool validate_facets (const char* s, size_t n, const string_facets::facets&, diff --git a/libxsde/xsde/cxx/serializer/validating/string-stl.cxx b/libxsde/xsde/cxx/serializer/validating/string-stl.cxx index ef13746..13822b0 100644 --- a/libxsde/xsde/cxx/serializer/validating/string-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/string-stl.cxx @@ -23,15 +23,16 @@ namespace xsde void string_simpl:: _serialize_content () { - string_common::validate_facets ( - value_.c_str (), value_.size (), _facets (), _context ()); - // Make sure we don't hold any references to the string. // std::string tmp; tmp.swap (value_); - _characters (tmp.c_str (), tmp.size ()); + if (string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + { + _characters (tmp.c_str (), tmp.size ()); + } } } } diff --git a/libxsde/xsde/cxx/serializer/validating/string.cxx b/libxsde/xsde/cxx/serializer/validating/string.cxx index befe450..a8d287e 100644 --- a/libxsde/xsde/cxx/serializer/validating/string.cxx +++ b/libxsde/xsde/cxx/serializer/validating/string.cxx @@ -30,9 +30,11 @@ namespace xsde void string_simpl:: _serialize_content () { - string_common::validate_facets (value_, _facets (), _context ()); - - _characters (value_); + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } if (free_) { diff --git a/libxsde/xsde/cxx/serializer/validating/token-stl.cxx b/libxsde/xsde/cxx/serializer/validating/token-stl.cxx index 9d91640..8fd524c 100644 --- a/libxsde/xsde/cxx/serializer/validating/token-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/token-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -47,10 +48,17 @@ namespace xsde if (ok && s != tmp.c_str () && *(s - 1) == 0x20) ok = false; - if (ok) - _characters (tmp.c_str (), tmp.size ()); - else + if (!ok) + { _schema_error (schema_error::invalid_token_value); + return; + } + + if (!string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + return; + + _characters (tmp.c_str (), tmp.size ()); } } } diff --git a/libxsde/xsde/cxx/serializer/validating/token.cxx b/libxsde/xsde/cxx/serializer/validating/token.cxx index a008034..30e98f8 100644 --- a/libxsde/xsde/cxx/serializer/validating/token.cxx +++ b/libxsde/xsde/cxx/serializer/validating/token.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -50,7 +51,13 @@ namespace xsde ok = false; if (ok) - _characters (value_); + { + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } + } else _schema_error (schema_error::invalid_token_value); diff --git a/libxsde/xsde/cxx/serializer/validating/uri-stl.cxx b/libxsde/xsde/cxx/serializer/validating/uri-stl.cxx index b0b0d03..8a13a22 100644 --- a/libxsde/xsde/cxx/serializer/validating/uri-stl.cxx +++ b/libxsde/xsde/cxx/serializer/validating/uri-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -31,7 +32,11 @@ namespace xsde // can be a URI and conforming processors do not need to figure // out and verify particular URI schemes. // - _characters (tmp.c_str (), tmp.size ()); + if (string_common::validate_facets ( + tmp.c_str (), tmp.size (), _facets (), _context ())) + { + _characters (tmp.c_str (), tmp.size ()); + } } } } diff --git a/libxsde/xsde/cxx/serializer/validating/uri.cxx b/libxsde/xsde/cxx/serializer/validating/uri.cxx index fee3eed..a1b7a86 100644 --- a/libxsde/xsde/cxx/serializer/validating/uri.cxx +++ b/libxsde/xsde/cxx/serializer/validating/uri.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -33,7 +34,11 @@ namespace xsde // can be a URI and conforming processors do not need to figure // out and verify particular URI schemes. // - _characters (value_); + if (string_common::validate_facets ( + value_, _facets (), _context ())) + { + _characters (value_); + } if (free_) { diff --git a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx index c206e78..a97742a 100644 --- a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx +++ b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx @@ -699,9 +699,9 @@ namespace xsde protected: string_sskel* string_impl_; #endif - // Facets. - // - const facets& + + protected: + const string_facets::facets& _facets () const; }; @@ -933,7 +933,7 @@ namespace xsde #endif }; - struct uri_sskel: simple_content + struct uri_sskel: simple_content, string_facets { virtual void #ifdef XSDE_STL @@ -957,6 +957,9 @@ namespace xsde protected: uri_sskel* uri_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; struct qname_sskel: simple_content diff --git a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx index b2eb40f..d62fdd4 100644 --- a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx +++ b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx @@ -504,7 +504,7 @@ namespace xsde } #endif - inline const string_sskel::facets& string_sskel:: + inline const string_facets::facets& string_sskel:: _facets () const { #ifdef XSDE_REUSE_STYLE_TIEIN @@ -690,6 +690,16 @@ namespace xsde { } #endif + inline const string_facets::facets& uri_sskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // qname_sskel // diff --git a/xsde/cxx/hybrid/serializer-source.cxx b/xsde/cxx/hybrid/serializer-source.cxx index b15a3bf..b9099f6 100644 --- a/xsde/cxx/hybrid/serializer-source.cxx +++ b/xsde/cxx/hybrid/serializer-source.cxx @@ -211,12 +211,11 @@ namespace CXX { // Do facet validation. // - os << "::xsde::cxx::serializer::validating::string_common::" << - "validate_facets (" << endl + os << "if (::xsde::cxx::serializer::validating::" << + "string_common::validate_facets (" << endl << "this->" << state << "->" << string << " ()," << endl << "this->_facets ()," << endl - << "this->_context ());" - << endl; + << "this->_context ()))" << endl; } os << "this->_characters (this->" << state << "->" << -- cgit v1.1