aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx')
-rw-r--r--libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx67
1 files changed, 39 insertions, 28 deletions
diff --git a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx
index 940f256..c206e78 100644
--- a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx
+++ b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.hxx
@@ -636,9 +636,46 @@ namespace xsde
#endif
};
+ //
// String-based types.
//
- struct string_sskel: simple_content
+
+ struct string_facets
+ {
+ string_facets ();
+
+ void
+ _length_facet (size_t);
+
+ void
+ _max_length_facet (size_t);
+
+ void
+ _min_length_facet (size_t);
+
+ void
+ _enumeration_facet (const char* const*, size_t count);
+
+ public:
+ struct facets
+ {
+ size_t length_;
+ size_t min_length_;
+ size_t max_length_;
+
+ const char* const* enum_;
+ size_t enum_count_;
+
+ unsigned int length_set_ : 1;
+ unsigned int min_length_set_ : 1;
+ unsigned int max_length_set_ : 1;
+ };
+
+ protected:
+ facets facets_;
+ };
+
+ struct string_sskel: simple_content, string_facets
{
virtual void
#ifdef XSDE_STL
@@ -655,9 +692,8 @@ namespace xsde
_dynamic_type () const;
#endif
- string_sskel ();
-
#ifdef XSDE_REUSE_STYLE_TIEIN
+ string_sskel ();
string_sskel (string_sskel* impl, void*);
protected:
@@ -665,33 +701,8 @@ namespace xsde
#endif
// Facets.
//
- public:
- void
- _length_facet (size_t);
-
- void
- _max_length_facet (size_t);
-
- void
- _min_length_facet (size_t);
-
- protected:
- struct facets
- {
- size_t length_;
- size_t min_length_;
- size_t max_length_;
-
- unsigned int length_set_ : 1;
- unsigned int min_length_set_ : 1;
- unsigned int max_length_set_ : 1;
- };
-
const facets&
_facets () const;
-
- private:
- facets facets_;
};
#ifdef XSDE_REUSE_STYLE_MIXIN