8#include "Arp/System/Commons/Logging.h"
9#include "Arp/System/Commons/Diagnostics/Logging/Loggable.hxx"
10#include "Arp/System/Commons/Exceptions/KeyNotFoundException.hpp"
11#include "Arp/System/Commons/Configuration/PlaceholderExpression.hpp"
13namespace Arp {
namespace System {
namespace Commons {
namespace Xml
31 typedef std::map<String, String> Attributes;
47 static const char* IncludeXmlName;
48 static const char* IncludesXmlName;
80 Attributes additionalAttributes;
84 static const char* traitsXmlName;
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This class provides versioning.
Definition: Version.hpp:19
Definition: PlaceholderExpression.hpp:17
Derive from this class to inherit logging functionality.
Definition: Loggable.hxx:28
This class collects several document traits.
Definition: DocumentTraits.hpp:20
special version of XmlConfigDocument to include xml configuration data from other xml files inside a ...
Definition: MultiXmlConfigDocument.hpp:27
Class handle xml configuration documents
Definition: XmlConfigDocument.hpp:22
Class to read an XML File. Non buffered reader, can only read forward
Definition: XmlReader.hpp:25
XML context used during XML reading and writing to hold the context information
Definition: XmlSerializationContext.hpp:27
String & operator[](const String &attributeName)
operator [] to get and set attributes referenced by attributeName
Definition: XmlSerializationContext.cpp:258
XmlSerializationContext(XmlConfigDocument &document, Version docSchemaVersion=Version(1, 0))
Constructs an XmlContext instance.
Definition: XmlSerializationContext.cpp:27
void MissingXmlElementOccurs(XmlReader &reader, const char *xmlElementName)
this operation should be called while xml serialisation when ever an xml element is missing
Definition: XmlSerializationContext.cpp:69
String GetAttributeValue(const String &attributeName)
Returns an attribute value
Definition: XmlSerializationContext.cpp:227
XmlSerializationContext & operator=(XmlSerializationContext &arg)=default
Assignment operator.
String ResolveRelativePath(const String &path)
resolves a relative path into an absolute relative to the document path
Definition: XmlSerializationContext.cpp:151
~XmlSerializationContext(void)=default
Destructs this instance and frees all resouces.
const DocumentTraits & GetDocumentTraits(void) const
Returns the traits of the current document
Definition: XmlSerializationContext.cpp:238
XmlConfigDocument & GetDocument(void)
return the XmlConfigDocument this context was created for
Definition: XmlSerializationContext.cpp:252
void AddAttribute(const String &attributeName, const String &value)
Adds an attribute to the context
Definition: XmlSerializationContext.cpp:208
void WriteDocumentContext(XmlWriter &writer) const
writes the document context i.e. schema version with the XMlWriter
Definition: XmlSerializationContext.cpp:44
String ResolvePlaceholder(const char *input)
resolves a string with a placeholder (Enviroment variables)
Definition: XmlSerializationContext.cpp:276
XmlSerializationContext(XmlSerializationContext &arg)=default
Copy contructor.
String ResolvePath(const char *documentPath)
resolves a relative path into an absolute relative to the document path and replaces all placeholders
Definition: XmlSerializationContext.cpp:140
void ReadDocumentContext(XmlReader &reader)
reads the document context i.e. schema version from the XMlReader
Definition: XmlSerializationContext.cpp:35
bool HasAttribute(const String &attributeName)
Checks if an attribute exists
Definition: XmlSerializationContext.cpp:214
void InvalidXmlElementOccurs(XmlReader &reader, const char *xmlElementName)
this operation should be called while xml serialisation when an unknown xml element is recognized
Definition: XmlSerializationContext.cpp:56
bool HasAttributeValue(const String &attributeName, const String &expectedValue)
Compares an attribute value
Definition: XmlSerializationContext.cpp:221
Version GetDocumentSchemaVersion(void) const
returns the document schema version stored in this context
Definition: XmlSerializationContext.cpp:246
void ReadIncludesElement(XmlReader &reader)
Reads the include xml tags inside a configuration file to include further xml files
Definition: XmlSerializationContext.cpp:75
DocumentTraits DetermineDocumentTraits(XmlReader &reader) const
Determine document traits by checking if traits are already set.
Definition: XmlSerializationContext.cpp:97
void AddIncludeFile(const String &pathArg, const DocumentTraits &traits)
Adds a xml file to the list of included files
Definition: XmlSerializationContext.cpp:118
Class to write an XML File
Definition: XmlWriter.hpp:19
Namespace for configuration related classes
Root namespace for the PLCnext API