aGrUM 3.2.0
a C++ library for (probabilistic) graphical models
XmlDocument.h File Reference

Opaque facade over the vendored ticpp/tinyxml XML parser. More...

#include <exception>
#include <memory>
#include <string>
#include <vector>
#include <agrum/config.h>
Include dependency graph for XmlDocument.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  gum::XmlException
 Thrown by XmlDocument/XmlElement on any ticpp/tinyxml parse or access error. More...
class  gum::XmlElement
 A non-owning handle to an XML element, opaque over ticpp::Element. More...
class  gum::XmlDocument
 An XML document, opaque over ticpp::Document. More...

Namespaces

namespace  gum
 gum is the global namespace for all aGrUM entities

Detailed Description

Opaque facade over the vendored ticpp/tinyxml XML parser.

BIFXMLBNReader and XDSLBNReader are the only consumers of ticpp/tinyxml (base/external/tinyxml). That vendored code must never be edited to add export attributes (same rule as base/external/lrslib): it stays compiled only into agrumBN, and its types (ticpp::Document, ticpp::Element, ...) never appear in any aGrUM-owned header – this facade holds them behind an opaque handle (XmlElement) / a PIMPL (XmlDocument), so no other TU ever needs to see or link against ticpp directly. Under BUILD_SHARED_LIBS=ON, only this facade is GUM_PUBLIC_BN-tagged and exported from agrumBN; core and every other consumer link against it normally, exactly like any other BN-owned symbol.

Author
Pierre-Henri WUILLEMIN(_at_LIP6)

Definition in file XmlDocument.h.