RXmlEngDocument Class Reference

class RXmlEngDocument : public TXmlEngNode

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().

Inherits from

Public Member Functions
RXmlEngDocument()
IMPORT_C TXmlEngNodeAdoptNodeL(TXmlEngNode)
IMPORT_C RXmlEngDocumentCloneDocumentL()
IMPORT_C voidClose()
IMPORT_C TXmlEngAttrCreateAttributeL(const TDesC8 &, const TDesC8 &)
IMPORT_C TXmlEngBinaryContainerCreateBinaryContainerL(const TDesC8 &, const TDesC8 &)
IMPORT_C TXmlEngCDATASectionCreateCDATASectionL(const TDesC8 &)
IMPORT_C TXmlEngChunkContainerCreateChunkContainerL(const TDesC8 &, const RChunk &, const TInt, const TInt)
IMPORT_C TXmlEngCommentCreateCommentL(const TDesC8 &)
IMPORT_C TXmlEngElementCreateDocumentElementL(const TDesC8 &, const TDesC8 &, const TDesC8 &)
IMPORT_C TXmlEngDocumentFragmentCreateDocumentFragmentL()
IMPORT_C TXmlEngElementCreateElementL(const TDesC8 &, const TDesC8 &, const TDesC8 &)
IMPORT_C TXmlEngEntityReferenceCreateEntityReferenceL(const TDesC8 &)
IMPORT_C TXmlEngFileContainerCreateFileContainerL(const TDesC8 &, const RFile &)
IMPORT_C TXmlEngProcessingInstructionCreateProcessingInstructionL(const TDesC8 &, const TDesC8 &)
IMPORT_C TXmlEngTextNodeCreateTextNodeL(const TDesC8 &)
IMPORT_C TXmlEngElementDocumentElement()
IMPORT_C TPtrC8DocumentUri()
IMPORT_C TXmlEngElementFindElementByXmlIdL(const TDesC8 &)
IMPORT_C TIntGetDataContainerList(RArray< TXmlEngDataContainer > &)
IMPORT_C RXmlEngDOMImplementationImplementation()
IMPORT_C TBoolIsStandalone()
IMPORT_C voidOpenL(RXmlEngDOMImplementation &)
IMPORT_C voidOpenL(RXmlEngDOMImplementation &, void *)
IMPORT_C voidOpenL(RXmlEngDOMImplementation &, TXmlEngElement)
IMPORT_C voidRegisterXmlIdL(TXmlEngElement, const TDesC8 &, const TDesC8 &)
IMPORT_C voidRegisterXmlIdL(const TDesC8 &, const TDesC8 &)
IMPORT_C TIntSaveL(const TDesC &, TXmlEngNode, const TXmlEngSerializationOptions &)
IMPORT_C TIntSaveL(RFs &, const TDesC &, TXmlEngNode, const TXmlEngSerializationOptions &)
IMPORT_C TIntSaveL(MXmlEngOutputStream &, TXmlEngNode, const TXmlEngSerializationOptions &)
IMPORT_C TIntSaveL(RBuf8 &, TXmlEngNode, const TXmlEngSerializationOptions &)
IMPORT_C voidSetDocumentElement(TXmlEngElement)
IMPORT_C voidSetDocumentUriL(const TDesC8 &)
IMPORT_C voidSetStandalone(TBool)
IMPORT_C voidSetXmlVersionL(const TDesC8 &)
IMPORT_C TPtrC8XmlEncoding()
IMPORT_C TPtrC8XmlVersion()
Protected Member Functions
RXmlEngDocument(void *)
TXmlEngNode CopyL()
voidRemove()
voidReplaceWith(TXmlEngNode)
voidReplaceWithL(TXmlEngNode)
TXmlEngNode SubstituteForL(TXmlEngNode)
Private Member Functions
voidInitOwnedNodeListL()
voidRemoveOwnership(TXmlEngNode)
TInt SaveNodeL(TXmlEngNode, RBuf8 &, MXmlEngOutputStream *, TXmlEngSerializationOptions)
voidTakeOwnership(TXmlEngNode)
Inherited Functions
TXmlEngNode::AddUserData(MXmlEngUserData *)
TXmlEngNode::AppendChildL(TXmlEngNode)
TXmlEngNode::AsAttr()const
TXmlEngNode::AsBinaryContainer()const
TXmlEngNode::AsCDATASection()const
TXmlEngNode::AsChunkContainer()const
TXmlEngNode::AsComment()const
TXmlEngNode::AsDataContainer()const
TXmlEngNode::AsDocumentFragment()const
TXmlEngNode::AsElement()const
TXmlEngNode::AsEntityReference()const
TXmlEngNode::AsFileContainer()const
TXmlEngNode::AsNamespace()const
TXmlEngNode::AsProcessingInstruction()const
TXmlEngNode::AsText()const
TXmlEngNode::BaseUriL(RBuf8 &)const
TXmlEngNode::CopyToL(TXmlEngNode)const
TXmlEngNode::DoUnlinkNode()
TXmlEngNode::FirstChild()const
TXmlEngNode::GetChildNodes(RXmlEngNodeList< TXmlEngNode > &)const
TXmlEngNode::HasAttributes()const
TXmlEngNode::HasChildNodes()const
TXmlEngNode::InnerXmlL(RBuf8 &)
TXmlEngNode::IsDefaultNamespaceL(const TDesC8 &)const
TXmlEngNode::IsNull()const
TXmlEngNode::IsSameNode(TXmlEngNode)const
TXmlEngNode::IsSimpleTextContents()const
TXmlEngNode::LastChild()const
TXmlEngNode::LinkBefore(TXmlEngNode)
TXmlEngNode::LookupNamespaceUriL(const TDesC8 &)const
TXmlEngNode::LookupPrefixL(const TDesC8 &)const
TXmlEngNode::MoveAfterSibling(TXmlEngNode)
TXmlEngNode::MoveBeforeSibling(TXmlEngNode)
TXmlEngNode::MoveTo(TXmlEngNode)
TXmlEngNode::MoveToL(TXmlEngNode)
TXmlEngNode::Name()const
TXmlEngNode::NamespaceDeclaration()const
TXmlEngNode::NamespaceUri()const
TXmlEngNode::NextSibling()const
TXmlEngNode::NodeType()const
TXmlEngNode::NotNull()const
TXmlEngNode::OuterXmlL(RBuf8 &)
TXmlEngNode::OwnerDocument()const
TXmlEngNode::ParentNode()const
TXmlEngNode::Prefix()const
TXmlEngNode::PreviousSibling()const
TXmlEngNode::ReconcileNamespacesL()
TXmlEngNode::RemoveUserData()
TXmlEngNode::SetAsFirstSibling()
TXmlEngNode::SetAsLastSibling()
TXmlEngNode::SetValueL(const TDesC8 &)
TXmlEngNode::TXmlEngNode()
TXmlEngNode::TXmlEngNode(void *)
TXmlEngNode::Unlink()
TXmlEngNode::UserData()const
TXmlEngNode::Value()const
TXmlEngNode::WholeTextContentsCopyL(RBuf8 &)const
Inherited Enumerations
TXmlEngNode:TXmlEngDOMNodeType
Protected Attributes
RXmlEngDOMImplementation *iImpl
Inherited Attributes
TXmlEngNode::iInternal

Constructor & Destructor Documentation

RXmlEngDocument()

IMPORT_CRXmlEngDocument()

Default constructor. An instance of RXmlEngDocument must be "opened" with one of OpenL() overloads before methods are invoked on the object.

RXmlEngDocument(void *)

RXmlEngDocument(void *aInternal)[protected, inline]

Constructor

Parameters

void * aInternalDocument pointer

Member Functions Documentation

AdoptNodeL(TXmlEngNode)

IMPORT_C TXmlEngNodeAdoptNodeL(TXmlEngNodeaSource)

Sets the "document" property on the node and all its descendants to be this RXmlEngDocument node Adopted node

leave

KXmlEngErrWrongUseOfAPI The node has a parent node, the node is already owned by this document, or the node is a document.

leave

  • One of the system-wide error codes

Parameters

TXmlEngNode aSourceNode that should be added.

CloneDocumentL()

IMPORT_C RXmlEngDocumentCloneDocumentL()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.

Complete copy of the document

leave

  • One of the system-wide error codes

Close()

IMPORT_C voidClose()

Closes document: All owned nodes, child nodes, and namespaces are freed. All data containers on the data container list are freed.

CopyL()

TXmlEngNode CopyL()const [protected, inline]

DISABLED for document; CloneDocumentL() must be used

CreateAttributeL(const TDesC8 &, const TDesC8 &)

IMPORT_C TXmlEngAttrCreateAttributeL(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.

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.

The newly created attribute

leave

KXmlEngErrWrongUseOfAPI No name specified

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aNameName of the atribute; no prefix allowed
const TDesC8 & aValue =  KNullDesC8 Value of the attribute (optional)

CreateBinaryContainerL(const TDesC8 &, const TDesC8 &)

IMPORT_C TXmlEngBinaryContainerCreateBinaryContainerL(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().

GetDataContainerList( RArray<TXmlEngDataContainer>& aList )

The new binary container

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aCidContent identifier
const TDesC8 & aDataBinary octets

CreateCDATASectionL(const TDesC8 &)

IMPORT_C TXmlEngCDATASectionCreateCDATASectionL(const TDesC8 &aContents =  KNullDesC8 )

Creates a new CDATA section node and copies the specified string into it. The created node

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aContents =  KNullDesC8 CDATASection content

CreateChunkContainerL(const TDesC8 &, const RChunk &, const TInt, const TInt)

IMPORT_C TXmlEngChunkContainerCreateChunkContainerL(const TDesC8 &aCid,
const RChunk &aChunk,
const TIntaChunkOffset,
const TIntaDataSize
)

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().

GetDataContainerList( RArray<TXmlEngDataContainer>& aList )

The new chunk container

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aCidContent identifier
const RChunk & aChunkRChunk reference
const TInt aChunkOffsetOffset to the binary data in aChunk
const TInt aDataSizeSize of binary data in aChunk

CreateCommentL(const TDesC8 &)

IMPORT_C TXmlEngCommentCreateCommentL(const TDesC8 &aText =  KNullDesC8 )

Creates a new comment node and copies the specified string into it. The created node

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aText =  KNullDesC8 New comment

CreateDocumentElementL(const TDesC8 &, const TDesC8 &, const TDesC8 &)

IMPORT_C TXmlEngElementCreateDocumentElementL(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.

The new root element

leave

KXmlEngErrWrongUseOfAPI No name has been specified

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aNameElement name
const TDesC8 & aNamespaceUri =  KNullDesC8 Element namespace URI
const TDesC8 & aPrefix =  KNullDesC8 Element namemespace prefix

CreateDocumentFragmentL()

IMPORT_C TXmlEngDocumentFragmentCreateDocumentFragmentL()

Creates a new empty Document Fragment node. The document fragment is owned by this document. The created document fragment

leave

  • One of the system-wide error codes

CreateElementL(const TDesC8 &, const TDesC8 &, const TDesC8 &)

IMPORT_C TXmlEngElementCreateElementL(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.

The created element

leave

KXmlEngErrWrongUseOfAPI No name specified

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aLocalNameLocal name of the element
const TDesC8 & aNamespaceUri =  KNullDesC8 Namespace of new element
const TDesC8 & aPrefix =  KNullDesC8 Prefix to use for the namespace binding and the QName of the element

CreateEntityReferenceL(const TDesC8 &)

IMPORT_C TXmlEngEntityReferenceCreateEntityReferenceL(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.

The new entity reference

leave

KXmlEngErrWrongUseOfAPI No entity specified

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aEntityRefis a string in one of these forms:name&namewhere name is the name of the entity

CreateFileContainerL(const TDesC8 &, const RFile &)

IMPORT_C TXmlEngFileContainerCreateFileContainerL(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().

GetDataContainerList( RArray<TXmlEngDataContainer>& aList )

The new file container

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aCidContent identifier
const RFile & aFileThe file to reference

CreateProcessingInstructionL(const TDesC8 &, const TDesC8 &)

IMPORT_C TXmlEngProcessingInstructionCreateProcessingInstructionL(const TDesC8 &aTarget,
const TDesC8 &aData =  KNullDesC8
)

Creates a new processing instruction node and copies "target" and "data" into it.

The created processing instruction

leave

KXmlEngErrWrongUseOfAPI No target specified

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aTargetTarget
const TDesC8 & aData =  KNullDesC8 Data

CreateTextNodeL(const TDesC8 &)

IMPORT_C TXmlEngTextNodeCreateTextNodeL(const TDesC8 &aCharacters =  KNullDesC8 )

Creates a new text node and copies the content string into it. The created node

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aCharacters =  KNullDesC8 Text node content

DocumentElement()

IMPORT_C TXmlEngElementDocumentElement()const

Get the document element The document element -- the top-most element in the document tree

DocumentUri()

IMPORT_C TPtrC8DocumentUri()const

Retrieves base URI (if defined) of the document Document URI or TPtrC8("") if none.

FindElementByXmlIdL(const TDesC8 &)

IMPORT_C TXmlEngElementFindElementByXmlIdL(const TDesC8 &aValue)const

Looks for an element with the specified xml:id attribute The found element or a NULL element if not found

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aValueName of attribute

GetDataContainerList(RArray< TXmlEngDataContainer > &)

IMPORT_C TIntGetDataContainerList(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.

KErrNone if successful or one of the system wide error codes otherwise

Parameters

RArray< TXmlEngDataContainer > & aListArray of data containers

Implementation()

IMPORT_C RXmlEngDOMImplementationImplementation()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.

Object that represents current DOM implementation

InitOwnedNodeListL()

voidInitOwnedNodeListL()[private]

IsStandalone()

IMPORT_C TBoolIsStandalone()const

Check if document is standalone ETrue if standalone="true" was specified in the XML declaration in the source XML file.

OpenL(RXmlEngDOMImplementation &)

IMPORT_C voidOpenL(RXmlEngDOMImplementation &aDOMImpl)

Opens the document. leave

  • One of the system-wide error codes

Parameters

RXmlEngDOMImplementation & aDOMImplAn opened DOM implementation object

OpenL(RXmlEngDOMImplementation &, void *)

IMPORT_C voidOpenL(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.

leave

  • One of the system-wide error codes

Parameters

RXmlEngDOMImplementation & aDOMImplAn opened DOM implementation object
void * aInternalThe internal document state to initialize this object with

OpenL(RXmlEngDOMImplementation &, TXmlEngElement)

IMPORT_C voidOpenL(RXmlEngDOMImplementation &aDOMImpl,
TXmlEngElementaRoot
)

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.

leave

  • One of the system-wide error codes

Parameters

RXmlEngDOMImplementation & aDOMImplAn opened DOM implementation object
TXmlEngElement aRootThe element that will be the root of the DOM tree

RegisterXmlIdL(TXmlEngElement, const TDesC8 &, const TDesC8 &)

IMPORT_C voidRegisterXmlIdL(TXmlEngElementaStartElement,
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&).

leave

KXmlEngErrWrongUseOfAPI The starting element is NULL, the attribute name is not specified, the starting element is the document, or the starting element does not belong to a document.

leave

KErrAlreadyExists The attribute is already set to be xml:id

leave

  • One of the system-wide error codes

Parameters

TXmlEngElement aStartElementRoot of the subtree to recurse
const TDesC8 & aLocalNameName of the attribute
const TDesC8 & aNamespaceUri =  KNullDesC8 Namespace of the new element (default empty)

RegisterXmlIdL(const TDesC8 &, const TDesC8 &)

IMPORT_C voidRegisterXmlIdL(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).

leave

KXmlEngErrWrongUseOfAPI The document is NULL

leave

KErrAlreadyExists The attribute is already set to be xml:id

leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aLocalNameName of attribute
const TDesC8 & aNamespaceUri =  KNullDesC8 Namespace of new element (default empty)

Remove()

voidRemove()[protected, inline]

DISABLED for document; Close() must be used

RemoveOwnership(TXmlEngNode)

voidRemoveOwnership(TXmlEngNodeaNode)[private]

Parameters

TXmlEngNode aNode

ReplaceWith(TXmlEngNode)

voidReplaceWith(TXmlEngNodeaNode)[protected, inline]

DISABLED for document; Close() must be used

Parameters

TXmlEngNode aNode

ReplaceWithL(TXmlEngNode)

voidReplaceWithL(TXmlEngNodeaNode)[protected, inline]

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.

SubstituteForL(TXmlEngNode)

leave

KXmlEngErrNullNode Node is NULL

leave

KXmlEngErrWrongUseOfAPI Node is a document node

leave

  • One of the system-wide error codes

Parameters

TXmlEngNode aNodeNode that replaces this node

SaveL(const TDesC &, TXmlEngNode, const TXmlEngSerializationOptions &)

IMPORT_C TIntSaveL(const TDesC &aFileName,
TXmlEngNodeaRoot =  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.

Number of bytes written

leave

KXmlEngErrWrongEncoding Encoding not understood

leave

KXmlEngErrWrongUseOfAPI Document is NULL

leave

KXmlEngErrNegativeOutputSize The data to be serialized has a negative size

leave

  • One of the system-wide error codes

Parameters

const TDesC & aFileNameA file name (with path)
TXmlEngNode aRoot =  TXmlEngNode()Root node to be serialized
const TXmlEngSerializationOptions & aSaveOptions =  TXmlEngSerializationOptions()Options that control how serialization is performed

SaveL(RFs &, const TDesC &, TXmlEngNode, const TXmlEngSerializationOptions &)

IMPORT_C TIntSaveL(RFs &aRFs,
const TDesC &aFileName,
TXmlEngNodeaRoot =  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.

Number of bytes written

leave

KXmlEngErrWrongEncoding Encoding not understood

leave

KXmlEngErrWrongUseOfAPI Document is NULL

leave

KXmlEngErrNegativeOutputSize The data to be serialized has a negative size

leave

  • One of the system-wide error codes

Parameters

RFs & aRFsAn open file Server session
const TDesC & aFileNameA file name (with path)
TXmlEngNode aRoot =  TXmlEngNode()Root node to be serialized
const TXmlEngSerializationOptions & aSaveOptions =  TXmlEngSerializationOptions()Options that control how serialization is performed

SaveL(MXmlEngOutputStream &, TXmlEngNode, const TXmlEngSerializationOptions &)

IMPORT_C TIntSaveL(MXmlEngOutputStream &aStream,
TXmlEngNodeaRoot =  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.

Number of bytes written

leave

KXmlEngErrWrongEncoding Encoding not understood

leave

KXmlEngErrWrongUseOfAPI Document is NULL

leave

KXmlEngErrNegativeOutputSize The data to be serialized has a negative size

leave

  • One of the system-wide error codes

Parameters

MXmlEngOutputStream & aStreamAn output stream to write the serialized DOM tree
TXmlEngNode aRoot =  TXmlEngNode()Root node to be serialized
const TXmlEngSerializationOptions & aSaveOptions =  TXmlEngSerializationOptions()Options that control how serialization is performed

SaveL(RBuf8 &, TXmlEngNode, const TXmlEngSerializationOptions &)

IMPORT_C TIntSaveL(RBuf8 &aBuffer,
TXmlEngNodeaRoot =  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.

Size of buffer

leave

KXmlEngErrWrongEncoding Encoding not understood

leave

KXmlEngErrWrongUseOfAPI Document is NULL

leave

KXmlEngErrNegativeOutputSize The data to be serialized has a negative size

leave

  • One of the system-wide error codes

Parameters

RBuf8 & aBufferResulting buffer
TXmlEngNode aRoot =  TXmlEngNode()The root of the subtree to serialize
const TXmlEngSerializationOptions & aSaveOptions =  TXmlEngSerializationOptions()Options that control how serialization is performed

SaveNodeL(TXmlEngNode, RBuf8 &, MXmlEngOutputStream *, TXmlEngSerializationOptions)

TInt SaveNodeL(TXmlEngNodeaNode,
RBuf8 &aBuffer,
MXmlEngOutputStream *aOutputStream = NULL,
TXmlEngSerializationOptionsaOpt =  TXmlEngSerializationOptions()
)const [private]

Parameters

TXmlEngNode aNode
RBuf8 & aBuffer
MXmlEngOutputStream * aOutputStream = NULL
TXmlEngSerializationOptions aOpt =  TXmlEngSerializationOptions()

SetDocumentElement(TXmlEngElement)

IMPORT_C voidSetDocumentElement(TXmlEngElementaNewDocElement)

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.

TXmlEngElement::ReconcileNamespacesL()

Parameters

TXmlEngElement aNewDocElementNew document element

SetDocumentUriL(const TDesC8 &)

IMPORT_C voidSetDocumentUriL(const TDesC8 &aUri)

Sets the location of the document. The document's URI is used as the top-level base URI definition. leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aUriDocument URI

SetStandalone(TBool)

IMPORT_C voidSetStandalone(TBoolaStandalone)

Sets "standalone" attribute of XML declaration for the document

Parameters

TBool aStandaloneIs the document standalone

SetXmlVersionL(const TDesC8 &)

IMPORT_C voidSetXmlVersionL(const TDesC8 &aVersion)

Sets XML version number to be shown in XML declaration when document is serialized. leave

  • One of the system-wide error codes

Parameters

const TDesC8 & aVersionVersion string

SubstituteForL(TXmlEngNode)

TXmlEngNode SubstituteForL(TXmlEngNodeaNode)[protected, inline]

DISABLED for document; Close() must be used

Parameters

TXmlEngNode aNode

TakeOwnership(TXmlEngNode)

voidTakeOwnership(TXmlEngNodeaNode)[private]

Parameters

TXmlEngNode aNode

XmlEncoding()

IMPORT_C TPtrC8XmlEncoding()const

Get document encoding. Encoding of the source XML data or TPtrC8("") if none.

XmlVersion()

IMPORT_C TPtrC8XmlVersion()const

Get xml version Version number reported by the XML declaration or TPtrC8("") if none.

Member Data Documentation

RXmlEngDOMImplementation * iImpl

RXmlEngDOMImplementation *iImpl[protected]

Pointer to DOM implementation object