summaryrefslogtreecommitdiff
path: root/CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp')
-rw-r--r--CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp240
1 files changed, 0 insertions, 240 deletions
diff --git a/CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp b/CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp
deleted file mode 100644
index fc9fd07f809..00000000000
--- a/CIAO/tools/Config_Handlers/Utils/XML_Helper.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-//$Id$
-#include "XML_Helper.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/Log_Msg.h"
-#include "xercesc/util/XMLUniDefs.hpp"
-#include "xercesc/dom/DOM.hpp"
-#include "XML_Error_Handler.h"
-#include "XML_Schema_Resolver.h"
-#include "xercesc/framework/LocalFileFormatTarget.hpp"
-#include "XercesString.h"
-
-namespace CIAO
-{
- namespace Config_Handlers
- {
- using xercesc::XMLException;
- using xercesc::XMLString;
- using xercesc::DOMImplementation;
- using xercesc::DOMImplementationRegistry;
- using xercesc::DOMBuilder;
- using xercesc::DOMImplementationLS;
- using xercesc::XMLUni;
- using xercesc::DOMDocument;
- using xercesc::DOMException;
-
- XML_Helper::XML_Helper (void)
- : initialized_ (false)
- {
- this->init_parser ();
- }
-
- XML_Helper::~XML_Helper (void)
- {
- this->terminate_parser ();
- }
-
- bool
- XML_Helper::is_initialized (void) const
- {
- return this->initialized_ == true;
- }
-
- void
- XML_Helper::init_parser (void)
- {
- if (this->initialized_)
- return;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Initializing the Xerces runtime \n"));
- // Initialize the Xerces run-time
- try
- {
- xercesc::XMLPlatformUtils::Initialize();
- }
- catch (const XMLException& e)
- {
- char* message =
- XMLString::transcode (e.getMessage());
- ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
-
- throw;
- }
- catch (...)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Some other exception,"
- " returning\n"));
-
- return;
- }
-
- // Instantiate the DOM parser.
- static const XMLCh gLS[] = { xercesc::chLatin_L,
- xercesc::chLatin_S,
- xercesc::chNull };
-
- // Get an implementation of the Load-Store (LS) interface
- // and cache it for later use
- impl_ =
- DOMImplementationRegistry::getDOMImplementation(gLS);
-
- this->initialized_ = true;
- return;
- }
-
- XERCES_CPP_NAMESPACE::DOMDocument *
- XML_Helper::create_dom (const ACE_TCHAR *root,
- const ACE_TCHAR *ns)
- {
- if (root == 0 || ns == 0)
- return 0;
-
- return this->impl_->createDocument (XStr (ns),
- XStr (root),
- 0);
- }
-
- XERCES_CPP_NAMESPACE::DOMDocument *
- XML_Helper::create_dom (const ACE_TCHAR *url)
- {
-
- if (url == 0)
- return impl_->createDocument(
- XStr ("http://www.omg.org/DeploymentPlan"),
- XStr ("deploymentPlan"),
- 0);
-
- try
- {
-
- // Create a DOMBuilder
- DOMBuilder* parser =
- impl_->createDOMBuilder (DOMImplementationLS::MODE_SYNCHRONOUS,
- 0);
-
- // Discard comment nodes in the document
- parser->setFeature (XMLUni::fgDOMComments, false);
-
- // Disable datatype normalization. The XML 1.0 attribute value
- // normalization always occurs though.
- parser->setFeature (XMLUni::fgDOMDatatypeNormalization, true);
-
- // Do not create EntityReference nodes in the DOM tree. No
- // EntityReference nodes will be created, only the nodes
- // corresponding to their fully expanded sustitution text will be
- // created.
- parser->setFeature (XMLUni::fgDOMEntities, false);
-
- // Perform Namespace processing.
- parser->setFeature (XMLUni::fgDOMNamespaces, true);
-
- // Perform Validation
- parser->setFeature (XMLUni::fgDOMValidation, true);
-
- // Do not include ignorable whitespace in the DOM tree.
- parser->setFeature (XMLUni::fgDOMWhitespaceInElementContent, false);
-
- // Enable the parser's schema support.
- parser->setFeature (XMLUni::fgXercesSchema, true);
-
- // Enable full schema constraint checking, including checking which
- // may be time-consuming or memory intensive. Currently, particle
- // unique attribution constraint checking and particle derivation
- // restriction checking are controlled by this option.
- parser->setFeature (XMLUni::fgXercesSchemaFullChecking, true);
-
- // The parser will treat validation error as fatal and will exit.
- parser->setFeature (XMLUni::fgXercesValidationErrorAsFatal, true);
-
- XML_Error_Handler handler;
-
- parser->setErrorHandler (&handler);
-
- CIAO_Schema_Resolver resolver;
-
- parser->setEntityResolver (&resolver);
-
- DOMDocument* doc = parser->parseURI (url);
-
- if (handler.getErrors ())
- throw 0;
-
- return doc;
- }
- catch (const DOMException& e)
- {
- const unsigned int maxChars = 2047;
- XMLCh errText[maxChars + 1];
-
- if (DOMImplementation::loadDOMExceptionMsg (e.code,
- errText,
- maxChars))
- {
- char* message =
- XMLString::transcode (errText);
- ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
- }
- return 0;
-
- }
- catch (const XMLException& e)
- {
- char* message = XMLString::transcode (e.getMessage());
- ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
- throw 0;
- }
- catch (...)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Caught an unknown exception \n"));
- throw 0;
- }
-
- return 0;
- }
-
- void
- XML_Helper::terminate_parser (void)
- {
- try
- {
- xercesc::XMLPlatformUtils::Terminate();
- }
- catch (const XMLException& e)
- {
- char* message =
- XMLString::transcode (e.getMessage());
- ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
- throw;
- }
-
- this->initialized_ = false;
- return;
- }
-
- bool XML_Helper::write_DOM (XERCES_CPP_NAMESPACE::DOMDocument *doc,
- const ACE_TCHAR *file)
- {
- bool retn;
- XERCES_CPP_NAMESPACE::DOMWriter *writer = impl_->createDOMWriter();
-
- if (writer->canSetFeature (XMLUni::fgDOMWRTFormatPrettyPrint,
- true))
- writer->setFeature (XMLUni::fgDOMWRTFormatPrettyPrint, true);
-
- xercesc::XMLFormatTarget* ft (new xercesc::LocalFileFormatTarget(file));
- retn = writer->writeNode(ft, *doc);
- delete writer;
- delete ft;
- return retn;
- }
- }
-}
-#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton< CIAO::Config_Handlers::XML_Helper, ACE_Null_Mutex> *
-ACE_Singleton<CIAO::Config_Handlers::XML_Helper, ACE_Null_Mutex>::singleton_;
-#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
-
-