00001 /* 00002 * Copyright 2003,2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * $Log: XSAttributeGroupDefinition.hpp,v $ 00019 * Revision 1.8 2004/09/08 13:56:08 peiyongz 00020 * Apache License Version 2.0 00021 * 00022 * Revision 1.7 2003/12/01 23:23:26 neilg 00023 * fix for bug 25118; thanks to Jeroen Witmond 00024 * 00025 * Revision 1.6 2003/11/21 22:34:45 neilg 00026 * More schema component model implementation, thanks to David Cargill. 00027 * In particular, this cleans up and completes the XSModel, XSNamespaceItem, 00028 * XSAttributeDeclaration and XSAttributeGroup implementations. 00029 * 00030 * Revision 1.5 2003/11/21 17:19:30 knoaman 00031 * PSVI update. 00032 * 00033 * Revision 1.4 2003/11/14 22:47:53 neilg 00034 * fix bogus log message from previous commit... 00035 * 00036 * Revision 1.3 2003/11/14 22:33:30 neilg 00037 * Second phase of schema component model implementation. 00038 * Implement XSModel, XSNamespaceItem, and the plumbing necessary 00039 * to connect them to the other components. 00040 * Thanks to David Cargill. 00041 * 00042 * Revision 1.2 2003/11/06 15:30:04 neilg 00043 * first part of PSVI/schema component model implementation, thanks to David Cargill. This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse. 00044 * 00045 * Revision 1.1 2003/09/16 14:33:36 neilg 00046 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them 00047 * 00048 */ 00049 00050 #if !defined(XSATTRIBUTEGROUPDEFINITION_HPP) 00051 #define XSATTRIBUTEGROUPDEFINITION_HPP 00052 00053 #include <xercesc/framework/psvi/XSObject.hpp> 00054 00055 XERCES_CPP_NAMESPACE_BEGIN 00056 00064 // forward declarations 00065 class XSAnnotation; 00066 class XSAttributeUse; 00067 class XSWildcard; 00068 class XercesAttGroupInfo; 00069 00070 class XSAttributeGroupDefinition : public XSObject 00071 { 00072 public: 00073 00074 // Constructors and Destructor 00075 // ----------------------------------------------------------------------- 00078 00089 XSAttributeGroupDefinition 00090 ( 00091 XercesAttGroupInfo* const xercesAttGroupInfo 00092 , XSAttributeUseList* const xsAttList 00093 , XSWildcard* const xsWildcard 00094 , XSAnnotation* const xsAnnot 00095 , XSModel* const xsModel 00096 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager 00097 ); 00098 00100 00103 ~XSAttributeGroupDefinition(); 00105 00106 //--------------------- 00109 00114 const XMLCh* getName(); 00115 00120 const XMLCh* getNamespace(); 00121 00127 XSNamespaceItem* getNamespaceItem(); 00128 00130 00131 //--------------------- 00135 00139 XSAttributeUseList *getAttributeUses(); 00140 00144 XSWildcard *getAttributeWildcard() const; 00145 00149 XSAnnotation *getAnnotation() const; 00150 00152 00153 //---------------------------------- 00157 00159 private: 00160 00161 // ----------------------------------------------------------------------- 00162 // Unimplemented constructors and operators 00163 // ----------------------------------------------------------------------- 00164 XSAttributeGroupDefinition(const XSAttributeGroupDefinition&); 00165 XSAttributeGroupDefinition & operator=(const XSAttributeGroupDefinition &); 00166 00167 protected: 00168 00169 // ----------------------------------------------------------------------- 00170 // data members 00171 // ----------------------------------------------------------------------- 00172 XercesAttGroupInfo* fXercesAttGroupInfo; 00173 XSAttributeUseList* fXSAttributeUseList; 00174 XSWildcard* fXSWildcard; 00175 XSAnnotation* fAnnotation; 00176 }; 00177 00178 inline XSAttributeUseList* XSAttributeGroupDefinition::getAttributeUses() 00179 { 00180 return fXSAttributeUseList; 00181 } 00182 00183 inline XSWildcard* XSAttributeGroupDefinition::getAttributeWildcard() const 00184 { 00185 return fXSWildcard; 00186 } 00187 00188 inline XSAnnotation* XSAttributeGroupDefinition::getAnnotation() const 00189 { 00190 return fAnnotation; 00191 } 00192 00193 XERCES_CPP_NAMESPACE_END 00194 00195 #endif