xmltooling::XMLObjectBuilder Class Referenceabstract

A factory interface for obtaining an XMLObject. More...

`#include <xmltooling/XMLObjectBuilder.h>`

Inheritance diagram for xmltooling::XMLObjectBuilder:
[legend]

## Public Member Functions

virtual XMLObject * | buildObject (const XMLCh *nsURI, const XMLCh *localName, const XMLCh *prefix=0, const QName *schemaType=0) const =0
| Creates an empty XMLObject with a particular element name.
XMLObject * | buildFromQName (const QName &q) const
| Creates an empty XMLObject with a particular element name.
XMLObject * | buildFromElement (xercesc::DOMElement *element, bool bindDocument=false) const
| Creates an unmarshalled XMLObject from a DOM Element.
XMLObject * | buildFromDocument (xercesc::DOMDocument *doc, bool bindDocument=true) const
| Creates an unmarshalled XMLObject from the root of a DOM Document.

## Static Public Member Functions

static XMLObject * | buildOneFromElement (xercesc::DOMElement *element, bool bindDocument=false)
| Creates an unmarshalled XMLObject using the default build method, if a builder can be found.
static const XMLObjectBuilder * | getBuilder (const QName &key)
| Retrieves an XMLObjectBuilder using the key it was registered with.
static const XMLObjectBuilder * | getBuilder (const xercesc::DOMElement *element)
| Retrieves an XMLObjectBuilder for a given DOM element.
static const XMLObjectBuilder * | getDefaultBuilder ()
| Retrieves the default XMLObjectBuilder for DOM elements.
static const std::map< QName, XMLObjectBuilder * > & | getBuilders ()
| Gets an immutable list of all the builders currently registered.
static void | registerBuilder (const QName &builderKey, XMLObjectBuilder *builder)
| Registers a new builder for the given key.
static void | registerDefaultBuilder (XMLObjectBuilder *builder)
| Registers a default builder.
static void | deregisterBuilder (const QName &builderKey)
| Deregisters a builder.
static void | deregisterDefaultBuilder ()
| Deregisters default builder.
static void | destroyBuilders ()
| Unregisters and destroys all registered builders.

## Detailed Description

A factory interface for obtaining an XMLObject.

## Member Function Documentation

## buildFromDocument()

XMLObject * xmltooling::XMLObjectBuilder::buildFromDocument | ( | xercesc::DOMDocument * | doc,
|  | bool | bindDocument = true ) const

Creates an unmarshalled XMLObject from the root of a DOM Document.

The caller is responsible for freeing the resulting object.

Parameters

  doc | the unmarshalling source
  bindDocument | true iff the XMLObject should take ownership of the DOM Document

Returns
  the unmarshalled XMLObject

## buildFromElement()

XMLObject * xmltooling::XMLObjectBuilder::buildFromElement | ( | xercesc::DOMElement * | element,
|  | bool | bindDocument = false ) const

Creates an unmarshalled XMLObject from a DOM Element.

The caller is responsible for freeing the resulting object.

Parameters

  element | the unmarshalling source
  bindDocument | true iff the XMLObject should take ownership of the DOM Document

Returns
  the unmarshalled XMLObject

## buildFromQName()

XMLObject * xmltooling::XMLObjectBuilder::buildFromQName | ( | const QName & | q | ) | const

Creates an empty XMLObject with a particular element name.

The caller is responsible for freeing the resulting object.

Parameters

  q | QName of element for object

Returns
  the empty XMLObject

## buildObject()

virtual XMLObject * xmltooling::XMLObjectBuilder::buildObject | ( | const XMLCh * | nsURI,
|  | const XMLCh * | localName,
|  | const XMLCh * | prefix = 0,
|  | const QName * | schemaType = 0 ) const

pure virtual

Creates an empty XMLObject with a particular element name.

The results are undefined if localName is nullptr or empty.

The caller is responsible for freeing the resulting object.

Parameters

  nsURI | namespace URI for element
  localName | local name of element
  prefix | prefix of element name
  schemaType | xsi:type of the object

Returns
  the empty XMLObject

Implemented in xmlsignature::SignatureBuilder, xmltooling::ConcreteXMLObjectBuilder, and xmltooling::UnknownElementBuilder.

## buildOneFromElement()

XMLObject * xmltooling::XMLObjectBuilder::buildOneFromElement | ( | xercesc::DOMElement * | element,
|  | bool | bindDocument = false )

static

Creates an unmarshalled XMLObject using the default build method, if a builder can be found.

The caller is responsible for freeing the resulting object.

Parameters

  element | the unmarshalling source
  bindDocument | true iff the new XMLObject should take ownership of the DOM Document

Returns
  the unmarshalled object or nullptr if no builder is available

## deregisterBuilder()

void xmltooling::XMLObjectBuilder::deregisterBuilder | ( | const QName & | builderKey | ) |

static

Deregisters a builder.

Parameters

  builderKey | the key for the builder to be deregistered

## getBuilder() [1/2]

const XMLObjectBuilder * xmltooling::XMLObjectBuilder::getBuilder | ( | const QName & | key | ) |

static

Retrieves an XMLObjectBuilder using the key it was registered with.

Parameters

  key | the key used to register the builder

Returns
  the builder or nullptr

## getBuilder() [2/2]

const XMLObjectBuilder * xmltooling::XMLObjectBuilder::getBuilder | ( | const xercesc::DOMElement * | element | ) |

static

Retrieves an XMLObjectBuilder for a given DOM element.

If no match is found, the default builder is returned, if any.

Parameters

  element | the element for which to locate a builder

Returns
  the builder or nullptr

## getBuilders()

const std::map< QName, XMLObjectBuilder * > & xmltooling::XMLObjectBuilder::getBuilders | ( |  | ) |

static

Gets an immutable list of all the builders currently registered.

Returns
  list of all the builders currently registered

## getDefaultBuilder()

const XMLObjectBuilder * xmltooling::XMLObjectBuilder::getDefaultBuilder | ( |  | ) |

static

Retrieves the default XMLObjectBuilder for DOM elements.

Returns
  the default builder or nullptr

## registerBuilder()

void xmltooling::XMLObjectBuilder::registerBuilder | ( | const QName & | builderKey,
|  | XMLObjectBuilder * | builder )

static

Registers a new builder for the given key.

Parameters

  builderKey | the key used to retrieve this builder later
  builder | the builder

## registerDefaultBuilder()

void xmltooling::XMLObjectBuilder::registerDefaultBuilder | ( | XMLObjectBuilder * | builder | ) |

static

Registers a default builder.

Parameters

  builder | the default builder

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

- xmltooling/XMLObjectBuilder.h