00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef M_SEN_FRAGMENT_H
00023 #define M_SEN_FRAGMENT_H
00024
00025
00026 #include <e32base.h>
00027 #include <s32strm.h>
00028 #include <xml\Attribute.h>
00029 #include <SenXmlReader.h>
00030 #include <MSenElement.h>
00031
00032
00033 class CSenElement;
00034
00035
00036
00048 class MSenFragment
00049 {
00050 public:
00051
00058 virtual CSenElement& AsElement() = 0;
00059
00070 virtual CSenElement* ExtractElement() = 0;
00071
00078 virtual void SetReader(CSenXmlReader& aReader) = 0;
00079
00087 virtual CSenXmlReader* Reader() = 0;
00088
00098 virtual void ParseL(const TDesC8& aBuf) = 0;
00099
00108 virtual TInt BuildFrom(const TDesC8& aBuf) = 0;
00109
00121 virtual void DelegateParsingL(MSenFragment& aDelegate) = 0;
00122
00139 virtual void DelegateParsingL( const TDesC8& aNsUri,
00140 const TDesC8& aLocalName,
00141 const TDesC8& aQName,
00142 const RAttributeArray& aAttrs) = 0;
00143
00151 virtual void ParseWithL(CSenXmlReader& aReader) = 0;
00152
00158 virtual void SetOwner(MSenFragment& aFragment) = 0;
00159
00169 virtual void ResumeParsingFromL(const TDesC8& aNsUri,
00170 const TDesC8& aLocalName,
00171 const TDesC8& aQName) = 0;
00172
00178 virtual void SetAttributesL(const RAttributeArray& aAttrs) = 0;
00179
00189 virtual void WriteStartElementL(const TDesC8& aNsUri,
00190 const TDesC8& aLocalName,
00191 const TDesC8& aQName,
00192 const RAttributeArray& aAttrs) = 0;
00193
00202 virtual void WriteEndElementL(const TDesC8& aNsUri,
00203 const TDesC8& aLocalName,
00204 const TDesC8& aQName) = 0;
00205
00211 virtual const TDesC8& LocalName() const = 0;
00212
00218 virtual const TDesC8& NsUri() const = 0;
00219
00225 virtual const TDesC8& NsPrefix() const = 0;
00226
00232 virtual void WriteAsXMLToL(RWriteStream& aWriteStream) = 0;
00233
00239 virtual HBufC* AsXmlUnicodeL() = 0;
00240
00246 virtual HBufC8* AsXmlL() = 0;
00247
00258 virtual TBool ConsistsOfL(MSenFragment& aCandidate) = 0;
00259 };
00260
00261
00262 #endif
00263
00264