// file : XMLSchema/Traversal.hpp // author : Boris Kolpackov #ifndef XMLSCHEMA_TRAVERSAL_HPP #define XMLSCHEMA_TRAVERSAL_HPP #include #include namespace XMLSchema { namespace Traversal { // Automatic traversal of IDREFs. // // struct IDREF : XSCRT::Traversal::Traverser { virtual void traverse (XMLSchema::IDREF_Base& r) { if (r.get ()) dispatch (*(r.get ())); } virtual void traverse (XMLSchema::IDREF_Base const& r) { if (r.get ()) dispatch (*(r.get ())); } }; template struct Traverser : XSCRT::Traversal::Traverser { }; typedef Traverser byte; typedef Traverser unsignedByte; typedef Traverser short_; typedef Traverser unsignedShort; typedef Traverser int_; typedef Traverser unsignedInt; typedef Traverser long_; typedef Traverser unsignedLong; typedef Traverser boolean; typedef Traverser float_; typedef Traverser double_; template struct string : Traverser > { }; template struct ID : Traverser > { }; template struct anyURI : Traverser > { }; } } #include #endif // XMLSCHEMA_TRAVERSAL_HPP