summaryrefslogtreecommitdiff
path: root/TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp')
-rw-r--r--TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp61
1 files changed, 57 insertions, 4 deletions
diff --git a/TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp b/TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp
index 04532665d51..d647b630a33 100644
--- a/TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp
+++ b/TAO/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp
@@ -12,6 +12,8 @@
#include <XMLSchema/Types.hpp>
#include <XMLSchema/Traversal.hpp>
+#include <iostream>
+
namespace XMLSchema
{
namespace Writer
@@ -26,8 +28,8 @@ namespace XMLSchema
}
using XSCRT::Writer<C>::top_;
- using XSCRT::Writer<C>::attr_;
-
+ using XSCRT::Writer<C>::attr_;
+
virtual void
traverse (T const& o)
{
@@ -59,6 +61,57 @@ namespace XMLSchema
}
};
+ template<typename C>
+ struct FundamentalType <XSCRT::FundamentalType<bool>, C> :
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >,
+ virtual XSCRT::Writer<C>
+ {
+ FundamentalType (XSCRT::XML::Element<C> &e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ using XSCRT::Writer<C>::top_;
+ using XSCRT::Writer<C>::attr_;
+
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> const &o)
+ {
+ using namespace XSCRT::XML;
+
+ std::basic_ostringstream<C> os;
+
+ if (o)
+ {
+ os << "true";
+ }
+ else
+ {
+ os << "false";
+ }
+
+ if (Attribute<C>* a = attr_ ())
+ {
+ a->value (os.str ());
+ }
+ else
+ {
+ top_().value (os.str ());
+ }
+ }
+
+ protected:
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> &t)
+ {
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >::traverse (t);
+ }
+
+ FundamentalType ()
+ {
+ }
+ };
+
template <typename C>
struct IDREF : Traversal::Traverser<XMLSchema::IDREF<C> >,
@@ -89,13 +142,13 @@ namespace XMLSchema
}
protected:
-
+
virtual void
traverse (typename Traversal::Traverser<XMLSchema::IDREF<C> >::Type &o)
{
Traversal::Traverser<XMLSchema::IDREF<C> >::traverse (o);
}
-
+
IDREF ()
{
}