williamr@4: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: // All rights reserved. williamr@4: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@4: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: // williamr@4: // Initial Contributors: williamr@4: // Nokia Corporation - initial contribution. williamr@4: // williamr@4: // Contributors: williamr@4: // williamr@4: // Description: williamr@4: // Serialization options functions williamr@4: // williamr@4: williamr@4: williamr@4: williamr@4: /** williamr@4: @file williamr@4: @publishedAll williamr@4: @released williamr@2: */ williamr@2: williamr@4: #ifndef XMLENGSERIALIZATIONOPTIONS_H williamr@4: #define XMLENGSERIALIZATIONOPTIONS_H williamr@2: williamr@2: #include williamr@2: williamr@2: class MXmlEngOutputStream; williamr@2: class MXmlEngDataSerializer; williamr@2: class MXmlEngNodeFilter; williamr@2: williamr@2: /** williamr@4: This class stores serialization options to be used when a document is williamr@4: serialized. williamr@4: @see RXmlEngDocument::SaveL() williamr@4: */ williamr@2: class TXmlEngSerializationOptions williamr@2: { williamr@2: public: williamr@2: /** Use indent in output */ williamr@2: static const TUint KOptionIndent = 0x01; williamr@2: /** Skip xml declaration */ williamr@2: static const TUint KOptionOmitXMLDeclaration = 0x02; williamr@2: /** Add standalone in xml declaration. KOptionOmitXMLDeclaration must not be set */ williamr@2: static const TUint KOptionStandalone = 0x04; williamr@2: /** Add encoding in xml declaration. KOptionOmitXMLDeclaration must not be set */ williamr@2: static const TUint KOptionEncoding = 0x08; williamr@4: /** Not supported */ williamr@2: static const TUint KOptionIncludeNsPrefixes = 0x10; williamr@4: /** Not supported */ williamr@2: static const TUint KOptionCDATASectionElements = 0x20; williamr@4: /** Decode base64 encoded binary containers content upon XOP serialization */ williamr@2: static const TUint KOptionDecodeBinaryContainers = 0x40; williamr@2: williamr@2: /** williamr@4: Constructor williamr@4: @param aOptionFlags Serialization options williamr@4: @param aEncoding Serialization encoding. If KNullDesC8, the document williamr@4: encoding is used. williamr@4: */ williamr@2: IMPORT_C TXmlEngSerializationOptions( TUint aOptionFlags = williamr@2: (TXmlEngSerializationOptions::KOptionIndent | williamr@2: TXmlEngSerializationOptions::KOptionStandalone | williamr@2: TXmlEngSerializationOptions::KOptionEncoding), williamr@2: const TDesC8& aEncoding = KNullDesC8); williamr@2: williamr@2: /** williamr@4: Sets a node filter. The node filter is used to choose which nodes from the williamr@4: tree are serialized. Ownership of the node filter is not transferred and williamr@4: the caller is responsible for freeing aFilter. williamr@4: williamr@4: @param aFilter The node filter to set williamr@4: */ williamr@2: IMPORT_C void SetNodeFilter(MXmlEngNodeFilter* aFilter); williamr@2: williamr@4: /** williamr@4: Sets a data serializer. Ownership of the data serializer is not williamr@4: transferred and the caller is responsbile for freeing aSerializer. williamr@4: williamr@4: @param aSerializer The data serializer to set williamr@4: */ williamr@4: IMPORT_C void SetDataSerializer(MXmlEngDataSerializer* aSerializer); williamr@4: williamr@2: public: williamr@2: /** Options flag */ williamr@2: TUint iOptions; williamr@2: /** Encoding */ williamr@2: TPtrC8 iEncoding; williamr@2: /** Node filter */ williamr@2: MXmlEngNodeFilter* iNodeFilter; williamr@4: /** Data serializer */ williamr@2: MXmlEngDataSerializer* iDataSerializer; williamr@2: }; williamr@2: williamr@2: williamr@4: #endif /* XMLENGSERIALIZATIONOPTIONS_H */ williamr@2: