# XQilla DOM3 API Documentation

# xercesc Namespace Reference

This class holds the list of registered DOMImplementations. More...

## Classes

class | MemoryManager
| Configurable memory manager. More...
class | XMLDeleter
class | XMLPlatformUtils
| Utilities that must be implemented in a platform-specific way. More...
class | DOMAttr
| The `DOMAttr` class refers to an attribute of an XML element. More...
class | DOMCDATASection
| CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...
class | DOMCharacterData
| The `DOMCharacterData` interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...
class | DOMComment
| This interface inherits from `CharacterData` and represents the content of a comment, i.e., all the characters between the starting ' `<!--`' and ending '`-->`'. More...
class | DOMConfiguration
| The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...
class | DOMDocument
| The `DOMDocument` interface represents the entire XML document. More...
class | DOMDocumentFragment
| DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...
class | DOMDocumentRange
class | DOMDocumentTraversal
| `DOMDocumentTraversal` contains methods that create `DOMNodeIterators` and `DOMTreeWalkers` to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...
class | DOMDocumentType
| Each `DOMDocument` has a `doctype` attribute whose value is either `null` or a `DOMDocumentType` object. More...
class | DOMElement
| By far the vast majority of objects (apart from text) that authors encounter when traversing a document are `DOMElement` nodes. More...
class | DOMEntity
| This interface represents an entity, either parsed or unparsed, in an XML document. More...
class | DOMEntityReference
| `DOMEntityReference` objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...
class | DOMError
| DOMError is an interface that describes an error. More...
class | DOMErrorHandler
| Basic interface for DOM error handlers. More...
class | DOMException
class | DOMImplementation
| The `DOMImplementation` interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...
class | DOMImplementationList
| The `DOMImplementationList` interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...
class | DOMImplementationLS
class | DOMImplementationRegistry
class | DOMImplementationSource
class | DOMLocator
| DOMLocator is an interface that describes a location. More...
class | DOMLSException
class | DOMLSInput
| This interface represents a single input source for an XML entity. More...
class | DOMLSOutput
| This interface represents an output destination for data. More...
class | DOMLSParser
| DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...
class | DOMLSParserFilter
class | DOMLSResourceResolver
| DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...
class | DOMLSSerializer
class | DOMLSSerializerFilter
class | DOMMemoryManager
| The `DOMMemoryManager` interface exposes the memory allocation-related functionalities of a `DOMDocument`. More...
class | DOMNamedNodeMap
| `DOMNamedNodeMap`s are used to represent collections of nodes that can be accessed by name. More...
class | DOMNode
| The `DOMNode` interface is the primary datatype for the entire Document Object Model. More...
class | DOMNodeFilter
| Filters are objects that know how to "filter out" nodes. More...
class | DOMNodeIterator
| `DOMNodeIterators` are used to step through a set of nodes, e.g. More...
class | DOMNodeList
| The `DOMNodeList` interface provides the abstraction of an ordered collection of nodes. More...
class | DOMNotation
| This interface represents a notation declared in the DTD. More...
class | DOMProcessingInstruction
| The `DOMProcessingInstruction` interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...
class | DOMPSVITypeInfo
| The `DOMPSVITypeInfo` interface represent the PSVI info used by `DOMElement` or `DOMAttr` nodes, specified in the schemas associated with the document. More...
class | DOMRange
class | DOMRangeException
| Range operations may throw a `DOMRangeException` as specified in their method descriptions. More...
class | DOMStringList
| The `DOMStringList` interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...
class | DOMText
| The `DOMText` interface inherits from `DOMCharacterData` and represents the textual content (termed character data in XML) of an `DOMElement` or `DOMAttr`. More...
class | DOMTreeWalker
| `DOMTreeWalker` objects are used to navigate a document tree or subtree using the view of the document defined by their `whatToShow` flags and filter (if any). More...
class | DOMTypeInfo
| The `DOMTypeInfo` interface represent a type used by `DOMElement` or `DOMAttr` nodes, specified in the schemas associated with the document. More...
class | DOMUserDataHandler
| When associating an object to a key on a node using `setUserData` the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...
class | DOMXPathEvaluator
| The evaluation of XPath expressions is provided by `DOMXPathEvaluator`. More...
class | DOMXPathException
class | DOMXPathExpression
| The `DOMXPathExpression` interface represents a parsed and resolved XPath expression. More...
class | DOMXPathNamespace
| The `DOMXPathNamespace` interface is returned by `DOMXPathResult` interfaces to represent the XPath namespace node type that DOM lacks. More...
class | DOMXPathNSResolver
| The `DOMXPathNSResolver` interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
class | DOMXPathResult
| The `DOMXPathResult` interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...
class | StDOMNode

## Typedefs

typedef DOMNode * | DOMNodeSPtr
typedef DOMAttr * | DOMAttrSPtr
typedef DOMElement * | DOMElementSPtr

## Functions

| MakeXMLException (XMLPlatformUtilsException, XMLUTIL_EXPORT) inline XMLSize_t XMLPlatformUtils

## Detailed Description

This class holds the list of registered DOMImplementations.

DOMLSSerializerFilter.hpp: interface for the DOMLSSerializerFilter class.

DOMLSSerializer provides an API for serializing (writing) a DOM document out in an XML document.

DOMLSParserFilter.hpp: interface for the DOMLSParserFilter class.

This interface permits a DOM implementer to supply one or more implementations, based upon requested features and versions.

Implementation or application can register DOMImplementationSource to the registry, and then can query DOMImplementation based on a list of requested features.

This provides an application with an implementation independent starting point.

See also:
  DOMImplementation
  DOMImplementationList
  DOMImplementationSource

Since:
  DOM Level 3

Each implemented `DOMImplementationSource` object is listed in the binding-specific list of available sources so that its `DOMImplementation` objects are made available.

Since:
  DOM Level 3

DOMLSParserFilter provide applications the ability to examine nodes as they are being created during the parse process.

DOMLSParserFilter lets the application decide what nodes should be in the output DOM tree or not.

Since:
  DOM Level 3

The XML data is written to an output stream, the type of which depends on the specific language bindings in use. During serialization of XML data, namespace fixup is done when possible.

`DOMLSSerializer` accepts any node type for serialization. For nodes of type `Document` or `Entity`, well formed XML will be created if possible. The serialized output for these node types is either as a Document or an External Entity, respectively, and is acceptable input for an XML parser. For all other types of nodes the serialized form is not specified, but should be something useful to a human for debugging or diagnostic purposes. Note: rigorously designing an external (source) form for stand-alone node types that don't already have one defined in seems a bit much to take on here.

Within a Document or Entity being serialized, Nodes are processed as follows Documents are written including an XML declaration and a DTD subset, if one exists in the DOM. Writing a document node serializes the entire document. Entity nodes, when written directly by `write` defined in the `DOMLSSerializer` interface, output the entity expansion but no namespace fixup is done. The resulting output will be valid as an external entity. Entity References nodes are serializes as an entity reference of the form `"&amp;entityName;"`) in the output. Child nodes (the expansion) of the entity reference are ignored. CDATA sections containing content characters that can not be represented in the specified output encoding are handled according to the "split-cdata-sections" feature.If the feature is `true`, CDATA sections are split, and the unrepresentable characters are serialized as numeric character references in ordinary content. The exact position and number of splits is not specified. If the feature is `false`, unrepresentable characters in a CDATA section are reported as errors. The error is not recoverable - there is no mechanism for supplying alternative characters and continuing with the serialization. All other node types (DOMElement, DOMText, etc.) are serialized to their corresponding XML source form.

Within the character data of a document (outside of markup), any characters that cannot be represented directly are replaced with character references. Occurrences of '<' and '&' are replaced by the predefined entities &lt; and &amp. The other predefined entities (&gt, &apos, etc.) are not used; these characters can be included directly. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

Attributes not containing quotes are serialized in quotes. Attributes containing quotes but no apostrophes are serialized in apostrophes (single quotes). Attributes containing both forms of quotes are serialized in quotes, with quotes within the value represented by the predefined entity &quot;. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

Within markup, but outside of attributes, any occurrence of a character that cannot be represented in the output character encoding is reported as an error. An example would be serializing the element <LaCa&xF1;ada/> with the encoding="us-ascii".

When requested by setting the `normalize-characters` feature on `DOMLSSerializer`, all data to be serialized, both markup and character data, is W3C Text normalized according to the rules defined in . The W3C Text normalization process affects only the data as it is being written; it does not alter the DOM's view of the document after serialization has completed.

Namespaces are fixed up during serialization, the serialization process will verify that namespace declarations, namespace prefixes and the namespace URIs associated with Elements and Attributes are consistent. If inconsistencies are found, the serialized form of the document will be altered to remove them. The algorithm used for doing the namespace fixup while seralizing a document is a combination of the algorithms used for lookupNamespaceURI and lookupPrefix. previous paragraph to be defined closer here.

Any changes made affect only the namespace prefixes and declarations appearing in the serialized data. The DOM's view of the document is not altered by the serialization operation, and does not reflect any changes made to namespace declarations or prefixes in the serialized output.

While serializing a document the serializer will write out non-specified values (such as attributes whose `specified` is `false`) if the `output-default-values` feature is set to `true`. If the `output-default-values` flag is set to `false` and the `use-abstract-schema` feature is set to `true` the abstract schema will be used to determine if a value is specified or not, if `use-abstract-schema` is not set the `specified` flag on attribute nodes is used to determine if attribute values should be written out.

Ref to Core spec (1.1.9, XML namespaces, 5th paragraph) entity ref description about warning about unbound entity refs. Entity refs are always serialized as &foo;, also mention this in the load part of this spec.

When serializing a document the DOMLSSerializer checks to see if the document element in the document is a DOM Level 1 element or a DOM Level 2 (or higher) element (this check is done by looking at the localName of the root element). If the root element is a DOM Level 1 element then the DOMLSSerializer will issue an error if a DOM Level 2 (or higher) element is found while serializing. Likewise if the document element is a DOM Level 2 (or higher) element and the DOMLSSerializer sees a DOM Level 1 element an error is issued. Mixing DOM Level 1 elements with DOM Level 2 (or higher) is not supported.

`DOMLSSerializer`s have a number of named features that can be queried or set. The name of `DOMLSSerializer` features must be valid XML names. Implementation specific features (extensions) should choose an implementation dependent prefix to avoid name collisions.

Here is a list of properties that must be recognized by all implementations.

`"normalize-characters"`
  `true`
    [ optional] (default) Perform the W3C Text Normalization of the characters in document as they are written out. Only the characters being written are (potentially) altered. The DOM document itself is unchanged.
  `false`
    [required] do not perform character normalization.
`"split-cdata-sections"`
  `true`
    [required] (default) Split CDATA sections containing the CDATA section termination marker ']]>' or characters that can not be represented in the output encoding, and output the characters using numeric character references. If a CDATA section is split a warning is issued.
  `false`
    [ required] Signal an error if a `CDATASection` contains an unrepresentable character.
`"validation"`
  `true`
    [ optional] Use the abstract schema to validate the document as it is being serialized. If validation errors are found the error handler is notified about the error. Setting this state will also set the feature `use-abstract-schema` to `true`.
  `false`
    [ required] (default) Don't validate the document as it is being serialized.
`"expand-entity-references"`
  `true`
    [ optional] Expand `EntityReference` nodes when serializing.
  `false`
    [required] (default) Serialize all `EntityReference` nodes as XML entity references.
`"whitespace-in-element-content"`
  `true`
    [required] ( default) Output all white spaces in the document.
  `false`
    [ optional] Only output white space that is not within element content. The implementation is expected to use the `isWhitespaceInElementContent` flag on `Text` nodes to determine if a text node should be written out or not.
`"discard-default-content"`
  `true`
    [required] (default ) Use whatever information available to the implementation (i.e. XML schema, DTD, the `specified` flag on `Attr` nodes, and so on) to decide what attributes and content should be serialized or not. Note that the `specified` flag on `Attr` nodes in itself is not always reliable, it is only reliable when it is set to `false` since the only case where it can be set to `false` is if the attribute was created by a Level 1 implementation.
  `false`
    [required] Output all attributes and all content.
`"format-canonical"`
  `true`
    [optional] This formatting writes the document according to the rules specified in . Setting this feature to true will set the feature "format-pretty-print" to false.
  `false`
    [required] (default) Don't canonicalize the output.
`"format-pretty-print"`
  `true`
    [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Setting this feature to true will set the feature "format-canonical" to false.
  `false`
    [required] (default) Don't pretty-print the result.
`"http://apache.org/xml/features/dom/byte-order-mark"`
  `false`
    [optional] (default) Setting this feature to true will output the correct BOM for the specified encoding.
  `true`
    [required] Don't generate a BOM.
`"http://apache.org/xml/features/pretty-print/space-first-level-elements"`
  `true`
    [optional] (default) Setting this feature to true will add an extra line feed between the elements that are children of the document root.
  `false`
    [required] Don't add the extra line feed.

See also the Document Object Model (DOM) Level 3 Load and Save Specification.

Since:
  DOM Level 3

DOMLSSerializerFilter provide applications the ability to examine nodes as they are being serialized.

DOMLSSerializerFilter lets the application decide what nodes should be serialized or not.

The DOMDocument, DOMDocumentType, DOMNotation, and DOMEntity nodes are not passed to the filter.

Since:
  DOM Level 3

## Typedef Documentation

typedef DOMAttr* xercesc::DOMAttrSPtr

typedef DOMElement* xercesc::DOMElementSPtr

typedef DOMNode* xercesc::DOMNodeSPtr

## Function Documentation

xercesc::MakeXMLException | ( | XMLPlatformUtilsException | ,
|  | XMLUTIL_EXPORT |  |
| ) |  |  |