xmlengdocument.h

Go to the documentation of this file.
00001 /*
00002 * ==============================================================================
00003 *  Name        : xmlengdocument.h
00004 *  Part of     : XmlEngine / DOM XPath C++ Wrapper
00005 *  Interface   : Domain, XML Engine DOM API
00006 *  Description : Document node functions
00007 *  Version     : %version: 3 % 
00008 *
00009 *  Copyright © 2004-2006 Nokia.  All rights reserved.
00010 *  This material, including documentation and any related computer
00011 *  programs, is protected by copyright controlled by Nokia.  All
00012 *  rights are reserved.  Copying, including reproducing, storing,
00013 *  adapting or translating, any or all of this material requires the
00014 *  prior written consent of Nokia.  This material also contains
00015 *  confidential information which may not be disclosed to others
00016 *  without the prior written consent of Nokia.
00017 * ============================================================================
00018 */
00019 #ifndef XMLENGINE_DOCUMENT_H_INCLUDED
00020 #define XMLENGINE_DOCUMENT_H_INCLUDED
00021 
00022 #include <f32file.h> 
00023 
00024 #include "xmlengnode.h"
00025 #include "xmlengserializationoptions.h"
00026 
00027 // FORWARD DECLARATION
00028 class RXmlEngDOMImplementation;
00029 
00038 class RXmlEngDocument : public TXmlEngNode
00039 {
00040 public:    
00048     IMPORT_C RXmlEngDocument();
00049     
00057     IMPORT_C void OpenL(RXmlEngDOMImplementation& aDOMImpl);
00058         
00067     IMPORT_C void OpenL(RXmlEngDOMImplementation& aDOMImpl, void* aInternal);
00068     
00077     IMPORT_C void OpenL(RXmlEngDOMImplementation& aDOMImpl, TXmlEngElement aRoot);
00078     
00084     IMPORT_C  void Close();
00085 
00099     IMPORT_C TInt SaveL( const TDesC& aFileName,
00100                                          TXmlEngNode aRoot = TXmlEngNode(),
00101                                          const TXmlEngSerializationOptions& aSaveOptions = TXmlEngSerializationOptions() ) const;
00102    
00117     IMPORT_C TInt SaveL( RFs& aRFs,
00118                          const TDesC& aFileName,
00119                          TXmlEngNode aRoot = TXmlEngNode(),
00120                          const TXmlEngSerializationOptions& aSaveOptions = TXmlEngSerializationOptions() ) const;
00121     
00137     IMPORT_C TInt SaveL( MXmlEngOutputStream& aStream,
00138                                                  TXmlEngNode aRoot = TXmlEngNode(),
00139                                                  const TXmlEngSerializationOptions& aSaveOptions = TXmlEngSerializationOptions() ) const;
00140 
00156     IMPORT_C TInt SaveL(RBuf8& aBuffer, 
00157                                         TXmlEngNode aRoot = TXmlEngNode(), 
00158                         const TXmlEngSerializationOptions& aSaveOptions = TXmlEngSerializationOptions()) const;
00159    
00166         IMPORT_C RXmlEngDocument CloneDocumentL() const;
00167 
00178     IMPORT_C TXmlEngElement CreateDocumentElementL(const TDesC8& aName, 
00179                                              const TDesC8& aNamespaceUri = KNullDesC8, 
00180                                              const TDesC8& aPrefix = KNullDesC8);
00181 
00194     IMPORT_C void SetDocumentElement(TXmlEngElement aNewDocElement);
00195 
00202     IMPORT_C TPtrC8 XmlEncoding() const;
00203 
00210     IMPORT_C TPtrC8 XmlVersion() const;
00211   
00218     IMPORT_C TPtrC8 DocumentUri() const;
00219 
00226     IMPORT_C TBool IsStandalone() const;
00227 
00234     IMPORT_C void  SetXmlVersionL(const TDesC8& aVersion);
00235 
00243     IMPORT_C void  SetDocumentUriL(const TDesC8& aUri);
00244 
00251     IMPORT_C void  SetStandalone(TBool aStandalone);
00252 
00264     IMPORT_C RXmlEngDOMImplementation Implementation() const;
00265     
00272     IMPORT_C TXmlEngElement DocumentElement() const;
00273 
00281     IMPORT_C TXmlEngNode AdoptNodeL(TXmlEngNode aSource);
00282 
00304     IMPORT_C TXmlEngAttr CreateAttributeL(const TDesC8& aName,
00305                                     const TDesC8& aValue = KNullDesC8);
00306 
00314     IMPORT_C TXmlEngTextNode CreateTextNodeL(const TDesC8& aCharacters = KNullDesC8);
00315 
00327     IMPORT_C TXmlEngBinaryContainer CreateBinaryContainerL( const TDesC8& aCid,
00328                                                                                                   const TDesC8& aData );
00329 
00344     IMPORT_C TXmlEngChunkContainer CreateChunkContainerL( const TDesC8& aCid, 
00345                                                                                                 const RChunk& aChunk,
00346                                                                         const TInt aChunkOffset,
00347                                                                         const TInt aDataSize );
00348 
00361     IMPORT_C TXmlEngFileContainer CreateFileContainerL( const TDesC8& aCid, 
00362                                                                                           const RFile& aFile );
00363 
00375     IMPORT_C TXmlEngElement CreateElementL(const TDesC8& aLocalName, 
00376                                      const TDesC8& aNamespaceUri = KNullDesC8, 
00377                                      const TDesC8& aPrefix = KNullDesC8);
00378 
00386     IMPORT_C TXmlEngComment CreateCommentL(const TDesC8& aText = KNullDesC8);
00387 
00395     IMPORT_C TXmlEngCDATASection CreateCDATASectionL(const TDesC8& aContents = KNullDesC8);
00396 
00412     IMPORT_C TXmlEngEntityReference CreateEntityReferenceL(const TDesC8& aEntityRef);
00413 
00422     IMPORT_C TXmlEngProcessingInstruction CreateProcessingInstructionL(const TDesC8& aTarget, 
00423                                                                  const TDesC8& aData = KNullDesC8);
00424                                                                  
00435     IMPORT_C void RegisterXmlIdL(TXmlEngElement aStartElement,
00436                                  const TDesC8& aLocalName, 
00437                                  const TDesC8& aNamespaceUri = KNullDesC8);
00438 
00447     IMPORT_C void RegisterXmlIdL(const TDesC8& aLocalName, 
00448                                  const TDesC8& aNamespaceUri = KNullDesC8);
00449        
00457     IMPORT_C TXmlEngElement FindElementByXmlIdL(const TDesC8& aValue ) const;  
00458 
00471     IMPORT_C void GetDataContainerList( RArray<TXmlEngDataContainer>& aList );         
00472                                                                  
00473 protected:
00474     friend class RXmlEngDOMParser;
00475     friend class TXmlEngNode;
00476     friend class TXmlEngAttr;
00477     friend class TXmlEngElement;
00478     friend class RXmlEngDOMImplementation;
00479 
00480 protected:
00487     inline RXmlEngDocument(void* aInternal);
00488 
00494     inline TXmlEngNode CopyL() const; 
00495 
00501     inline void Remove();
00502 
00508     inline void ReplaceWith(TXmlEngNode aNode);
00509 private:
00522         TInt SaveNodeL( TXmlEngNode aNode,
00523                                         RBuf8& aBuffer,
00524                     MXmlEngOutputStream* aOutputStream = NULL,
00525                     TXmlEngSerializationOptions aOpt = TXmlEngSerializationOptions()) const;    
00526 
00537     void InitOwnedNodeListL();
00538 
00549     void TakeOwnership(TXmlEngNode aNode);
00550 
00557     void RemoveOwnership(TXmlEngNode aNode);
00558 
00559 protected:
00561     RXmlEngDOMImplementation* iImpl;
00562 
00563 };// class RXmlEngDocument
00564 
00565 
00566 
00567 #include "xmlengdocument.inl"
00568 
00569 #endif /* XMLENGINE_DOCUMENT_H_INCLUDED */

Copyright © Nokia Corporation 2001-2007
Back to top