xmltooling 3.0.4

Public Member Functions | Protected Member Functions | List of all members
xmltooling::AbstractXMLObjectMarshaller Class Reference

A mix-in to implement object marshalling with DOM reuse. More...

`#include <xmltooling/io/AbstractXMLObjectMarshaller.h>`

Inheritance diagram for xmltooling::AbstractXMLObjectMarshaller:
[legend]
Collaboration diagram for xmltooling::AbstractXMLObjectMarshaller:
[legend]

## Public Member Functions
xercesc::DOMElement * | marshall (xercesc::DOMDocument *document=0, const std::vector< xmlsignature::Signature * > *sigs=0, const Credential *credential=0) const
| Marshalls the XMLObject, and its children, into a DOM element. More...
xercesc::DOMElement * | marshall (xercesc::DOMElement *parentElement, const std::vector< xmlsignature::Signature * > *sigs=0, const Credential *credential=0) const
| Marshalls the XMLObject and appends it as a child of the given parent element. More...
Public Member Functions inherited from xmltooling::AbstractXMLObject
void | detach ()
| Specialized function for detaching a child object from its parent while disposing of the parent. More...
const QName & | getElementQName () const
| Gets the QName for this element. More...
const std::set< Namespace > & | getNamespaces () const
| Gets the namespaces that are scoped to this element. More...
void | addNamespace (const Namespace &ns) const
| Adds a namespace to the ones already scoped to this element. More...
void | removeNamespace (const Namespace &ns)
| Removes a namespace from this element. More...
const QName * | getSchemaType () const
| Gets the XML schema type of this element. More...
const XMLCh * | getXMLID () const
| Gets the value of the ID attribute set on this object, if any. More...
xmlconstants::xmltooling_bool_t | getNil () const
| Returns the xsi:nil property as an explicit enumerated value. More...
void | nil (xmlconstants::xmltooling_bool_t value)
| Sets the xsi:nil property using an enumerated value. More...
bool | hasParent () const
| Checks to see if this object has a parent. More...
XMLObject * | getParent () const
| Gets the parent of this element or null if there is no parent. More...
void | setParent (XMLObject *parent)
| Sets the parent of this element. More...
Public Member Functions inherited from xmltooling::XMLObject
virtual XMLObject * | clone () const =0
| Creates a copy of the object, along with all of its children. More...
virtual void | detach ()=0
| Specialized function for detaching a child object from its parent while disposing of the parent. More...
virtual const QName & | getElementQName () const =0
| Gets the QName for this element. More...
virtual const std::set< Namespace > & | getNamespaces () const =0
| Gets the namespaces that are scoped to this element. More...
virtual void | addNamespace (const Namespace &ns) const =0
| Adds a namespace to the ones already scoped to this element. More...
virtual void | removeNamespace (const Namespace &ns)=0
| Removes a namespace from this element. More...
virtual const QName * | getSchemaType () const =0
| Gets the XML schema type of this element. More...
virtual const XMLCh * | getXMLID () const =0
| Gets the value of the ID attribute set on this object, if any. More...
virtual const XMLCh * | getLang () const
| Returns the xml:lang property of the object, if any. More...
bool | nil () const
| Returns the xsi:nil property of the object, or false if not set. More...
virtual xmlconstants::xmltooling_bool_t | getNil () const =0
| Returns the xsi:nil property as an explicit enumerated value. More...
virtual void | nil (xmlconstants::xmltooling_bool_t value)=0
| Sets the xsi:nil property using an enumerated value. More...
void | nil (bool value)
| Sets the xsi:nil property. More...
void | setNil (const XMLCh *value)
| Sets the xsi:nil property using a string constant. More...
virtual bool | hasParent () const =0
| Checks to see if this object has a parent. More...
virtual XMLObject * | getParent () const =0
| Gets the parent of this element or null if there is no parent. More...
virtual void | setParent (XMLObject *parent)=0
| Sets the parent of this element. More...
virtual bool | hasChildren () const =0
| Checks if this XMLObject has children. More...
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. More...
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). More...
virtual const XMLCh * | getTextContent (unsigned int position=0) const =0
| Returns the text content at the specified position relative to any child elements. More...
virtual void | setTextContent (const XMLCh *value, unsigned int position=0)=0
| Sets (or clears) text content relative to a child element's position. More...
virtual xercesc::DOMElement * | getDOM () const =0
| Gets the DOM representation of this XMLObject, if one exists. More...
virtual void | setDOM (xercesc::DOMElement *dom, bool bindDocument=false) const =0
| Sets the DOM representation of this XMLObject. More...
virtual void | setDocument (xercesc::DOMDocument *doc) const =0
| Assigns ownership of a DOM document to the XMLObject. More...
virtual void | releaseDOM () const =0
| Releases the DOM representation of this XMLObject, if there is one. More...
virtual void | releaseParentDOM (bool propagateRelease=true) const =0
| Releases the DOM representation of this XMLObject's parent. More...
virtual void | releaseChildrenDOM (bool propagateRelease=true) const =0
| Releases the DOM representation of this XMLObject's children. More...
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. More...
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. More...
virtual XMLObject * | unmarshall (xercesc::DOMElement *element, bool bindDocument=false)=0
| Unmarshalls the given W3C DOM element into the XMLObject. More...

## Protected Member Functions
void | setDocumentElement (xercesc::DOMDocument *document, xercesc::DOMElement *element) const
| Sets the given element as the Document Element of the given Document. More...
void | marshallInto (xercesc::DOMElement *targetElement, const std::vector< xmlsignature::Signature * > *sigs, const Credential *credential=0) const
| Marshalls the XMLObject into the given DOM Element. More...
void | marshallElementType (xercesc::DOMElement *domElement) const
| Creates an xsi:type attribute, corresponding to the given type of the XMLObject, on the DOM element. More...
void | marshallNamespaces (xercesc::DOMElement *domElement) const
| Creates the xmlns attributes for any namespaces set on the XMLObject. More...
void | marshallContent (xercesc::DOMElement *domElement, const Credential *credential) const
| Marshalls the text content and/or child elements of the XMLObject. More...
virtual void | marshallAttributes (xercesc::DOMElement *domElement) const
| Marshalls the attributes from the XMLObject into the given DOM element. More...
virtual void | prepareForMarshalling () const
| Called before marshalling in the event that a new DOM is being generated. More...
Protected Member Functions inherited from xmltooling::AbstractXMLObject
| AbstractXMLObject (const XMLCh *nsURI=0, const XMLCh *localName=0, const XMLCh *prefix=0, const QName *schemaType=0)
| Constructor. More...
| AbstractXMLObject (const AbstractXMLObject &src)
| Copy constructor.
XMLCh * | prepareForAssignment (XMLCh *oldValue, const XMLCh *newValue)
| A helper function for derived classes, for assignment of strings. More...
xercesc::XMLDateTime * | prepareForAssignment (xercesc::XMLDateTime *oldValue, const xercesc::XMLDateTime *newValue)
| A helper function for derived classes, for assignment of date/time data. More...
xercesc::XMLDateTime * | prepareForAssignment (xercesc::XMLDateTime *oldValue, time_t newValue, bool duration=false)
| A helper function for derived classes, for assignment of date/time data. More...
xercesc::XMLDateTime * | prepareForAssignment (xercesc::XMLDateTime *oldValue, const XMLCh *newValue, bool duration=false)
| A helper function for derived classes, for assignment of date/time data. More...
QName * | prepareForAssignment (QName *oldValue, const QName *newValue)
| A helper function for derived classes, for assignment of QName data. More...
XMLObject * | prepareForAssignment (XMLObject *oldValue, XMLObject *newValue)
| A helper function for derived classes, for assignment of (singleton) XML objects. More...

## Additional Inherited Members
Protected Attributes inherited from xmltooling::AbstractXMLObject
std::set< Namespace > | m_namespaces
| Set of namespaces associated with the object.
logging::Category & | m_log
| Logging object.
XMLCh * | m_schemaLocation
| Stores off xsi:schemaLocation attribute.
XMLCh * | m_noNamespaceSchemaLocation
| Stores off xsi:noNamespaceSchemaLocation attribute.
xmlconstants::xmltooling_bool_t | m_nil
| Stores off xsi:nil attribute.

## Detailed Description

A mix-in to implement object marshalling with DOM reuse.

## Member Function Documentation

## ◆ marshall() [1/2]

xercesc::DOMElement * xmltooling::AbstractXMLObjectMarshaller::marshall | ( | xercesc::DOMDocument * | document = `0`,
|  | const std::vector< xmlsignature::Signature * > * | sigs = `0`,
|  | const Credential * | credential = `0`
| ) |  | const
| 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.

Parameters

  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

Returns
  the DOM element representing this XMLObject

Exceptions

  MarshallingException | thrown if there is a problem marshalling the given object
  SignatureException | thrown if a problem occurs during signature creation

Implements xmltooling::XMLObject.

## ◆ marshall() [2/2]

xercesc::DOMElement * xmltooling::AbstractXMLObjectMarshaller::marshall | ( | xercesc::DOMElement * | parentElement,
|  | const std::vector< xmlsignature::Signature * > * | sigs = `0`,
|  | const Credential * | credential = `0`
| ) |  | const
| 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.

Parameters

  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

Returns
  the marshalled element tree

Exceptions

  MarshallingException | thrown if the given XMLObject can not be marshalled.
  SignatureException | thrown if a problem occurs during signature creation

Implements xmltooling::XMLObject.

## ◆ marshallAttributes()

virtual void xmltooling::AbstractXMLObjectMarshaller::marshallAttributes | ( | xercesc::DOMElement * | domElement | ) | const
| protected virtual

Marshalls the attributes from the XMLObject into the given DOM element.

Parameters

  domElement | the DOM Element into which attributes will be marshalled

Exceptions

  MarshallingException | thrown if there is a problem marshalling an attribute

## ◆ marshallContent()

void xmltooling::AbstractXMLObjectMarshaller::marshallContent | ( | xercesc::DOMElement * | domElement,
|  | const Credential * | credential
| ) |  | const
| protected

Marshalls the text content and/or child elements of the XMLObject.

Parameters

  domElement | the DOM element that will recieved the marshalled children
  credential | optional credential to supply signing key and related info

Exceptions

  MarshallingException | thrown if there is a problem marshalling a child element

## ◆ marshallElementType()

void xmltooling::AbstractXMLObjectMarshaller::marshallElementType | ( | xercesc::DOMElement * | domElement | ) | const
| protected

Creates an xsi:type attribute, corresponding to the given type of the XMLObject, on the DOM element.

Parameters

  domElement | the DOM element

Exceptions

  MarshallingException | thrown if the type on the XMLObject is doesn't contain a local name, prefix, and namespace URI

## ◆ marshallInto()

void xmltooling::AbstractXMLObjectMarshaller::marshallInto | ( | xercesc::DOMElement * | targetElement,
|  | const std::vector< xmlsignature::Signature * > * | sigs,
|  | const Credential * | credential = `0`
| ) |  | const
| protected

Marshalls the XMLObject into the given DOM Element.

The DOM Element must be within a DOM tree rooted in the owning Document.

Parameters

  targetElement | the Element into which the XMLObject is marshalled into
  sigs | optional array of signatures to create after marshalling
  credential | optional credential to supply signing key and related info

Exceptions

  MarshallingException | thrown if there is a problem marshalling the object
  SignatureException | thrown if a problem occurs during signature creation

## ◆ marshallNamespaces()

void xmltooling::AbstractXMLObjectMarshaller::marshallNamespaces | ( | xercesc::DOMElement * | domElement | ) | const
| protected

Creates the xmlns attributes for any namespaces set on the XMLObject.

Parameters

  domElement | the DOM element the namespaces will be added to

## ◆ prepareForMarshalling()

virtual void xmltooling::AbstractXMLObjectMarshaller::prepareForMarshalling | ( |  | ) | const
| protected virtual

Called before marshalling in the event that a new DOM is being generated.

Allows objects to adjust internal state prior to the marshalling step.

## ◆ setDocumentElement()

void xmltooling::AbstractXMLObjectMarshaller::setDocumentElement | ( | xercesc::DOMDocument * | document,
|  | xercesc::DOMElement * | element
| ) |  | const
| protected

Sets the given element as the Document Element of the given Document.

If the document already has a Document Element it is replaced by the given element.

Parameters

  document | the document
  element | the Element that will serve as the Document Element

The documentation for this class was generated from the following file:

- xmltooling/io/AbstractXMLObjectMarshaller.h