#include <xml/dom/xmlengdocument.h>
class RXmlEngDocument : public TXmlEngNode |
Protected Attributes | |
---|---|
RXmlEngDOMImplementation * | iImpl |
Protected Member Functions | |
---|---|
RXmlEngDocument(void *) | |
TXmlEngNode | CopyL() |
void | Remove() |
void | ReplaceWith(TXmlEngNode) |
void | ReplaceWithL(TXmlEngNode) |
TXmlEngNode | SubstituteForL(TXmlEngNode) |
Inherited Attributes | |
---|---|
TXmlEngNode::iInternal |
Inherited Enumerations | |
---|---|
TXmlEngNode:TXmlEngDOMNodeType |
This class represents an XML document in the DOM tree. It stores all nodes and associated information about the XML document.
This class implements the interface. Another class, RXmlEngDOMImplementation, provides the implementation. An instance of RXmlEngDOMImplementation must be constructed and opened first and passed to RXmlEngDocument::OpenL().
IMPORT_C | RXmlEngDocument | ( | ) |
Default constructor. An instance of RXmlEngDocument must be "opened" with one of OpenL() overloads before methods are invoked on the object.
RXmlEngDocument | ( | void * | aInternal | ) | [protected, inline] |
Constructor
Parameter | Description |
---|---|
aInternal | Document pointer |
IMPORT_C TXmlEngNode | AdoptNodeL | ( | TXmlEngNode | aSource | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aSource | Node that should be added. |
Returns: Adopted node
IMPORT_C RXmlEngDocument | CloneDocumentL | ( | ) | const |
Creates a complete copy of the document and transfers ownership to the caller. The caller is required to call Close() on the new document. The new document is independant from this document and this document may be changed or closed without affecting the new document.
One of the system-wide error codes
Returns: Complete copy of the document
IMPORT_C void | Close | ( | ) |
Closes document: All owned nodes, child nodes, and namespaces are freed. All data containers on the data container list are freed.
TXmlEngNode | CopyL | ( | ) | const [protected, inline] |
Reimplemented from TXmlEngNode::CopyL()const
DISABLED for document; CloneDocumentL() must be used
IMPORT_C TXmlEngAttr | CreateAttributeL | ( | const TDesC8 & | aName, |
const TDesC8 & | aValue = KNullDesC8 | |||
) |
Creates a new attribute.
aValue should represent the correct value of an attribute if it is put as-is into an XML file (with all characters correctly escaped with entity references when XML spec requires)
The TXmlEngElement class provides a rich set of attribute creation methods, which not only create attributes but also link them into elements.
See also: TXmlEngElement
There is no way to create attributes with namespaces (despite the DOM spec); you have to use one of the TXmlEngElement::AddNewAttributeL(..) methods instead
The returned attribute is the only reference to the allocated memory until you have attached the attribute to some element node.
One of the system-wide error codes
Parameter | Description |
---|---|
aName | Name of the atribute; no prefix allowed |
aValue | Value of the attribute (optional) |
Returns: The newly created attribute
IMPORT_C TXmlEngBinaryContainer | CreateBinaryContainerL | ( | const TDesC8 & | aCid, |
const TDesC8 & | aData | |||
) |
Creates a new binary container and copies the specified cid and data into it. A pointer to the container is stored in the document's data container list that can be fetched using GetDataContainerList().
See also: GetDataContainerList( RArray<TXmlEngDataContainer>& aList )
One of the system-wide error codes
Parameter | Description |
---|---|
aCid | Content identifier |
aData | Binary octets |
Returns: The new binary container
IMPORT_C TXmlEngCDATASection | CreateCDATASectionL | ( | const TDesC8 & | aContents = KNullDesC8 | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aContents | CDATASection content |
Returns: The created node
IMPORT_C TXmlEngChunkContainer | CreateChunkContainerL | ( | const TDesC8 & | aCid, |
const RChunk & | aChunk, | |||
const TInt | aChunkOffset, | |||
const TInt | aDataSize | |||
) |
Creates a new chunk container and copies the specified cid into it. A reference to a memory chunk is stored in the container. The memory chunk must stay in scope for the lifetime of the container. A pointer to the container is stored in the document's data container list that can be fetched using GetDataContainerList().
See also: GetDataContainerList( RArray<TXmlEngDataContainer>& aList )
One of the system-wide error codes
Parameter | Description |
---|---|
aCid | Content identifier |
aChunk | RChunk reference |
aChunkOffset | Offset to the binary data in aChunk |
aDataSize | Size of binary data in aChunk |
Returns: The new chunk container
IMPORT_C TXmlEngComment | CreateCommentL | ( | const TDesC8 & | aText = KNullDesC8 | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aText | New comment |
Returns: The created node
IMPORT_C TXmlEngElement | CreateDocumentElementL | ( | const TDesC8 & | aName, |
const TDesC8 & | aNamespaceUri = KNullDesC8 , | |||
const TDesC8 & | aPrefix = KNullDesC8 | |||
) |
Creates a new element from a specific namespace to be the root of the document tree. Any existing document element of the document is destroyed.
One of the system-wide error codes
Parameter | Description |
---|---|
aName | Element name |
aNamespaceUri | Element namespace URI |
aPrefix | Element namemespace prefix |
Returns: The new root element
IMPORT_C TXmlEngDocumentFragment | CreateDocumentFragmentL | ( | ) |
One of the system-wide error codes
Returns: The created document fragment
IMPORT_C TXmlEngElement | CreateElementL | ( | const TDesC8 & | aLocalName, |
const TDesC8 & | aNamespaceUri = KNullDesC8 , | |||
const TDesC8 & | aPrefix = KNullDesC8 | |||
) |
Creates a new element node that belongs to the specific namespace. A namespace declaration node is created on the element.
If the provided namespace uri is NULL, the element will be created without namespace.
One of the system-wide error codes
Parameter | Description |
---|---|
aLocalName | Local name of the element |
aNamespaceUri | Namespace of new element |
aPrefix | Prefix to use for the namespace binding and the QName of the element |
Returns: The created element
IMPORT_C TXmlEngEntityReference | CreateEntityReferenceL | ( | const TDesC8 & | aEntityRef | ) |
Creates a new entity reference node and copies the specified string into it.
Note: < , > , ' , " and other predefined entity references should not be created with this method. These entity references are rather "character references" and are encoded/decoded automatically.
One of the system-wide error codes
Parameter | Description |
---|---|
aEntityRef | is a string in one of these forms:name&namewhere name is the name of the entity |
Returns: The new entity reference
IMPORT_C TXmlEngFileContainer | CreateFileContainerL | ( | const TDesC8 & | aCid, |
const RFile & | aFile | |||
) |
Creates a new file container and copies the specified cid into it. A reference to a file is stored in the container. aFile must stay in scope of the lifetime of the container. A pointer to the container is stored in the document's data container list that can be fetched using GetDataContainerList().
See also: GetDataContainerList( RArray<TXmlEngDataContainer>& aList )
One of the system-wide error codes
Parameter | Description |
---|---|
aCid | Content identifier |
aFile | The file to reference |
Returns: The new file container
IMPORT_C TXmlEngProcessingInstruction | CreateProcessingInstructionL | ( | const TDesC8 & | aTarget, |
const TDesC8 & | aData = KNullDesC8 | |||
) |
Creates a new processing instruction node and copies "target" and "data" into it.
One of the system-wide error codes
Parameter | Description |
---|---|
aTarget | Target |
aData | Data |
Returns: The created processing instruction
IMPORT_C TXmlEngTextNode | CreateTextNodeL | ( | const TDesC8 & | aCharacters = KNullDesC8 | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aCharacters | Text node content |
Returns: The created node
IMPORT_C TXmlEngElement | DocumentElement | ( | ) | const |
Get the document element
Returns: The document element -- the top-most element in the document tree
IMPORT_C TPtrC8 | DocumentUri | ( | ) | const |
Retrieves base URI (if defined) of the document
Returns: Document URI or TPtrC8("") if none.
IMPORT_C TXmlEngElement | FindElementByXmlIdL | ( | const TDesC8 & | aValue | ) | const |
One of the system-wide error codes
Parameter | Description |
---|---|
aValue | Name of attribute |
Returns: The found element or a NULL element if not found
IMPORT_C TInt | GetDataContainerList | ( | RArray< TXmlEngDataContainer > & | aList | ) |
Retrieves an array of data containers owned by this document.
Note: The document ceases to be the owner of a data container when the data container (or one of its predecessors) is removed from the document or becomes part of another document. Unlinking a data container (or one of its predecessors) doesn't remove ownership of the data container from this document so the list might contain containers that are not linked to this document anymore.
Parameter | Description |
---|---|
aList | Array of data containers |
Returns: KErrNone if successful or one of the system wide error codes otherwise
IMPORT_C RXmlEngDOMImplementation | Implementation | ( | ) | const |
Get the DOM implementation. Ownership is not transferred. Any operation on the returned object will affect this document directly, in particular, a call to RXmlEngDOMImplementation::Close() will cause further operations on this document to fail.
Returns: Object that represents current DOM implementation
IMPORT_C TBool | IsStandalone | ( | ) | const |
Check if document is standalone
Returns: ETrue if standalone="true" was specified in the XML declaration in the source XML file.
IMPORT_C void | OpenL | ( | RXmlEngDOMImplementation & | aDOMImpl | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aDOMImpl | An opened DOM implementation object |
IMPORT_C void | OpenL | ( | RXmlEngDOMImplementation & | aDOMImpl, |
void * | aInternal | |||
) |
Opens the document, initializing it with the internal state pointer from another RXmlEngDocument. This document becomes an alias for the document whose state is represented by aInternal and a change in either document will be reflected in the other. Close() need only be called once, however, it is not an error to call Close() on each RXmlEngDocument.
One of the system-wide error codes
Parameter | Description |
---|---|
aDOMImpl | An opened DOM implementation object |
aInternal | The internal document state to initialize this object with |
IMPORT_C void | OpenL | ( | RXmlEngDOMImplementation & | aDOMImpl, |
TXmlEngElement | aRoot | |||
) |
Opens the document and adds aRoot as the root of the DOM tree. If aRoot is currently part of another document, it will be unlinked. Ownership is transferred to this document.
One of the system-wide error codes
Parameter | Description |
---|---|
aDOMImpl | An opened DOM implementation object |
aRoot | The element that will be the root of the DOM tree |
IMPORT_C void | RegisterXmlIdL | ( | TXmlEngElement | aStartElement, |
const TDesC8 & | aLocalName, | |||
const TDesC8 & | aNamespaceUri = KNullDesC8 | |||
) |
Sets the specified attribute as a xml:id attribute, starting at aStartElement and recursing through the subtree. To set the specified attribute as a xml:id attribute for the entire DOM tree, see RegisterXmlId(const TDesC8&,const TDesC8&).
One of the system-wide error codes
Parameter | Description |
---|---|
aStartElement | Root of the subtree to recurse |
aLocalName | Name of the attribute |
aNamespaceUri | Namespace of the new element (default empty) |
IMPORT_C void | RegisterXmlIdL | ( | const TDesC8 & | aLocalName, |
const TDesC8 & | aNamespaceUri = KNullDesC8 | |||
) |
Sets the specified attribute as a xml:id attribute, recursing through the entire DOM tree. In order to specify a subtree only, see RegisterXmlId(TXmlEngElement,const TDesC8,const TDesC8).
One of the system-wide error codes
Parameter | Description |
---|---|
aLocalName | Name of attribute |
aNamespaceUri | Namespace of new element (default empty) |
void | Remove | ( | ) | [protected, inline] |
Reimplemented from TXmlEngNode::Remove()
DISABLED for document; Close() must be used
void | ReplaceWith | ( | TXmlEngNode | aNode | ) | [protected, inline] |
Reimplemented from TXmlEngNode::ReplaceWith(TXmlEngNode)
DISABLED for document; Close() must be used
void | ReplaceWithL | ( | TXmlEngNode | aNode | ) | [protected, inline] |
Reimplemented from TXmlEngNode::ReplaceWithL(TXmlEngNode)
This node is replaced with another node (or subtree). The replacement node is linked into the document tree instead of this node. The replaced node is destroyed. Replacement of a node with a NULL TXmlEngNode is legal and equivalent to removing the node.
aNode is unlinked from its previous location, which can be none (i.e. not linked), within the same document tree, or within another document tree.
Note: Not applicable to document nodes.
See also: SubstituteForL(TXmlEngNode)
One of the system-wide error codes
Parameter | Description |
---|---|
aNode | Node that replaces this node |
IMPORT_C TInt | SaveL | ( | const TDesC & | aFileName, |
TXmlEngNode | aRoot = TXmlEngNode(), | |||
const TXmlEngSerializationOptions & | aSaveOptions = TXmlEngSerializationOptions() | |||
) | const |
Serializes document tree into a file. For nodes containing binary data in the form of BinaryDataContainer, FileContainer or ChunkContainer, the client can implement custom serialization by implementing the MXmlEngDataSerializer interface and saving a pointer to the customer serializer in the iDataSerializer member of the aSaveOptions parameter. If no custom serialization is specified, the binary data container nodes are serialized like text nodes.
If no aRoot is provided, the entire DOM tree is serialized. aRoot does not need to be owned by this document.
One of the system-wide error codes
Parameter | Description |
---|---|
aFileName | A file name (with path) |
aRoot | Root node to be serialized |
aSaveOptions | Options that control how serialization is performed |
Returns: Number of bytes written
IMPORT_C TInt | SaveL | ( | RFs & | aRFs, |
const TDesC & | aFileName, | |||
TXmlEngNode | aRoot = TXmlEngNode(), | |||
const TXmlEngSerializationOptions & | aSaveOptions = TXmlEngSerializationOptions() | |||
) | const |
Serializes document tree into a file. For nodes containing binary data in the form of BinaryDataContainer, FileContainer or ChunkContainer, the client can implement custom serialization by implementing the MXmlEngDataSerializer interface and saving a pointer to the customer serializer in the iDataSerializer member of the aSaveOptions parameter. If no custom serialization is specified, the binary data container nodes are serialized like text nodes.
If no aRoot is provided, the entire DOM tree is serialized. aRoot does not need to be owned by this document.
One of the system-wide error codes
Parameter | Description |
---|---|
aRFs | An open file Server session |
aFileName | A file name (with path) |
aRoot | Root node to be serialized |
aSaveOptions | Options that control how serialization is performed |
Returns: Number of bytes written
IMPORT_C TInt | SaveL | ( | MXmlEngOutputStream & | aStream, |
TXmlEngNode | aRoot = TXmlEngNode(), | |||
const TXmlEngSerializationOptions & | aSaveOptions = TXmlEngSerializationOptions() | |||
) | const |
Serializes document tree into provided output stream, which supports progressive writing of data. For nodes containing binary data in the form of BinaryDataContainer, FileContainer or ChunkContainer, the client can implement custom serialization by implementing the MXmlEngDataSerializer interface and saving a pointer to the customer serializer in the iDataSerializer member of the aSaveOptions parameter. If no custom serialization is specified, the binary data container nodes are serialized like text nodes.
If no aRoot is provided, the entire DOM tree is serialized. aRoot does not need to be owned by this document.
One of the system-wide error codes
Parameter | Description |
---|---|
aStream | An output stream to write the serialized DOM tree |
aRoot | Root node to be serialized |
aSaveOptions | Options that control how serialization is performed |
Returns: Number of bytes written
IMPORT_C TInt | SaveL | ( | RBuf8 & | aBuffer, |
TXmlEngNode | aRoot = TXmlEngNode(), | |||
const TXmlEngSerializationOptions & | aSaveOptions = TXmlEngSerializationOptions() | |||
) | const |
Saves document tree into memory buffer.
Any existing contents in aBuffer will be deleted. The memory required for aBuffer will be allocated by this method. The method caller must Close() aBuffer.
If no aRoot is provided, the entire DOM tree is serialized. aRoot does not need to be owned by this document.
One of the system-wide error codes
Parameter | Description |
---|---|
aBuffer | Resulting buffer |
aRoot | The root of the subtree to serialize |
aSaveOptions | Options that control how serialization is performed |
Returns: Size of buffer
IMPORT_C void | SetDocumentElement | ( | TXmlEngElement | aNewDocElement | ) |
Replaces (and destroys) the document element.
Note: Use TXmlEngElement::ReconcileNamespacesL() on the new document element if it or its descendants can contain references to namespace declarations outside of the element.
See also: TXmlEngElement::ReconcileNamespacesL()
Parameter | Description |
---|---|
aNewDocElement | New document element |
IMPORT_C void | SetDocumentUriL | ( | const TDesC8 & | aUri | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aUri | Document URI |
IMPORT_C void | SetStandalone | ( | TBool | aStandalone | ) |
Sets "standalone" attribute of XML declaration for the document
Parameter | Description |
---|---|
aStandalone | Is the document standalone |
IMPORT_C void | SetXmlVersionL | ( | const TDesC8 & | aVersion | ) |
One of the system-wide error codes
Parameter | Description |
---|---|
aVersion | Version string |
TXmlEngNode | SubstituteForL | ( | TXmlEngNode | aNode | ) | [protected, inline] |
Reimplemented from TXmlEngNode::SubstituteForL(TXmlEngNode)
DISABLED for document; Close() must be used
IMPORT_C TPtrC8 | XmlEncoding | ( | ) | const |
Get document encoding.
Returns: Encoding of the source XML data or TPtrC8("") if none.
IMPORT_C TPtrC8 | XmlVersion | ( | ) | const |
Get xml version
Returns: Version number reported by the XML declaration or TPtrC8("") if none.