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 |
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.
Each implemented DOMImplementationSource
object is listed in the binding-specific list of available sources so that its DOMImplementation
objects are made available.
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.
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 "&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 < and &. The other predefined entities (>, &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 ". 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
false
"split-cdata-sections"
true
false
CDATASection
contains an unrepresentable character. "validation"
true
use-abstract-schema
to true
. false
"expand-entity-references"
true
EntityReference
nodes when serializing. false
EntityReference
nodes as XML entity references. "whitespace-in-element-content"
true
false
isWhitespaceInElementContent
flag on Text
nodes to determine if a text node should be written out or not. "discard-default-content"
true
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
"format-canonical"
true
false
"format-pretty-print"
true
false
"http://apache.org/xml/features/dom/byte-order-mark"
false
true
"http://apache.org/xml/features/pretty-print/space-first-level-elements"
true
false
See also the Document Object Model (DOM) Level 3 Load and Save Specification.
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.
typedef DOMAttr* xercesc::DOMAttrSPtr |
typedef DOMElement* xercesc::DOMElementSPtr |
typedef DOMNode* xercesc::DOMNodeSPtr |
xercesc::MakeXMLException | ( | XMLPlatformUtilsException | , | |
XMLUTIL_EXPORT | ||||
) |