summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libxsd/xsd/cxx/tree/elements.hxx13
-rw-r--r--libxsd/xsd/cxx/tree/elements.ixx29
-rw-r--r--xsd/cxx/tree/default-value.cxx3
3 files changed, 41 insertions, 4 deletions
diff --git a/libxsd/xsd/cxx/tree/elements.hxx b/libxsd/xsd/cxx/tree/elements.hxx
index 7489872..403fdb3 100644
--- a/libxsd/xsd/cxx/tree/elements.hxx
+++ b/libxsd/xsd/cxx/tree/elements.hxx
@@ -982,9 +982,15 @@ namespace xsd
/**
* @brief Default constructor.
*/
- simple_type ()
- {
- }
+ simple_type ();
+
+ /**
+ * @brief Create an instance from a string.
+ *
+ * @param s A string to initialize the instance with.
+ */
+ template <typename C>
+ simple_type (const C* s);
public:
/**
@@ -1478,6 +1484,7 @@ namespace xsd
}
}
+#include <xsd/cxx/tree/elements.ixx>
#include <xsd/cxx/tree/elements.txx>
#endif // XSD_CXX_TREE_ELEMENTS_HXX
diff --git a/libxsd/xsd/cxx/tree/elements.ixx b/libxsd/xsd/cxx/tree/elements.ixx
new file mode 100644
index 0000000..e4dd60a
--- /dev/null
+++ b/libxsd/xsd/cxx/tree/elements.ixx
@@ -0,0 +1,29 @@
+// file : xsd/cxx/tree/elements.ixx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+namespace xsd
+{
+ namespace cxx
+ {
+ namespace tree
+ {
+ // simple_type
+ //
+
+ template <typename B>
+ inline simple_type<B>::
+ simple_type ()
+ {
+ }
+
+ template <typename B>
+ template <typename C>
+ inline simple_type<B>::
+ simple_type (const C*)
+ {
+ }
+ }
+ }
+}
diff --git a/xsd/cxx/tree/default-value.cxx b/xsd/cxx/tree/default-value.cxx
index 35c5e49..ff964d3 100644
--- a/xsd/cxx/tree/default-value.cxx
+++ b/xsd/cxx/tree/default-value.cxx
@@ -463,8 +463,9 @@ namespace CXX
// anySimpleType.
//
Void InitValue::
- traverse (SemanticGraph::AnySimpleType&)
+ traverse (SemanticGraph::AnySimpleType& t)
{
+ os << fq_name (t) << " (" << strlit (value_) << ")";
}
// Strings.