/*
- * Copyright 2001-2006 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class XMLTOOL_API AttributeExtensibleXMLObject : public virtual XMLObject
{
protected:
- AttributeExtensibleXMLObject() {}
+ AttributeExtensibleXMLObject();
public:
- virtual ~AttributeExtensibleXMLObject() {}
+ virtual ~AttributeExtensibleXMLObject();
/**
* Gets the value of an XML attribute of the object.
virtual void setAttribute(const QName& qualifiedName, const XMLCh* value, bool ID=false)=0;
/**
+ * Sets a QName-valued XML attribute of the object.
+ *
+ * @param qualifiedName qualified name of the attribute
+ * @param value value to set
+ */
+ virtual void setAttribute(const QName& qualifiedName, const QName& value);
+
+ /**
* Gets an immutable map of the extended XML attributes of the object.
*
* This set is not guaranteed to (and generally will not) include
*
* @return list of all the ID attributes currently registered
*/
- static const std::set<QName>& getRegisteredIDAttributes() {
- return m_idAttributeSet;
- }
+ static const std::set<QName>& getRegisteredIDAttributes();
/**
* Tests whether an XML attribute is registered as an XML ID.
*
* @return true iff the attribute name matches a registered XML ID attribute
*/
- static bool isRegisteredIDAttribute(const QName& name) {
- return m_idAttributeSet.find(name)!=m_idAttributeSet.end();
- }
+ static bool isRegisteredIDAttribute(const QName& name);
/**
* Registers a new attribute as being of XML ID type.
*
* @param name the qualified attribute name
*/
- static void registerIDAttribute(const QName& name) {
- m_idAttributeSet.insert(name);
- }
+ static void registerIDAttribute(const QName& name);
/**
* Deregisters an ID attribute.
*
* @param name the qualified attribute name
*/
- static void deregisterIDAttribute(const QName& name) {
- m_idAttributeSet.erase(name);
- }
+ static void deregisterIDAttribute(const QName& name);
/**
* Deregisters all ID attributes.
*/
- static void deregisterIDAttributes() {
- m_idAttributeSet.clear();
- }
+ static void deregisterIDAttributes();
private:
/** Set of attributes to treat as XML IDs. */