00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(XSIDCDEFINITION_HPP)
00022 #define XSIDCDEFINITION_HPP
00023
00024 #include <xercesc/framework/psvi/XSObject.hpp>
00025
00026 XERCES_CPP_NAMESPACE_BEGIN
00027
00035
00036 class XSAnnotation;
00037 class IdentityConstraint;
00038
00039 class XSIDCDefinition : public XSObject
00040 {
00041 public:
00042
00043
00044 enum IC_CATEGORY {
00048 IC_KEY = 1,
00052 IC_KEYREF = 2,
00056 IC_UNIQUE = 3
00057 };
00058
00059
00060
00063
00074 XSIDCDefinition
00075 (
00076 IdentityConstraint* const identityConstraint
00077 , XSIDCDefinition* const keyIC
00078 , XSAnnotation* const headAnnot
00079 , StringList* const stringList
00080 , XSModel* const xsModel
00081 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00082 );
00083
00085
00088 ~XSIDCDefinition();
00090
00091
00095
00100 const XMLCh* getName();
00101
00106 const XMLCh* getNamespace();
00107
00113 XSNamespaceItem *getNamespaceItem();
00114
00116
00117
00121
00125 IC_CATEGORY getCategory() const;
00126
00130 const XMLCh *getSelectorStr();
00131
00135 StringList *getFieldStrs();
00136
00142 XSIDCDefinition *getRefKey() const;
00143
00147 XSAnnotationList *getAnnotations();
00148
00150
00151
00155
00157 private:
00158
00159
00160
00161
00162 XSIDCDefinition(const XSIDCDefinition&);
00163 XSIDCDefinition & operator=(const XSIDCDefinition &);
00164
00165 protected:
00166
00167
00168
00169
00170 IdentityConstraint* fIdentityConstraint;
00171 XSIDCDefinition* fKey;
00172 StringList* fStringList;
00173 XSAnnotationList* fXSAnnotationList;
00174 };
00175
00176
00177 inline StringList* XSIDCDefinition::getFieldStrs()
00178 {
00179 return fStringList;
00180 }
00181
00182 inline XSIDCDefinition* XSIDCDefinition::getRefKey() const
00183 {
00184 return fKey;
00185 }
00186
00187 XERCES_CPP_NAMESPACE_END
00188
00189 #endif