*/\r
\r
/**\r
- * @file AbstractSimpleElement.h\r
+ * @file xmltooling/AbstractSimpleElement.h\r
* \r
* AbstractXMLObject mixin that implements a simple string-based content model \r
*/\r
#define __xmltooling_abssimpleel_h__\r
\r
#include <xmltooling/AbstractXMLObject.h>\r
-#include <xmltooling/SimpleElement.h>\r
\r
#if defined (_MSC_VER)\r
#pragma warning( push )\r
* AbstractXMLObject mixin that implements a simple string-based content model.\r
* Inherit from this class to support string-based element content.\r
*/\r
- class XMLTOOL_API AbstractSimpleElement : public virtual SimpleElement, public virtual AbstractXMLObject\r
+ class XMLTOOL_API AbstractSimpleElement : public virtual AbstractXMLObject\r
{\r
public:\r
virtual ~AbstractSimpleElement() {\r
XMLString::release(&m_value);\r
}\r
\r
- virtual const XMLCh* getTextContent() const {\r
- return m_value;\r
+ bool hasChildren() const {\r
+ return false;\r
+ }\r
+\r
+ const std::list<XMLObject*>& getOrderedChildren() const {\r
+ return m_no_children;\r
+ }\r
+\r
+ void removeChild(XMLObject* child);\r
+\r
+ virtual const XMLCh* getTextContent(unsigned int position=0) const {\r
+ return (position==0) ? m_value : NULL;\r
}\r
\r
- virtual void setTextContent(const XMLCh* value) {\r
+ virtual void setTextContent(const XMLCh* value, unsigned int position=0) {\r
+ if (position > 0)\r
+ throw XMLObjectException("Cannot set text content in simple element at position > 0.");\r
m_value=prepareForAssignment(m_value,value);\r
}\r
\r
\r
private:\r
XMLCh* m_value;\r
+\r
+ static std::list<XMLObject*> m_no_children;\r
};\r
\r
};\r