williamr@2: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __ATTRIBUTE_H__ williamr@2: #define __ATTRIBUTE_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: namespace Xml williamr@2: { williamr@2: williamr@2: enum TAttributeType williamr@2: /** williamr@2: Specifies the type of this attribute object. williamr@2: These values are defined in the xml specification. williamr@2: For other specifications they may also be used or 'none'. williamr@2: @see http://www.w3.org/TR/REC-xml#sec-attribute-types williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: /** williamr@2: Specifies a string type. williamr@2: */ williamr@2: EAttributeType_CDATA, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_ID, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_IDREF, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_IDREFS, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_NMTOKEN, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_NMTOKENS, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_ENTITY, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_ENTITIES, williamr@2: williamr@2: /** williamr@2: Specifies a tokenized type. williamr@2: */ williamr@2: EAttributeType_NOTATION, williamr@2: williamr@2: /** williamr@2: Specifies no type, or unsupported. williamr@2: */ williamr@2: EAttributeType_NONE, williamr@2: williamr@2: }; williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: class RAttribute williamr@2: /** williamr@2: The RAttribute class holds an attribute's description belonging to an element. williamr@2: @see RAttributeArray williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C RAttribute(); williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C RAttribute Copy(); williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C void Close(); williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C void Open(const RString& aUri, const RString& aPrefix, const RString& aLocalName, williamr@2: const TAttributeType aType = EAttributeType_NONE); williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C void Open(const RString& aUri, const RString& aPrefix, const RString& aLocalName, williamr@2: const RString& aValue, const TAttributeType aType = EAttributeType_NONE); williamr@2: williamr@2: IMPORT_C const RTagInfo& Attribute() const; williamr@2: IMPORT_C const RString& Value() const; williamr@2: IMPORT_C TAttributeType Type() const; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: IMPORT_C void SetValue(const RString& aValue); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: Holds information about the attribute. williamr@2: */ williamr@2: RTagInfo iAttribute; williamr@2: williamr@2: /** williamr@2: Holds the attribute's value. williamr@2: */ williamr@2: RString iValue; williamr@2: williamr@2: /** williamr@2: Holds the attribute's type. williamr@2: */ williamr@2: TAttributeType iType; williamr@2: williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: Defines a list of attributes for an element. williamr@2: @see MContentHandler williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: typedef RArray RAttributeArray; williamr@2: williamr@2: } williamr@2: williamr@2: #endif //__ATTRIBUTE_H__