aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/parser/validating/name.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-10-08 15:35:23 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-10-08 15:35:23 +0200
commit7db026e8056914d113ac0bbfd9bdc4908a9e7874 (patch)
tree0ab15cb8b0ee160a10cca21edaf0aca1e97e8921 /libxsde/xsde/cxx/parser/validating/name.cxx
parent4f38adc11ab1a3a1ab2dd3f958c917182be7d71f (diff)
Add support for the whiteSpace facet
Use the same mechanism to handle whitespace processing for build-in types and enumerations.
Diffstat (limited to 'libxsde/xsde/cxx/parser/validating/name.cxx')
-rw-r--r--libxsde/xsde/cxx/parser/validating/name.cxx15
1 files changed, 5 insertions, 10 deletions
diff --git a/libxsde/xsde/cxx/parser/validating/name.cxx b/libxsde/xsde/cxx/parser/validating/name.cxx
index 570a6cd..ce73940 100644
--- a/libxsde/xsde/cxx/parser/validating/name.cxx
+++ b/libxsde/xsde/cxx/parser/validating/name.cxx
@@ -60,8 +60,11 @@ namespace xsde
void name_pimpl::
_post ()
{
- ro_string tmp (str_.data (), str_.size ());
- ro_string::size_type size = trim_right (tmp);
+ if (!string_common::validate_facets (str_, _facets (), _context ()))
+ return;
+
+ typedef string::size_type size_type;
+ size_type size = str_.size ();
// For now we are only checking the US-ASCII characters.
//
@@ -89,16 +92,8 @@ namespace xsde
}
}
- str_.truncate (size);
-
if (!ok)
- {
_schema_error (schema_error::invalid_name_value);
- return;
- }
-
- string_common::validate_facets (
- str_.data (), str_.size (), _facets (), _context ());
}
char* name_pimpl::