Object that represents an XML Element that has been unmarshalled into this C++ object. More...
#include <xmltooling/XMLObject.h>
Public Member Functions | |
virtual XMLObject * | clone () const =0 |
Creates a copy of the object, along with all of its children. | |
virtual void | detach ()=0 |
Specialized function for detaching a child object from its parent while disposing of the parent. | |
virtual const QName & | getElementQName () const =0 |
Gets the QName for this element. | |
virtual const std::set < Namespace > & | getNamespaces () const =0 |
Gets the namespaces that are scoped to this element. | |
virtual void | addNamespace (const Namespace &ns) const =0 |
Adds a namespace to the ones already scoped to this element. | |
virtual void | removeNamespace (const Namespace &ns)=0 |
Removes a namespace from this element. | |
virtual const QName * | getSchemaType () const =0 |
Gets the XML schema type of this element. | |
virtual const XMLCh * | getXMLID () const =0 |
Gets the value of the ID attribute set on this object, if any. | |
virtual const XMLCh * | getLang () const |
Returns the xml:lang property of the object, if any. | |
bool | nil () const |
Returns the xsi:nil property of the object, or false if not set. | |
virtual xmlconstants::xmltooling_bool_t | getNil () const =0 |
Returns the xsi:nil property as an explicit enumerated value. | |
virtual void | nil (xmlconstants::xmltooling_bool_t value)=0 |
Sets the xsi:nil property using an enumerated value. | |
void | nil (bool value) |
Sets the xsi:nil property. | |
void | setNil (const XMLCh *value) |
Sets the xsi:nil property using a string constant. | |
virtual bool | hasParent () const =0 |
Checks to see if this object has a parent. | |
virtual XMLObject * | getParent () const =0 |
Gets the parent of this element or null if there is no parent. | |
virtual void | setParent (XMLObject *parent)=0 |
Sets the parent of this element. | |
virtual bool | hasChildren () const =0 |
Checks if this XMLObject has children. | |
virtual const std::list < XMLObject * > & | getOrderedChildren () const =0 |
Returns an unmodifiable list of child objects in the order that they should appear in the serialized representation. | |
virtual void | removeChild (XMLObject *child)=0 |
Used by a child's detach method to isolate the child from this parent object in preparation for destroying the parent (this object). | |
virtual const XMLCh * | getTextContent (unsigned int position=0) const =0 |
Returns the text content at the specified position relative to any child elements. | |
virtual void | setTextContent (const XMLCh *value, unsigned int position=0)=0 |
Sets (or clears) text content relative to a child element's position. | |
virtual xercesc::DOMElement * | getDOM () const =0 |
Gets the DOM representation of this XMLObject, if one exists. | |
virtual void | setDOM (xercesc::DOMElement *dom, bool bindDocument=false) const =0 |
Sets the DOM representation of this XMLObject. | |
virtual void | setDocument (xercesc::DOMDocument *doc) const =0 |
Assigns ownership of a DOM document to the XMLObject. | |
virtual void | releaseDOM () const =0 |
Releases the DOM representation of this XMLObject, if there is one. | |
virtual void | releaseParentDOM (bool propagateRelease=true) const =0 |
Releases the DOM representation of this XMLObject's parent. | |
virtual void | releaseChildrenDOM (bool propagateRelease=true) const =0 |
Releases the DOM representation of this XMLObject's children. | |
void | releaseThisandParentDOM () const |
A convenience method that is equal to calling releaseDOM() then releaseParentDOM(true). | |
void | releaseThisAndChildrenDOM () const |
A convenience method that is equal to calling releaseChildrenDOM(true) then releaseDOM(). | |
virtual xercesc::DOMElement * | marshall (xercesc::DOMDocument *document=0, const std::vector< xmlsignature::Signature * > *sigs=0, const Credential *credential=0) const =0 |
Marshalls the XMLObject, and its children, into a DOM element. | |
virtual xercesc::DOMElement * | marshall (xercesc::DOMElement *parentElement, const std::vector< xmlsignature::Signature * > *sigs=0, const Credential *credential=0) const =0 |
Marshalls the XMLObject and appends it as a child of the given parent element. | |
virtual XMLObject * | unmarshall (xercesc::DOMElement *element, bool bindDocument=false)=0 |
Unmarshalls the given W3C DOM element into the XMLObject. |
Object that represents an XML Element that has been unmarshalled into this C++ object.
virtual void xmltooling::XMLObject::addNamespace | ( | const Namespace & | ns | ) | const [pure virtual] |
Adds a namespace to the ones already scoped to this element.
ns | the namespace to add |
Implemented in xmltooling::AbstractXMLObject.
virtual XMLObject* xmltooling::XMLObject::clone | ( | ) | const [pure virtual] |
Creates a copy of the object, along with all of its children.
The new object tree will be completely distinct and independent of the original in all respects.
Implemented in xmltooling::AbstractDOMCachingXMLObject.
virtual void xmltooling::XMLObject::detach | ( | ) | [pure virtual] |
Specialized function for detaching a child object from its parent while disposing of the parent.
This is not a generic way of detaching any child object, but only of pruning a single child from the root of an XMLObject tree. If the detached XMLObject's parent is itself a child, an exception will be thrown. It's mainly useful for turning a child into the new root of the tree without having to clone the child.
Implemented in xmltooling::AbstractDOMCachingXMLObject, and xmltooling::AbstractXMLObject.
virtual xercesc::DOMElement* xmltooling::XMLObject::getDOM | ( | ) | const [pure virtual] |
Gets the DOM representation of this XMLObject, if one exists.
Implemented in xmltooling::AbstractDOMCachingXMLObject.
virtual const QName& xmltooling::XMLObject::getElementQName | ( | ) | const [pure virtual] |
Gets the QName for this element.
This QName MUST contain the namespace URI, namespace prefix, and local element name.
Implemented in xmltooling::AbstractXMLObject.
virtual const XMLCh* xmltooling::XMLObject::getLang | ( | ) | const [virtual] |
Returns the xml:lang property of the object, if any.
Reimplemented in xmltooling::AbstractAttributeExtensibleXMLObject.
virtual const std::set<Namespace>& xmltooling::XMLObject::getNamespaces | ( | ) | const [pure virtual] |
Gets the namespaces that are scoped to this element.
The caller MUST NOT modify the set returned, but may use any non-modifying operations or algorithms on it. Iterators will remain valid unless the set member referenced is removed using the removeNamespace method.
Implemented in xmltooling::AbstractXMLObject.
virtual xmlconstants::xmltooling_bool_t xmltooling::XMLObject::getNil | ( | ) | const [pure virtual] |
Returns the xsi:nil property as an explicit enumerated value.
Implemented in xmltooling::AbstractXMLObject.
virtual const std::list<XMLObject*>& xmltooling::XMLObject::getOrderedChildren | ( | ) | const [pure virtual] |
Returns an unmodifiable list of child objects in the order that they should appear in the serialized representation.
The validity of the returned list is not maintained if any non-const operations are performed on the parent object.
Implemented in xmltooling::AbstractComplexElement, and xmltooling::AbstractSimpleElement.
virtual XMLObject* xmltooling::XMLObject::getParent | ( | ) | const [pure virtual] |
Gets the parent of this element or null if there is no parent.
Implemented in xmltooling::AbstractXMLObject.
virtual const QName* xmltooling::XMLObject::getSchemaType | ( | ) | const [pure virtual] |
Gets the XML schema type of this element.
This translates to contents the xsi:type attribute for the element.
Implemented in xmltooling::AbstractXMLObject.
virtual const XMLCh* xmltooling::XMLObject::getTextContent | ( | unsigned int | position = 0 |
) | const [pure virtual] |
Returns the text content at the specified position relative to any child elements.
A zero represents leading text, 1 comes after the first child, and so forth.
position | the relative child element position of the text |
Implemented in xmltooling::AbstractComplexElement, and xmltooling::AbstractSimpleElement.
virtual const XMLCh* xmltooling::XMLObject::getXMLID | ( | ) | const [pure virtual] |
Gets the value of the ID attribute set on this object, if any.
Implemented in xmltooling::AbstractAttributeExtensibleXMLObject, and xmltooling::AbstractXMLObject.
virtual bool xmltooling::XMLObject::hasChildren | ( | ) | const [pure virtual] |
Checks if this XMLObject has children.
Implemented in xmltooling::AbstractComplexElement, and xmltooling::AbstractSimpleElement.
virtual bool xmltooling::XMLObject::hasParent | ( | ) | const [pure virtual] |
Checks to see if this object has a parent.
Implemented in xmltooling::AbstractXMLObject.
virtual xercesc::DOMElement* xmltooling::XMLObject::marshall | ( | xercesc::DOMElement * | parentElement, | |
const std::vector< xmlsignature::Signature * > * | sigs = 0 , |
|||
const Credential * | credential = 0 | |||
) | const [pure virtual] |
Marshalls the XMLObject and appends it as a child of the given parent element.
NOTE: The given Element must be within a DOM tree rooted in the Document owning the given Element.
parentElement | the parent element to append the resulting DOM tree | |
sigs | ordered array of signatures to create after marshalling is complete | |
credential | optional credential to supply signing key and related info |
MarshallingException | thrown if the given XMLObject can not be marshalled. | |
SignatureException | thrown if a problem occurs during signature creation |
Implemented in xmltooling::AbstractXMLObjectMarshaller.
virtual xercesc::DOMElement* xmltooling::XMLObject::marshall | ( | xercesc::DOMDocument * | document = 0 , |
|
const std::vector< xmlsignature::Signature * > * | sigs = 0 , |
|||
const Credential * | credential = 0 | |||
) | const [pure virtual] |
Marshalls the XMLObject, and its children, into a DOM element.
If a document is supplied, then it will be used to create the resulting elements. If the document does not have a Document Element set, then the resulting element will be set as the Document Element. If no document is supplied, then a new document will be created and bound to the lifetime of the root object being marshalled, unless an existing DOM can be reused without creating a new document.
document | the DOM document the marshalled element will be placed in, or nullptr | |
sigs | ordered array of signatures to create after marshalling is complete | |
credential | optional credential to supply signing key and related info |
MarshallingException | thrown if there is a problem marshalling the given object | |
SignatureException | thrown if a problem occurs during signature creation |
Implemented in xmltooling::AbstractXMLObjectMarshaller.
void xmltooling::XMLObject::nil | ( | bool | value | ) | [inline] |
Sets the xsi:nil property.
value | value to set |
virtual void xmltooling::XMLObject::nil | ( | xmlconstants::xmltooling_bool_t | value | ) | [pure virtual] |
Sets the xsi:nil property using an enumerated value.
value | value to set |
Implemented in xmltooling::AbstractXMLObject.
bool xmltooling::XMLObject::nil | ( | ) | const [inline] |
Returns the xsi:nil property of the object, or false if not set.
virtual void xmltooling::XMLObject::releaseChildrenDOM | ( | bool | propagateRelease = true |
) | const [pure virtual] |
Releases the DOM representation of this XMLObject's children.
propagateRelease | true if all descendants of this element should release their DOM |
Implemented in xmltooling::AbstractDOMCachingXMLObject.
virtual void xmltooling::XMLObject::releaseParentDOM | ( | bool | propagateRelease = true |
) | const [pure virtual] |
Releases the DOM representation of this XMLObject's parent.
propagateRelease | true if all ancestors of this element should release their DOM |
Implemented in xmltooling::AbstractDOMCachingXMLObject.
virtual void xmltooling::XMLObject::removeChild | ( | XMLObject * | child | ) | [pure virtual] |
Used by a child's detach method to isolate the child from this parent object in preparation for destroying the parent (this object).
child | the child object to remove |
virtual void xmltooling::XMLObject::removeNamespace | ( | const Namespace & | ns | ) | [pure virtual] |
Removes a namespace from this element.
ns | the namespace to remove |
Implemented in xmltooling::AbstractXMLObject.
virtual void xmltooling::XMLObject::setDocument | ( | xercesc::DOMDocument * | doc | ) | const [pure virtual] |
Assigns ownership of a DOM document to the XMLObject.
This binds the lifetime of the document to the lifetime of the object.
doc | DOM document bound to this object |
Implemented in xmltooling::AbstractDOMCachingXMLObject.
virtual void xmltooling::XMLObject::setDOM | ( | xercesc::DOMElement * | dom, | |
bool | bindDocument = false | |||
) | const [pure virtual] |
Sets the DOM representation of this XMLObject.
dom | DOM representation of this XMLObject | |
bindDocument | true if the object should take ownership of the associated Document |
Implemented in xmltooling::AbstractDOMCachingXMLObject.
void xmltooling::XMLObject::setNil | ( | const XMLCh * | value | ) |
Sets the xsi:nil property using a string constant.
value | value to set |
virtual void xmltooling::XMLObject::setParent | ( | XMLObject * | parent | ) | [pure virtual] |
Sets the parent of this element.
parent | the parent of this element |
virtual void xmltooling::XMLObject::setTextContent | ( | const XMLCh * | value, | |
unsigned int | position = 0 | |||
) | [pure virtual] |
Sets (or clears) text content relative to a child element's position.
value | value to set, or nullptr to clear | |
position | position relative to child element |
Implemented in xmltooling::AbstractComplexElement, and xmltooling::AbstractSimpleElement.
virtual XMLObject* xmltooling::XMLObject::unmarshall | ( | xercesc::DOMElement * | element, | |
bool | bindDocument = false | |||
) | [pure virtual] |
Unmarshalls the given W3C DOM element into the XMLObject.
The root of a given XML construct should be unmarshalled with the bindDocument parameter set to true.
element | the DOM element to unmarshall | |
bindDocument | true iff the resulting XMLObject should take ownership of the DOM's Document |
UnmarshallingException | thrown if an error occurs unmarshalling the DOM element into the XMLObject |
Implemented in xmltooling::AbstractXMLObjectUnmarshaller.