00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #if !defined(PSVIELEMENT_HPP)
00022 #define PSVIELEMENT_HPP
00023 
00024 #include <xercesc/framework/psvi/PSVIItem.hpp>
00025 
00026 XERCES_CPP_NAMESPACE_BEGIN
00027 
00035 
00036 class XSElementDeclaration;
00037 class XSNotationDeclaration;
00038 class XSModel;
00039 
00040 class  PSVIElement : public PSVIItem  
00041 {
00042 public:
00043 
00044     
00045     
00048 
00054     PSVIElement( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00055 
00057 
00060     ~PSVIElement();
00062 
00063     
00067 
00074     XSElementDeclaration *getElementDeclaration();
00075     
00081     XSNotationDeclaration *getNotationDeclaration();
00082 
00089     XSModel *getSchemaInformation();
00090     
00096     XSTypeDefinition *getTypeDefinition();
00097     
00107     XSSimpleTypeDefinition *getMemberTypeDefinition();
00108     
00110 
00111     
00115     void reset
00116     (
00117         const VALIDITY_STATE            validityState
00118         , const ASSESSMENT_TYPE         assessmentType
00119         , const XMLCh* const            validationContext
00120         , bool                          isSpecified
00121         , XSElementDeclaration* const   elemDecl
00122         , XSTypeDefinition* const       typeDef
00123         , XSSimpleTypeDefinition* const memberType
00124         , XSModel* const                schemaInfo
00125         , const XMLCh* const            defaultValue
00126         , const XMLCh* const            normalizedValue = 0
00127         , XMLCh* const                  canonicalValue = 0
00128         , XSNotationDeclaration* const  notationDecl = 0
00129     );
00130 
00132 
00133 private:
00134 
00135     
00136     
00137     
00138     PSVIElement(const PSVIElement&);
00139     PSVIElement & operator=(const PSVIElement &);
00140 
00141 
00142     
00143     
00144     
00145     
00146     
00147     
00148     
00149     
00150     
00151     XSElementDeclaration *fElementDecl;
00152     XSNotationDeclaration *fNotationDecl;
00153     XSModel *fSchemaInfo;
00154 };
00155 
00156 inline XSElementDeclaration *PSVIElement::getElementDeclaration() 
00157 {
00158     return fElementDecl;
00159 }
00160 
00161 inline XSNotationDeclaration* PSVIElement::getNotationDeclaration() 
00162 {
00163     return fNotationDecl;
00164 }
00165 
00166 inline XSModel* PSVIElement::getSchemaInformation() 
00167 {
00168     return fSchemaInfo;
00169 }
00170 
00171 XERCES_CPP_NAMESPACE_END
00172 
00173 #endif