00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #if !defined(XSWILDCARD_HPP)
00046 #define XSWILDCARD_HPP
00047
00048 #include <xercesc/framework/psvi/XSObject.hpp>
00049
00050 XERCES_CPP_NAMESPACE_BEGIN
00051
00059
00060 class XSAnnotation;
00061 class SchemaAttDef;
00062 class ContentSpecNode;
00063
00064 class XSWildcard : public XSObject
00065 {
00066 public:
00067
00068
00069 enum NAMESPACE_CONSTRAINT {
00073 NSCONSTRAINT_ANY = 1,
00077 NSCONSTRAINT_NOT = 2,
00081 NSCONSTRAINT_DERIVATION_LIST = 3
00082 };
00083
00084
00085 enum PROCESS_CONTENTS {
00090 PC_STRICT = 1,
00094 PC_SKIP = 2,
00101 PC_LAX = 3
00102 };
00103
00104
00105
00108
00117 XSWildcard
00118 (
00119 SchemaAttDef* const attWildCard
00120 , XSAnnotation* const annot
00121 , XSModel* const xsModel
00122 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00123 );
00124
00125 XSWildcard
00126 (
00127 const ContentSpecNode* const elmWildCard
00128 , XSAnnotation* const annot
00129 , XSModel* const xsModel
00130 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00131 );
00132
00134
00137 ~XSWildcard();
00139
00140
00144
00148 NAMESPACE_CONSTRAINT getConstraintType() const;
00149
00156 StringList *getNsConstraintList();
00157
00162 PROCESS_CONTENTS getProcessContents() const;
00163
00167 XSAnnotation *getAnnotation() const;
00168
00170
00171
00175
00177 private:
00178
00179
00180
00181
00182 XSWildcard(const XSWildcard&);
00183 XSWildcard & operator=(const XSWildcard &);
00184
00188 void buildNamespaceList(const ContentSpecNode* const rootNode);
00189
00190 protected:
00191
00192
00193
00194
00195 NAMESPACE_CONSTRAINT fConstraintType;
00196 PROCESS_CONTENTS fProcessContents;
00197 StringList* fNsConstraintList;
00198 XSAnnotation* fAnnotation;
00199 };
00200
00201 inline XSAnnotation *XSWildcard::getAnnotation() const
00202 {
00203 return fAnnotation;
00204 }
00205
00206 inline XSWildcard::PROCESS_CONTENTS XSWildcard::getProcessContents() const
00207 {
00208 return fProcessContents;
00209 }
00210
00211 inline StringList* XSWildcard::getNsConstraintList()
00212 {
00213 return fNsConstraintList;
00214 }
00215
00216 inline XSWildcard::NAMESPACE_CONSTRAINT XSWildcard::getConstraintType() const
00217 {
00218 return fConstraintType;
00219 }
00220
00221
00222 XERCES_CPP_NAMESPACE_END
00223
00224 #endif