diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
commit | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (patch) | |
tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /xsd/examples/cxx/tree/mixed/driver.cxx | |
parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
parent | aad5ad9bf0c02aa4e79bc6b7d6c934612fff4026 (diff) |
Update upstream source from tag 'upstream/4.2.0'
Update to upstream version '4.2.0'
with Debian dir 1b38df7bbcf313223de3c50107ac0255090fe647
Diffstat (limited to 'xsd/examples/cxx/tree/mixed/driver.cxx')
-rw-r--r-- | xsd/examples/cxx/tree/mixed/driver.cxx | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/xsd/examples/cxx/tree/mixed/driver.cxx b/xsd/examples/cxx/tree/mixed/driver.cxx deleted file mode 100644 index 17c3b55..0000000 --- a/xsd/examples/cxx/tree/mixed/driver.cxx +++ /dev/null @@ -1,122 +0,0 @@ -// file : examples/cxx/tree/mixed/driver.cxx -// copyright : not copyrighted - public domain - -#include <memory> // std::auto_ptr -#include <iostream> - -#include <xercesc/dom/DOM.hpp> - -#include "text.hxx" - -// The following transcode() utility function is handy when working with -// Xerces. Include it after the generated header in order to get only char -// or wchar_t version depending on how you compiled your schemas. -// -#include <xsd/cxx/xml/string.hxx> - -using std::cout; -using std::cerr; -using std::endl; -using std::auto_ptr; - -int -main (int argc, char* argv[]) -{ - if (argc != 2) - { - cerr << "usage: " << argv[0] << " text.xml" << endl; - return 1; - } - - using namespace xercesc; - - int r (0); - - // The Xerces-C++ DOM objects that will be associated with the - // document tree "out-live" the call to the parsing function. - // Therefore we need to initialize the Xerces-C++ runtime - // ourselves. - // - XMLPlatformUtils::Initialize (); - - try - { - auto_ptr<text> t ( - text_ (argv[1], - xml_schema::flags::keep_dom | - xml_schema::flags::dont_initialize)); - - // The DOM association can be recreated in a copy (the underlying - // DOM document is cloned) if explicitly requested with the keep_dom - // flag and only if this copy is "complete", i.e., made from the root - // of the tree. - // - text copy (*t, xml_schema::flags::keep_dom); - - // Print text. - // - { - namespace xml = xsd::cxx::xml; - - unsigned long ref (0); - DOMNode* root (copy._node ()); - - for (DOMNode* n (root->getFirstChild ()); - n != 0; - n = n->getNextSibling ()) - { - switch (n->getNodeType ()) - { - case DOMNode::TEXT_NODE: - { - cout << xml::transcode<char> (n->getTextContent ()); - break; - } - case DOMNode::ELEMENT_NODE: - { - // Let's get back to a tree node from this DOM node. - // - xml_schema::type& t ( - *reinterpret_cast<xml_schema::type*> ( - n->getUserData (xml_schema::dom::tree_node_key))); - - anchor& a (dynamic_cast<anchor&> (t)); - - cout << a << "[" << ref << "]"; - - // Or we could continue using DOM interface: - // - //cout << xml::transcode<char> (n->getTextContent ()) - // << "[" << ref << "]"; - - ++ref; - break; - } - default: - break; // Ignore all other nodes (e.g., comments, etc). - } - } - } - - // Print references. - // - { - unsigned long r (0); - - for (text::a_const_iterator i (copy.a ().begin ()); - i != copy.a ().end (); - ++i, ++r) - { - cout << "[" << r << "] " << i->href () << endl; - } - } - } - catch (const xml_schema::exception& e) - { - cerr << e << endl; - r = 1; - } - - XMLPlatformUtils::Terminate (); - return r; -} |