From 878865b0c53196bc7b21edda423b83b4f14a88d5 Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Tue, 17 Feb 2015 15:11:03 +0100 Subject: added namespace handling to XML --- src/core/XML.cpp | 14 +++++++++++--- src/core/XML.hpp | 25 ++++++++++++++----------- 2 files changed, 25 insertions(+), 14 deletions(-) (limited to 'src/core') diff --git a/src/core/XML.cpp b/src/core/XML.cpp index 0aedbd9..e25d18a 100644 --- a/src/core/XML.cpp +++ b/src/core/XML.cpp @@ -71,7 +71,11 @@ void Element::doSerialize(std::ostream &out, unsigned int tabdepth, bool pretty) out << '\t'; } } - out << '<' << name; + out << '<'; + if(!nspace.empty()){ + out << nspace << ":"; + } + out << name; for (auto &a : attributes) { out << ' ' << a.first << "=\"" << escapePredefinedEntities(a.second) << '\"'; @@ -95,7 +99,11 @@ void Element::doSerialize(std::ostream &out, unsigned int tabdepth, bool pretty) out << '\t'; } } - out << ""; + out << ""; if (pretty) { out << std::endl; } @@ -125,7 +133,7 @@ namespace RttiTypes .composedOf(&XMLNode) .property("name", {&RttiTypes::String, {[](const xml::Element *obj) { - return Variant::fromString(obj->name); + return Variant::fromString(obj->getName()); }}}); const Rtti XMLText = RttiBuilder("XMLText").parent(&XMLNode); } diff --git a/src/core/XML.hpp b/src/core/XML.hpp index a1021d3..02b0d89 100644 --- a/src/core/XML.hpp +++ b/src/core/XML.hpp @@ -113,22 +113,19 @@ public: class Element : public Node { private: ManagedVector children; - -public: - const std::string name; std::map attributes; + const std::string nspace; + const std::string name; - Element(Manager &mgr, Handle parent, std::string name) - : Node(mgr, parent), children(this), name(std::move(name)) - { - } - +public: Element(Manager &mgr, Handle parent, std::string name, - std::map attributes) + std::map attributes = {}, + std::string nspace = "") : Node(mgr, parent), children(this), - name(std::move(name)), - attributes(std::move(attributes)) + attributes(std::move(attributes)), + nspace(std::move(nspace)), + name(std::move(name)) { } @@ -151,10 +148,16 @@ public: children.insert(children.end(), c.begin(), c.end()); } + const std::string &getNamespace() const { return nspace; } + + const std::string &getName() const { return name; } + const std::map &getAttributes() const { return attributes; } + + std::map &getAttributes() { return attributes; } }; class Text : public Node { -- cgit v1.2.3 From 53544766f96b16f683bf5618b7c0857b227d7da4 Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Tue, 17 Feb 2015 15:11:11 +0100 Subject: added typesystems getter. --- src/core/model/Document.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/model/Document.hpp b/src/core/model/Document.hpp index 6903bb3..a5e40ce 100644 --- a/src/core/model/Document.hpp +++ b/src/core/model/Document.hpp @@ -1013,6 +1013,13 @@ public: domains.insert(domains.end(), d.begin(), d.end()); } + /** + * Returns a const reference to the NodeVector of referenced Typesystems. + * + * @return a const reference to the NodeVector of referenced Typesystems. + */ + const NodeVector getTypesystems() const { return typesystems; } + /** * Adds a Typesystem reference to this Document. */ @@ -1031,7 +1038,6 @@ public: typesystems.insert(typesystems.end(), d.begin(), d.end()); } - /** * Returns true if and only if the given StructureNode is part of this * document, meaning that there is a path of parent references in the @@ -1055,4 +1061,4 @@ extern const Rtti Anchor; } } -#endif /* _OUSIA_MODEL_DOCUMENT_HPP_ */ +#endif /* _OUSIA_MODEL_DOCUMENT_HPP_ */ \ No newline at end of file -- cgit v1.2.3