00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(CONTENTMODEL_HPP)
00024 #define CONTENTMODEL_HPP
00025
00026 #include <xercesc/util/XMemory.hpp>
00027 #include <xercesc/util/QName.hpp>
00028
00029 XERCES_CPP_NAMESPACE_BEGIN
00030
00031 class ContentLeafNameTypeVector;
00032 class GrammarResolver;
00033 class XMLStringPool;
00034 class XMLValidator;
00035 class SchemaGrammar;
00036
00046 class XMLContentModel : public XMemory
00047 {
00048 public:
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 static const unsigned int gInvalidTrans;
00065 static const unsigned int gEOCFakeId;
00066 static const unsigned int gEpsilonFakeId;
00067
00068
00069
00070
00073 virtual ~XMLContentModel()
00074 {
00075 }
00077
00078
00079
00080
00081
00082 virtual int validateContent
00083 (
00084 QName** const children
00085 , const unsigned int childCount
00086 , const unsigned int emptyNamespaceId
00087 ) const = 0;
00088
00089 virtual int validateContentSpecial
00090 (
00091 QName** const children
00092 , const unsigned int childCount
00093 , const unsigned int emptyNamespaceId
00094 , GrammarResolver* const pGrammarResolver
00095 , XMLStringPool* const pStringPool
00096 ) const =0;
00097
00098 virtual void checkUniqueParticleAttribution
00099 (
00100 SchemaGrammar* const pGrammar
00101 , GrammarResolver* const pGrammarResolver
00102 , XMLStringPool* const pStringPool
00103 , XMLValidator* const pValidator
00104 , unsigned int* const pContentSpecOrgURI
00105 , const XMLCh* pComplexTypeName = 0
00106 ) =0;
00107
00108 virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector()
00109 const = 0;
00110
00111 virtual unsigned int getNextState(const unsigned int currentState,
00112 const unsigned int elementIndex) const = 0;
00113
00114 protected :
00115
00116
00117
00118 XMLContentModel()
00119 {
00120 }
00121
00122
00123 private :
00124
00125
00126
00127 XMLContentModel(const XMLContentModel&);
00128 XMLContentModel& operator=(const XMLContentModel&);
00129 };
00130
00131 XERCES_CPP_NAMESPACE_END
00132
00133 #endif