Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Changes between v7.0 and v7.0S

v7.0 introduced a SMIL Parser and Composer API (smiltranslator.lib) dedicated to handling SMIL documents. v7.0S substantially modified this approach to make it more flexible, with the ability to process XML documents for any specified DTD. The original SMIL Parser and Composer API is now deprecated.

The new libraries against which to link are xmldom.lib, xmlparser.lib, and smildtd.lib. Header file names change according to a pattern where the initial "md" is replaced by "gm": e.g. if you previously included mdxmldocument.h, now include gmxmldocument.h.

This remainder of this page documents the changes made in the new API at class and function level.


MXMLDtd

This new class is an interface from which DTD-specific classes, responsible for validation, are derived.

[Top]


CMDXMLElement

This is a generic element class and is used to represent all element types in the DOM: previously SMIL-specific element classes were derived from this class and these derived classes had their own hard coded validation checks. This class holds the elements attributes and values in an array and provides getter and setter methods accordingly.

Validation of attribute names and children is done by the element. The CheckImmediateChildrenL() and SetAttributeL() functions use a MXMLDtd-object owned by the document to perform DTD specific checks.

Total responsibility for the parsing of XML files has been given to the parser (CMDXMLParser), so the following functions have been removed from this class: ParseStartTagL(), ParseAttributes(), ParseEndTagL().

Composition functionality, specifically ComposeStartTagL(), has also been removed. However, the composer now needs to further interrogate the DOM for attribute details, so some functionality to aid this has been added. The element can now be interrogated for the number of attributes (NumAttributes()), and it is also possible to index into an attribute array and get the attribute details for a given index.

All classes derived from CMDXMLNode and CMDXMLElement have lost their parsing/composing functions. The classes affected are CMDXMLCDATASection, CMDXMLCharacterData, CMDXMLComment, CMDXMLDocumentElement, CMDXMLProcessingInstruction and CMDXMLText.

[Top]


CMDXMLParser

A pointer to a MXMLDtd-derived class can be passed in on construction and is stored by the parser. It creates the document with a reference to this object.

The parser now has complete responsibility for parsing, so the functionality previously provided by ParseStartTagL(), ParseAttributes(), and ParseEndTagL() in the element class has been transferred into the parser.

[Top]


CMDXMLComposer

The composer now has complete responsibility for composition, so the functionality previously provided by ComposeStartTagL(), ComposeEndTag() and ComposeL() in the node class has been transferred into the composer.

[Top]


CMDXMLDocument

The document now takes a reference to a MXMLDtd object. This enables the DOM to carry out DTD specific validation. ValidElementNameL() has been added for this purpose.

[Top]


CMDXMLNode

Composition of XML files from the DOM is now purely the responsibility of the composer (CMDXMLComposer), and so functions relating to tag composition have been removed from this class. Specifically, ComposeStartTagL(), ComposeEndTag() and ComposeL() are no longer available.