+// XML parsers for diameter messages ///////////////////////////////////////////////////////////////////////////
+void anna::diameter::codec::functions::messageXmlDocumentFromXmlFile(anna::xml::DocumentFile &xmlDocument, const std::string & xmlPathFile) throw(anna::RuntimeException) {
+ LOGDEBUG(anna::Logger::debug(anna::functions::asString("Parsing diameter message from xml file '%s' into xml document", xmlPathFile.c_str()), ANNA_FILE_LOCATION));
+ xmlDocument.initialize(xmlPathFile.c_str()); // fail here is i/o error
+ const anna::xml::Node *rootNode = xmlDocument.parse(MessageDTDMemory); // Parsing: fail here if xml violates dtd
+ LOGDEBUG(
+ std::string trace = "Parsing OK from XML file '";
+ trace += xmlPathFile;
+ trace += "':\n";
+ trace += anna::xml::Compiler().apply(rootNode);
+ anna::Logger::debug(trace, ANNA_FILE_LOCATION);
+ );
+}