+ * Implements get/set methods and a private member for a string XML attribute,\r
+ * plus a getXMLID override and attribute node clearance when DOM is dropped.\r
+ *\r
+ * @param proper the proper name of the attribute\r
+ * @param ucase the upcased name of the attribute\r
+ * @param namespaceURI the XML namespace of the attribute\r
+ */\r
+#define IMPL_ID_ATTRIB_EX(proper, ucase, namespaceURI) \\r
+ IMPL_XMLOBJECT_ATTRIB(proper,XMLCh) \\r
+ const XMLCh* getXMLID() const { \\r
+ return m_##proper; \\r
+ } \\r
+ void releaseDOM() const { \\r
+ if (getDOM()) \\r
+ getDOM()->removeAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \\r
+ AbstractDOMCachingXMLObject::releaseDOM(); \\r
+ }\r
+\r
+/**\r