From b8749d41c4ded030201744f321b4e38a9093fd98 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 28 Mar 2010 19:27:51 +0200 Subject: Add facet support for other string-based types (parser) --- libxsde/xsde/cxx/parser/validating/id-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/id.cxx | 8 +- libxsde/xsde/cxx/parser/validating/idref-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/idref.cxx | 7 ++ .../xsde/cxx/parser/validating/language-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/language.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/name-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/name.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/ncname-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/ncname.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/nmtoken-stl.cxx | 7 ++ libxsde/xsde/cxx/parser/validating/nmtoken.cxx | 7 ++ .../parser/validating/normalized-string-stl.cxx | 12 ++- .../parser/validating/normalized-string-stl.hxx | 3 + .../cxx/parser/validating/normalized-string.cxx | 12 ++- .../cxx/parser/validating/normalized-string.hxx | 3 + libxsde/xsde/cxx/parser/validating/token-stl.cxx | 12 ++- libxsde/xsde/cxx/parser/validating/token-stl.hxx | 3 + libxsde/xsde/cxx/parser/validating/token.cxx | 12 ++- libxsde/xsde/cxx/parser/validating/token.hxx | 3 + libxsde/xsde/cxx/parser/validating/uri-stl.cxx | 12 ++- libxsde/xsde/cxx/parser/validating/uri-stl.hxx | 3 + libxsde/xsde/cxx/parser/validating/uri.cxx | 13 ++- libxsde/xsde/cxx/parser/validating/uri.hxx | 3 + .../cxx/parser/validating/xml-schema-pskel.hxx | 50 +++++++++--- .../cxx/parser/validating/xml-schema-pskel.ixx | 94 +++++++++++++++++++++- 26 files changed, 294 insertions(+), 26 deletions(-) (limited to 'libxsde') diff --git a/libxsde/xsde/cxx/parser/validating/id-stl.cxx b/libxsde/xsde/cxx/parser/validating/id-stl.cxx index 0cfac46..f20fa84 100644 --- a/libxsde/xsde/cxx/parser/validating/id-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/id-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -44,7 +45,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.resize (size); else + { _schema_error (schema_error::invalid_id_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string id_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/id.cxx b/libxsde/xsde/cxx/parser/validating/id.cxx index 88d5942..d2fb79d 100644 --- a/libxsde/xsde/cxx/parser/validating/id.cxx +++ b/libxsde/xsde/cxx/parser/validating/id.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -65,7 +66,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.truncate (size); else + { _schema_error (schema_error::invalid_id_value); + return; + } + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); } char* id_pimpl:: @@ -77,4 +84,3 @@ namespace xsde } } } - diff --git a/libxsde/xsde/cxx/parser/validating/idref-stl.cxx b/libxsde/xsde/cxx/parser/validating/idref-stl.cxx index 7771532..93d94dc 100644 --- a/libxsde/xsde/cxx/parser/validating/idref-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/idref-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -44,7 +45,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.resize (size); else + { _schema_error (schema_error::invalid_idref_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string idref_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/idref.cxx b/libxsde/xsde/cxx/parser/validating/idref.cxx index 78f751c..58ac4ca 100644 --- a/libxsde/xsde/cxx/parser/validating/idref.cxx +++ b/libxsde/xsde/cxx/parser/validating/idref.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -65,7 +66,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.truncate (size); else + { _schema_error (schema_error::invalid_idref_value); + return; + } + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); } char* idref_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/language-stl.cxx b/libxsde/xsde/cxx/parser/validating/language-stl.cxx index 9d0ead4..61b4a1b 100644 --- a/libxsde/xsde/cxx/parser/validating/language-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/language-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -79,7 +80,13 @@ namespace xsde if (ok) str_.resize (size); else + { _schema_error (schema_error::invalid_language_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string language_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/language.cxx b/libxsde/xsde/cxx/parser/validating/language.cxx index 669e91d..bd39295 100644 --- a/libxsde/xsde/cxx/parser/validating/language.cxx +++ b/libxsde/xsde/cxx/parser/validating/language.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -100,7 +101,13 @@ namespace xsde if (ok) str_.truncate (size); else + { _schema_error (schema_error::invalid_language_value); + return; + } + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); } char* language_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/name-stl.cxx b/libxsde/xsde/cxx/parser/validating/name-stl.cxx index 68d08b3..942b7cf 100644 --- a/libxsde/xsde/cxx/parser/validating/name-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/name-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -70,7 +71,13 @@ namespace xsde str_.resize (size); if (!ok) + { _schema_error (schema_error::invalid_name_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string name_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/name.cxx b/libxsde/xsde/cxx/parser/validating/name.cxx index 598c925..570a6cd 100644 --- a/libxsde/xsde/cxx/parser/validating/name.cxx +++ b/libxsde/xsde/cxx/parser/validating/name.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -91,7 +92,13 @@ 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:: diff --git a/libxsde/xsde/cxx/parser/validating/ncname-stl.cxx b/libxsde/xsde/cxx/parser/validating/ncname-stl.cxx index 577b8be..201f463 100644 --- a/libxsde/xsde/cxx/parser/validating/ncname-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/ncname-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -44,7 +45,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.resize (size); else + { _schema_error (schema_error::invalid_ncname_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string ncname_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/ncname.cxx b/libxsde/xsde/cxx/parser/validating/ncname.cxx index 8a7e10f..233ea56 100644 --- a/libxsde/xsde/cxx/parser/validating/ncname.cxx +++ b/libxsde/xsde/cxx/parser/validating/ncname.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -65,7 +66,13 @@ namespace xsde if (xml::valid_ncname (tmp.data (), size)) str_.truncate (size); else + { _schema_error (schema_error::invalid_ncname_value); + return; + } + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); } char* ncname_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/nmtoken-stl.cxx b/libxsde/xsde/cxx/parser/validating/nmtoken-stl.cxx index 9cce1f3..62e867b 100644 --- a/libxsde/xsde/cxx/parser/validating/nmtoken-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/nmtoken-stl.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -63,7 +64,13 @@ namespace xsde str_.resize (size); if (!ok) + { _schema_error (schema_error::invalid_nmtoken_value); + return; + } + + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); } std::string nmtoken_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/nmtoken.cxx b/libxsde/xsde/cxx/parser/validating/nmtoken.cxx index 7f724b1..cc19602 100644 --- a/libxsde/xsde/cxx/parser/validating/nmtoken.cxx +++ b/libxsde/xsde/cxx/parser/validating/nmtoken.cxx @@ -8,6 +8,7 @@ #include #include +#include namespace xsde { @@ -84,7 +85,13 @@ namespace xsde str_.truncate (size); if (!ok) + { _schema_error (schema_error::invalid_nmtoken_value); + return; + } + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); } char* nmtoken_pimpl:: diff --git a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx index b840dd5..f93ecf8 100644 --- a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -25,8 +26,8 @@ namespace xsde str_ += s; } - std::string normalized_string_pimpl:: - post_normalized_string () + void normalized_string_pimpl:: + _post () { std::string::size_type size = str_.size (); @@ -38,6 +39,13 @@ namespace xsde c = 0x20; } + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); + } + + std::string normalized_string_pimpl:: + post_normalized_string () + { std::string r; r.swap (str_); return r; diff --git a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.hxx b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.hxx index e210f3c..f4df418 100644 --- a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.hxx +++ b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual std::string post_normalized_string (); diff --git a/libxsde/xsde/cxx/parser/validating/normalized-string.cxx b/libxsde/xsde/cxx/parser/validating/normalized-string.cxx index 5b096de..4807846 100644 --- a/libxsde/xsde/cxx/parser/validating/normalized-string.cxx +++ b/libxsde/xsde/cxx/parser/validating/normalized-string.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -37,8 +38,8 @@ namespace xsde #endif } - char* normalized_string_pimpl:: - post_normalized_string () + void normalized_string_pimpl:: + _post () { typedef string::size_type size_type; @@ -52,6 +53,13 @@ namespace xsde c = 0x20; } + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); + } + + char* normalized_string_pimpl:: + post_normalized_string () + { return str_.detach (); } } diff --git a/libxsde/xsde/cxx/parser/validating/normalized-string.hxx b/libxsde/xsde/cxx/parser/validating/normalized-string.hxx index dff7094..9813586 100644 --- a/libxsde/xsde/cxx/parser/validating/normalized-string.hxx +++ b/libxsde/xsde/cxx/parser/validating/normalized-string.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual char* post_normalized_string (); diff --git a/libxsde/xsde/cxx/parser/validating/token-stl.cxx b/libxsde/xsde/cxx/parser/validating/token-stl.cxx index d73067f..5eafe39 100644 --- a/libxsde/xsde/cxx/parser/validating/token-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/token-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -33,8 +34,8 @@ namespace xsde str_ += s; } - std::string token_pimpl:: - post_token () + void token_pimpl:: + _post () { std::string::size_type size = str_.size (); std::string::size_type j = 0; @@ -63,6 +64,13 @@ namespace xsde str_.resize (j); + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); + } + + std::string token_pimpl:: + post_token () + { std::string r; r.swap (str_); return r; diff --git a/libxsde/xsde/cxx/parser/validating/token-stl.hxx b/libxsde/xsde/cxx/parser/validating/token-stl.hxx index b0fdb21..32ffb09 100644 --- a/libxsde/xsde/cxx/parser/validating/token-stl.hxx +++ b/libxsde/xsde/cxx/parser/validating/token-stl.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual std::string post_token (); diff --git a/libxsde/xsde/cxx/parser/validating/token.cxx b/libxsde/xsde/cxx/parser/validating/token.cxx index 4e4b955..338fa04 100644 --- a/libxsde/xsde/cxx/parser/validating/token.cxx +++ b/libxsde/xsde/cxx/parser/validating/token.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -54,8 +55,8 @@ namespace xsde } } - char* token_pimpl:: - post_token () + void token_pimpl:: + _post () { typedef string::size_type size_type; @@ -86,6 +87,13 @@ namespace xsde str_.truncate (j); + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); + } + + char* token_pimpl:: + post_token () + { return str_.detach (); } } diff --git a/libxsde/xsde/cxx/parser/validating/token.hxx b/libxsde/xsde/cxx/parser/validating/token.hxx index b35fd4f..b6121a3 100644 --- a/libxsde/xsde/cxx/parser/validating/token.hxx +++ b/libxsde/xsde/cxx/parser/validating/token.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual char* post_token (); diff --git a/libxsde/xsde/cxx/parser/validating/uri-stl.cxx b/libxsde/xsde/cxx/parser/validating/uri-stl.cxx index 99487a3..43538a9 100644 --- a/libxsde/xsde/cxx/parser/validating/uri-stl.cxx +++ b/libxsde/xsde/cxx/parser/validating/uri-stl.cxx @@ -4,6 +4,7 @@ // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include +#include namespace xsde { @@ -33,8 +34,8 @@ namespace xsde str_ += s; } - std::string uri_pimpl:: - post_uri () + void uri_pimpl:: + _post () { // According to Datatypes 3.2.17 and RFC2396 pretty much anything // can be a URI and conforming processors do not need to figure @@ -43,6 +44,13 @@ namespace xsde ro_string tmp (str_); str_.resize (trim_right (tmp)); + string_common::validate_facets ( + str_.c_str (), str_.size (), _facets (), _context ()); + } + + std::string uri_pimpl:: + post_uri () + { std::string r; r.swap (str_); return r; diff --git a/libxsde/xsde/cxx/parser/validating/uri-stl.hxx b/libxsde/xsde/cxx/parser/validating/uri-stl.hxx index 3f6ffcb..16a05ba 100644 --- a/libxsde/xsde/cxx/parser/validating/uri-stl.hxx +++ b/libxsde/xsde/cxx/parser/validating/uri-stl.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual std::string post_uri (); diff --git a/libxsde/xsde/cxx/parser/validating/uri.cxx b/libxsde/xsde/cxx/parser/validating/uri.cxx index d649d12..90f55f2 100644 --- a/libxsde/xsde/cxx/parser/validating/uri.cxx +++ b/libxsde/xsde/cxx/parser/validating/uri.cxx @@ -6,6 +6,7 @@ #include #include +#include namespace xsde { @@ -54,8 +55,8 @@ namespace xsde } } - char* uri_pimpl:: - post_uri () + void uri_pimpl:: + _post () { // According to Datatypes 3.2.17 and RFC2396 pretty much anything // can be a URI and conforming processors do not need to figure @@ -63,6 +64,14 @@ namespace xsde // ro_string tmp (str_); str_.truncate (trim_right (tmp)); + + string_common::validate_facets ( + str_.data (), str_.size (), _facets (), _context ()); + } + + char* uri_pimpl:: + post_uri () + { return str_.detach (); } } diff --git a/libxsde/xsde/cxx/parser/validating/uri.hxx b/libxsde/xsde/cxx/parser/validating/uri.hxx index b5055ad..463875d 100644 --- a/libxsde/xsde/cxx/parser/validating/uri.hxx +++ b/libxsde/xsde/cxx/parser/validating/uri.hxx @@ -30,6 +30,9 @@ namespace xsde virtual void _characters (const ro_string&); + virtual void + _post (); + virtual char* post_uri (); diff --git a/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.hxx b/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.hxx index ed0ff4f..a978c6d 100644 --- a/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.hxx +++ b/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.hxx @@ -717,13 +717,12 @@ namespace xsde protected: string_pskel* string_impl_; #endif - // Facets. - // - const facets& + protected: + const string_facets::facets& _facets () const; }; - struct normalized_string_pskel: simple_content + struct normalized_string_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -747,9 +746,12 @@ namespace xsde protected: normalized_string_pskel* normalized_string_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct token_pskel: simple_content + struct token_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -773,9 +775,12 @@ namespace xsde protected: token_pskel* token_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct name_pskel: simple_content + struct name_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -799,9 +804,12 @@ namespace xsde protected: name_pskel* name_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct nmtoken_pskel: simple_content + struct nmtoken_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -825,6 +833,9 @@ namespace xsde protected: nmtoken_pskel* nmtoken_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; struct nmtokens_pskel: list_base @@ -849,7 +860,7 @@ namespace xsde #endif }; - struct ncname_pskel: simple_content + struct ncname_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -873,9 +884,12 @@ namespace xsde protected: ncname_pskel* ncname_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct id_pskel: simple_content + struct id_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -899,9 +913,12 @@ namespace xsde protected: id_pskel* id_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct idref_pskel: simple_content + struct idref_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -925,6 +942,9 @@ namespace xsde protected: idref_pskel* idref_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; struct idrefs_pskel: list_base @@ -949,7 +969,7 @@ namespace xsde #endif }; - struct language_pskel: simple_content + struct language_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -973,9 +993,12 @@ namespace xsde protected: language_pskel* language_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; - struct uri_pskel: simple_content + struct uri_pskel: simple_content, string_facets { #ifdef XSDE_STL virtual std::string @@ -999,6 +1022,9 @@ namespace xsde protected: uri_pskel* uri_impl_; #endif + protected: + const string_facets::facets& + _facets () const; }; struct qname_pskel: simple_content diff --git a/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.ixx b/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.ixx index c08fb09..61a862e 100644 --- a/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.ixx +++ b/libxsde/xsde/cxx/parser/validating/xml-schema-pskel.ixx @@ -503,7 +503,7 @@ namespace xsde } #endif - inline const string_pskel::facets& string_pskel:: + inline const string_facets::facets& string_pskel:: _facets () const { #ifdef XSDE_REUSE_STYLE_TIEIN @@ -530,6 +530,18 @@ namespace xsde } #endif + inline const string_facets::facets& normalized_string_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast ( + *parent_).facets_; + else +#endif + return facets_; + } + // token_pskel // #ifdef XSDE_REUSE_STYLE_TIEIN @@ -545,6 +557,16 @@ namespace xsde { } #endif + inline const string_facets::facets& token_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // name_pskel // @@ -561,6 +583,16 @@ namespace xsde { } #endif + inline const string_facets::facets& name_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // nmtoken_pskel // @@ -577,6 +609,16 @@ namespace xsde { } #endif + inline const string_facets::facets& nmtoken_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // nmtokens_pskel // @@ -609,6 +651,16 @@ namespace xsde { } #endif + inline const string_facets::facets& ncname_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // id_pskel // @@ -625,6 +677,16 @@ namespace xsde { } #endif + inline const string_facets::facets& id_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // idref_pskel // @@ -641,6 +703,16 @@ namespace xsde { } #endif + inline const string_facets::facets& idref_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // idrefs_pskel // @@ -673,6 +745,16 @@ namespace xsde { } #endif + inline const string_facets::facets& language_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // uri_pskel // @@ -689,6 +771,16 @@ namespace xsde { } #endif + inline const string_facets::facets& uri_pskel:: + _facets () const + { +#ifdef XSDE_REUSE_STYLE_TIEIN + if (parent_ != 0) + return static_cast (*parent_).facets_; + else +#endif + return facets_; + } // qname_pskel // -- cgit v1.1