http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PSVIAttribute.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2003,2004 The Apache Software Foundation.
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /*
00018  * $Log: PSVIAttribute.hpp,v $
00019  * Revision 1.7  2004/09/08 13:56:07  peiyongz
00020  * Apache License Version 2.0
00021  *
00022  * Revision 1.6  2003/12/30 05:58:56  neilg
00023  * allow schema normalized values to be associated with a PSVIAttribute after it is reset
00024  *
00025  * Revision 1.5  2003/11/28 20:20:54  neilg
00026  * make use of canonical representation in PSVIAttribute implementation
00027  *
00028  * Revision 1.4  2003/11/27 06:10:32  neilg
00029  * PSVIAttribute implementation
00030  *
00031  * Revision 1.3  2003/11/06 21:50:33  neilg
00032  * fix compilation errors under gcc 3.3.
00033  *
00034  * Revision 1.2  2003/11/06 15:30:04  neilg
00035  * first part of PSVI/schema component model implementation, thanks to David Cargill.  This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse.
00036  *
00037  * Revision 1.1  2003/09/16 14:33:36  neilg
00038  * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
00039  *
00040  */
00041 
00042 #if !defined(PSVIATTRIBUTE_HPP)
00043 #define PSVIATTRIBUTE_HPP
00044 
00045 #include <xercesc/framework/psvi/PSVIItem.hpp>
00046 #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
00047 #include <xercesc/validators/datatype/DatatypeValidator.hpp>
00048 
00049 XERCES_CPP_NAMESPACE_BEGIN
00050 
00058 // forward declarations
00059 class XSAttributeDeclaration;
00060 
00061 class  PSVIAttribute : public PSVIItem  
00062 {
00063 public:
00064 
00065     //  Constructors and Destructor
00066     // -----------------------------------------------------------------------
00069 
00075     PSVIAttribute( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00076 
00078 
00081     ~PSVIAttribute();
00083 
00084     //---------------------
00088 
00095     XSAttributeDeclaration *getAttributeDeclaration();
00096     
00102     XSTypeDefinition *getTypeDefinition();
00103     
00113     XSSimpleTypeDefinition *getMemberTypeDefinition();
00114     
00116 
00117     //----------------------------------
00121 
00126     void reset(
00127             const XMLCh * const         valContext
00128             , PSVIItem::VALIDITY_STATE  state
00129             , PSVIItem::ASSESSMENT_TYPE assessmentType
00130             , XSSimpleTypeDefinition *  validatingType
00131             , XSSimpleTypeDefinition *  memberType
00132             , const XMLCh * const       defaultValue
00133             , const bool                isSpecified
00134             , XSAttributeDeclaration *  attrDecl
00135             , DatatypeValidator *       dv
00136         );
00137 
00143     void setValue(const XMLCh * const       normalizedValue);
00144 
00149     void updateValidity(VALIDITY_STATE newValue);
00150 
00152 
00153 private:
00154 
00155     // -----------------------------------------------------------------------
00156     //  Unimplemented constructors and operators
00157     // -----------------------------------------------------------------------
00158     PSVIAttribute(const PSVIAttribute&);
00159     PSVIAttribute & operator=(const PSVIAttribute &);
00160 
00161 
00162     // -----------------------------------------------------------------------
00163     //  data members
00164     // -----------------------------------------------------------------------
00165     // fAttributeDecl
00166     //      attribute declaration component that validated this attribute 
00167     // fDV
00168     //      implementation-specific datatype validator used to validate this attribute
00169     XSAttributeDeclaration *    fAttributeDecl;
00170     DatatypeValidator *         fDV;
00171 };
00172 inline PSVIAttribute::~PSVIAttribute() 
00173 {
00174     fMemoryManager->deallocate((void *)fCanonicalValue);
00175 }
00176 
00177 inline XSAttributeDeclaration *PSVIAttribute::getAttributeDeclaration() 
00178 {
00179     return fAttributeDecl;
00180 }
00181 
00182 inline XSTypeDefinition* PSVIAttribute::getTypeDefinition()
00183 {
00184     return fType;
00185 }
00186 
00187 inline XSSimpleTypeDefinition* PSVIAttribute::getMemberTypeDefinition() 
00188 {
00189     return fMemberType;
00190 }
00191 
00192 inline void PSVIAttribute::updateValidity(VALIDITY_STATE newValue)
00193 {
00194     fValidityState = newValue;
00195 }
00196 
00197 XERCES_CPP_NAMESPACE_END
00198 
00199 #endif


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.