summaryrefslogtreecommitdiff
path: root/src/cppunit/XmlDocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cppunit/XmlDocument.cpp')
-rw-r--r--src/cppunit/XmlDocument.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/cppunit/XmlDocument.cpp b/src/cppunit/XmlDocument.cpp
new file mode 100644
index 0000000..b0bebab
--- /dev/null
+++ b/src/cppunit/XmlDocument.cpp
@@ -0,0 +1,89 @@
+#include <cppunit/tools/XmlDocument.h>
+#include <cppunit/tools/XmlElement.h>
+
+
+namespace CppUnit
+{
+
+
+
+
+XmlDocument::XmlDocument( const std::string &encoding,
+ const std::string &styleSheet )
+ : m_rootElement( new XmlElement( "DummyRoot" ) )
+ , m_styleSheet( styleSheet )
+{
+ setEncoding( encoding );
+}
+
+
+XmlDocument::~XmlDocument()
+{
+ delete m_rootElement;
+}
+
+
+
+std::string
+XmlDocument::encoding() const
+{
+ return m_encoding;
+}
+
+
+void
+XmlDocument::setEncoding( const std::string &encoding )
+{
+ m_encoding = encoding.empty() ? "ISO-8859-1" : encoding;
+}
+
+
+std::string
+XmlDocument::styleSheet() const
+{
+ return m_styleSheet;
+}
+
+
+void
+XmlDocument::setStyleSheet( const std::string &styleSheet )
+{
+ m_styleSheet = styleSheet;
+}
+
+
+void
+XmlDocument::setRootElement( XmlElement *rootElement )
+{
+ if ( rootElement == m_rootElement )
+ return;
+
+ delete m_rootElement;
+ m_rootElement = rootElement;
+}
+
+
+XmlElement &
+XmlDocument::rootElement() const
+{
+ return *m_rootElement;
+}
+
+
+std::string
+XmlDocument::toString() const
+{
+ std::string asString = "<?xml version=\"1.0\" "
+ "encoding='" + m_encoding + "' standalone='yes' ?>\n";
+
+ if ( !m_styleSheet.empty() )
+ asString += "<?xml-stylesheet type=\"text/xsl\" href=\"" + m_styleSheet + "\"?>\n";
+
+ asString += m_rootElement->toString();
+
+ return asString;
+}
+
+
+} // namespace CppUnit
+