00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(XSWILDCARD_HPP)
00022 #define XSWILDCARD_HPP
00023
00024 #include <xercesc/framework/psvi/XSObject.hpp>
00025
00026 XERCES_CPP_NAMESPACE_BEGIN
00027
00035
00036 class XSAnnotation;
00037 class SchemaAttDef;
00038 class ContentSpecNode;
00039
00040 class XSWildcard : public XSObject
00041 {
00042 public:
00043
00044
00045 enum NAMESPACE_CONSTRAINT {
00049 NSCONSTRAINT_ANY = 1,
00053 NSCONSTRAINT_NOT = 2,
00057 NSCONSTRAINT_DERIVATION_LIST = 3
00058 };
00059
00060
00061 enum PROCESS_CONTENTS {
00066 PC_STRICT = 1,
00070 PC_SKIP = 2,
00077 PC_LAX = 3
00078 };
00079
00080
00081
00084
00093 XSWildcard
00094 (
00095 SchemaAttDef* const attWildCard
00096 , XSAnnotation* const annot
00097 , XSModel* const xsModel
00098 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00099 );
00100
00101 XSWildcard
00102 (
00103 const ContentSpecNode* const elmWildCard
00104 , XSAnnotation* const annot
00105 , XSModel* const xsModel
00106 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00107 );
00108
00110
00113 ~XSWildcard();
00115
00116
00120
00124 NAMESPACE_CONSTRAINT getConstraintType() const;
00125
00132 StringList *getNsConstraintList();
00133
00138 PROCESS_CONTENTS getProcessContents() const;
00139
00143 XSAnnotation *getAnnotation() const;
00144
00146
00147
00151
00153 private:
00154
00155
00156
00157
00158 XSWildcard(const XSWildcard&);
00159 XSWildcard & operator=(const XSWildcard &);
00160
00164 void buildNamespaceList(const ContentSpecNode* const rootNode);
00165
00166 protected:
00167
00168
00169
00170
00171 NAMESPACE_CONSTRAINT fConstraintType;
00172 PROCESS_CONTENTS fProcessContents;
00173 StringList* fNsConstraintList;
00174 XSAnnotation* fAnnotation;
00175 };
00176
00177 inline XSAnnotation *XSWildcard::getAnnotation() const
00178 {
00179 return fAnnotation;
00180 }
00181
00182 inline XSWildcard::PROCESS_CONTENTS XSWildcard::getProcessContents() const
00183 {
00184 return fProcessContents;
00185 }
00186
00187 inline StringList* XSWildcard::getNsConstraintList()
00188 {
00189 return fNsConstraintList;
00190 }
00191
00192 inline XSWildcard::NAMESPACE_CONSTRAINT XSWildcard::getConstraintType() const
00193 {
00194 return fConstraintType;
00195 }
00196
00197
00198 XERCES_CPP_NAMESPACE_END
00199
00200 #endif