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/serializer/validating/idref-stl.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'libxsde/xsde/cxx/serializer/validating/idref-stl.cxx') 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 ()); } } } -- cgit v1.1