class CXmlEngDeserializer : public CBase |
Provides deserialization and parsing for XML content using a SAX callback interface. Derived classes provide deserialization for specific formats, whereas this class defines the interface and provides default (plain XML) deserialization.
Deserialization generates SAX events that are passed to a MContentHandler.
For deserialization to a DOM tree, see CXmlEngDeserializerDOM. CXmlEngDeserializerDOM
Support for data stored outside the DOM tree, such as data linked by xop:include references, is provided. The external data must be set with UseExternalDataL() prior to deserialization. The data is then returned through the MContentHandler interface.
Public Member Functions | |
---|---|
~CXmlEngDeserializer() | |
IMPORT_C void | DeserializeL() |
IMPORT_C void | DeserializeL(const TDesC &, const TXmlEngParsingOptions &) |
IMPORT_C void | DeserializeL(RFs &, const TDesC &, const TXmlEngParsingOptions &) |
IMPORT_C void | DeserializeL(const TDesC8 &, const TXmlEngParsingOptions &) |
IMPORT_C TInt | DisableFeature(TInt) |
IMPORT_C TInt | EnableFeature(TInt) |
IMPORT_C RArray< TXmlEngDataContainer > * | ExternalData() |
TXmlEngDataContainer * | GetDataContainer(const TDesC8 &) |
IMPORT_C TBool | IsFeatureEnabled(TInt) |
IMPORT_C CXmlEngDeserializer * | NewL(Xml::MContentHandler &, TXmlEngDeserializerType) |
IMPORT_C const TXmlEngParsingOptions & | ParsingOptions() |
IMPORT_C void | SetContentHandlerL(Xml::MContentHandler &) |
IMPORT_C void | SetInputBuffer(const TDesC8 &) |
IMPORT_C void | SetInputFileL(const TDesC &) |
IMPORT_C void | SetParsingOptions(TXmlEngParsingOptions &) |
IMPORT_C void | UseExternalDataL(RArray< TXmlEngDataContainer > &) |
Private Member Functions | |
---|---|
CXmlEngDeserializer() | |
void | ConstructL(Xml::MContentHandler &) |
void | ConstructL | ( | Xml::MContentHandler & | aContentHandler | ) | [private, virtual] |
2nd phase constructor
Xml::MContentHandler & aContentHandler |
IMPORT_C void | DeserializeL | ( | ) | [virtual] |
Deserializes the file or buffer previously set by SetInputFileL() or SetInputBuffer().
The result of deserialization is passed to the content handler as SAX events.
leave
KXmlEngErrNoParameters No file or buffer has been previously set
leave
One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
IMPORT_C void | DeserializeL | ( | const TDesC & | aFileName, |
const TXmlEngParsingOptions & | aOptions = TXmlEngParsingOptions() | |||
) | [virtual] |
Deserializes the given file. Any filename previously set with SetInputFileL() is ignored.
The result of deserialization is passed to the content handler as SAX events.
leave
One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
const TDesC & aFileName | The file to be parsed |
const TXmlEngParsingOptions & aOptions = TXmlEngParsingOptions() | Parsing options |
IMPORT_C void | DeserializeL | ( | RFs & | aRFs, |
const TDesC & | aFileName, | |||
const TXmlEngParsingOptions & | aOptions = TXmlEngParsingOptions() | |||
) | [virtual] |
Deserializes the given file. Any filename previously set with SetInputFileL() is ignored.
The result of deserialization is passed to the content handler as SAX events.
leave
One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
RFs & aRFs | File Server session |
const TDesC & aFileName | The file to be parsed |
const TXmlEngParsingOptions & aOptions = TXmlEngParsingOptions() | Parsing options |
IMPORT_C void | DeserializeL | ( | const TDesC8 & | aBuffer, |
const TXmlEngParsingOptions & | aOptions = TXmlEngParsingOptions() | |||
) | [virtual] |
Deserializes the given buffer. Any buffer previously set with SetInputBuffer() is ignored.
The result of deserialization is passed to the content handler as SAX events.
leave
One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
const TDesC8 & aBuffer | The buffer to be parsed |
const TXmlEngParsingOptions & aOptions = TXmlEngParsingOptions() | Parsing options |
IMPORT_C TInt | DisableFeature | ( | TInt | aParserFeature | ) | [virtual] |
Disables parser features.
Xml::CParser::DisableFeature()
Xml::CParser::TParserFeature
KErrNone if successful, otherwise one of the system-wide error codes
TInt aParserFeature | The parser feature to disable |
IMPORT_C TInt | EnableFeature | ( | TInt | aParserFeature | ) | [virtual] |
Enables parser features.
Xml::CParser::TParserFeature
KErrNone if successful, otherwise one of the system-wide error codes
TInt aParserFeature | The parser feature to enable |
IMPORT_C RArray< TXmlEngDataContainer > * | ExternalData | ( | ) |
Gets the list of external data containers. The list of data containers or NULL if no external data is registered
TXmlEngDataContainer * | GetDataContainer | ( | const TDesC8 & | aCid | ) |
Retrieves a pointer to the data container referenced by CID. The data container or NULL if no matching container is found
const TDesC8 & aCid | The aCid corresponding to the data container required |
IMPORT_C TBool | IsFeatureEnabled | ( | TInt | aParserFeature | ) | const [virtual] |
Checks if a parser feature is enabled.
Xml::CParser::IsFeatureEnabled()
Xml::CParser::TParserFeature
ETrue if feature is enabled, otherwise EFalse
TInt aParserFeature | The parser feature to check |
IMPORT_C CXmlEngDeserializer * | NewL | ( | Xml::MContentHandler & | aContentHandler, |
TXmlEngDeserializerType | aType = EDeserializerDefault | |||
) | [static] |
Creates a deserializer of the given type. Returns an instance of this class or a derived class.
The deserializer
leave
One of the system-wide error codes
Xml::MContentHandler & aContentHandler | |
TXmlEngDeserializerType aType = EDeserializerDefault | Deserializer type |
IMPORT_C const TXmlEngParsingOptions & | ParsingOptions | ( | ) | [virtual] |
Gets the parsing options The parsing options
IMPORT_C void | SetContentHandlerL | ( | Xml::MContentHandler & | aContentHandler | ) | [virtual] |
Sets the content handler which handles SAX events raised during deserialization. Clients must derive from Xml::MContentHandler in order to receive SAX callbacks.
leave
One of the system-wide error codes
Xml::MContentHandler & aContentHandler | The content handler |
IMPORT_C void | SetInputBuffer | ( | const TDesC8 & | aBuffer | ) |
Sets the input type to buffer and saves the buffer for later deserialization.
const TDesC8 & aBuffer | The buffer to deserialize |
IMPORT_C void | SetInputFileL | ( | const TDesC & | aFileName | ) |
Sets the input type to file and saves the file name for later deserialization. leave
One of the system-wide error codes
const TDesC & aFileName | The file name of the file to deserialize |
IMPORT_C void | SetParsingOptions | ( | TXmlEngParsingOptions & | aOptions | ) | [virtual] |
Sets parsing options used for deserialization.
TXmlEngParsingOptions & aOptions | Parsing options to set. A copy of the options is stored. |
IMPORT_C void | UseExternalDataL | ( | RArray< TXmlEngDataContainer > & | aList | ) |
Sets a list of data containers and indicates that the XML to be deserialized contains references (such as xop:include) to data stored outside the DOM tree.
Upon deserialization, the references are substituted with the matching data containers and returned via the content handler.
This often occurs when a multipart MIME message is received. The text XML content may be in one part, while the binary content is in another part. Each part containing binary content must be placed into a data container using RXmlEngDocument::CreateBinaryContainerL() or similar. When deserialization of the XML occurs, the data containers are retrieved by content-id.
Ownership is not transferred and the list must stay in scope for the lifetime of the deserializer.
leave
Any system-wide error code
RArray< TXmlEngDataContainer > & aList | The list of data containers |
RArray< TXmlEngDataContainer > * | iDataList | [private] |
Array of external data
TXmlEngParsingOptions | iParsingOptions | [private] |
Parsing options
TXmlEngDeserializationSource | iSerializationOutput | [private] |
Deserialization format