From 3f5b1bd8b6aa14a57f4d4dde11e1998bf8735842 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 1 Dec 2016 15:43:38 +0100 Subject: Include asciistream in implementation only. --- .../src/vespa/vespalib/util/xmlserializable.cpp | 15 +++++++++++++++ .../src/vespa/vespalib/util/xmlserializable.h | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'staging_vespalib') diff --git a/staging_vespalib/src/vespa/vespalib/util/xmlserializable.cpp b/staging_vespalib/src/vespa/vespalib/util/xmlserializable.cpp index bced837e3a1..17c5a2e4a68 100644 --- a/staging_vespalib/src/vespa/vespalib/util/xmlserializable.cpp +++ b/staging_vespalib/src/vespa/vespalib/util/xmlserializable.cpp @@ -374,6 +374,21 @@ XmlAttribute::XmlAttribute(const XmlAttribute& attribute) { } +XmlAttribute::XmlAttribute(const std::string& name, const char * value, uint32_t flags) + : _name(name), + _value(), + _next() +{ + std::ostringstream ost; + if (flags & HEX) ost << std::hex << "0x"; + ost << value; + _value = ost.str(); + if (!isLegalName(name)) { + throw vespalib::IllegalArgumentException("Name '" + name + "' contains " + "illegal XML characters and cannot be used as attribute name"); + } +} + XmlEndTag::XmlEndTag() { } diff --git a/staging_vespalib/src/vespa/vespalib/util/xmlserializable.h b/staging_vespalib/src/vespa/vespalib/util/xmlserializable.h index 8454ea045ee..0c064ebd43f 100644 --- a/staging_vespalib/src/vespa/vespalib/util/xmlserializable.h +++ b/staging_vespalib/src/vespa/vespalib/util/xmlserializable.h @@ -89,8 +89,8 @@ public: XmlAttribute(const XmlAttribute&); /** Add any value that can be written to an ostringstream. */ template - XmlAttribute(const std::string& name, const T& value, - uint32_t flags = NONE); + XmlAttribute(const std::string& name, const T& value, uint32_t flags = NONE); + XmlAttribute(const std::string& name, const char * value, uint32_t flags = NONE); ~XmlAttribute(); const std::string& getName() const { return _name; } -- cgit v1.2.3