Add toString method.
[shibboleth/cpp-xmltooling.git] / xmltooling / QName.cpp
index b087246..5872e9f 100644 (file)
@@ -24,6 +24,7 @@
 #include "QName.h"\r
 \r
 using namespace xmltooling;\r
+using namespace std;\r
 \r
 QName::QName(const XMLCh* uri, const XMLCh* localPart, const XMLCh* prefix)\r
 {\r
@@ -119,3 +120,20 @@ bool xmltooling::operator<(const QName& op1, const QName& op2)
     else\r
         return false;\r
 }\r
+\r
+string QName::toString() const\r
+{\r
+    if (!getLocalPart())\r
+        return "";\r
+    auto_ptr_char local(getLocalPart());\r
+    if (getPrefix()) {\r
+        auto_ptr_char pre(getPrefix());\r
+        return string(pre.get()) + ':' + local.get(); \r
+    }\r
+    else if (getNamespaceURI()) {\r
+        auto_ptr_char ns(getNamespaceURI());\r
+        return string("{") + ns.get() + '}' + local.get(); \r
+    }\r
+    else\r
+        return local.get();\r
+}\r