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: XSNotationDeclaration.hpp,v $ 00019 * Revision 1.7 2004/09/08 13:56:09 peiyongz 00020 * Apache License Version 2.0 00021 * 00022 * Revision 1.6 2003/12/01 23:23:26 neilg 00023 * fix for bug 25118; thanks to Jeroen Witmond 00024 * 00025 * Revision 1.5 2003/11/21 17:34:04 knoaman 00026 * PSVI update 00027 * 00028 * Revision 1.4 2003/11/14 22:47:53 neilg 00029 * fix bogus log message from previous commit... 00030 * 00031 * Revision 1.3 2003/11/14 22:33:30 neilg 00032 * Second phase of schema component model implementation. 00033 * Implement XSModel, XSNamespaceItem, and the plumbing necessary 00034 * to connect them to the other components. 00035 * Thanks to David Cargill. 00036 * 00037 * Revision 1.2 2003/11/06 15:30:04 neilg 00038 * 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. 00039 * 00040 * Revision 1.1 2003/09/16 14:33:36 neilg 00041 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them 00042 * 00043 */ 00044 00045 #if !defined(XSNOTATIONDECLARATION_HPP) 00046 #define XSNOTATIONDECLARATION_HPP 00047 00048 #include <xercesc/framework/psvi/XSObject.hpp> 00049 00050 XERCES_CPP_NAMESPACE_BEGIN 00051 00059 // forward declarations 00060 class XSAnnotation; 00061 class XMLNotationDecl; 00062 00063 class XSNotationDeclaration : public XSObject 00064 { 00065 public: 00066 00067 // Constructors and Destructor 00068 // ----------------------------------------------------------------------- 00071 00080 XSNotationDeclaration 00081 ( 00082 XMLNotationDecl* const xmlNotationDecl 00083 , XSAnnotation* const annot 00084 , XSModel* const xsModel 00085 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager 00086 ); 00087 00089 00092 ~XSNotationDeclaration(); 00094 00095 //--------------------- 00099 00104 const XMLCh* getName(); 00105 00110 const XMLCh* getNamespace(); 00111 00117 XSNamespaceItem *getNamespaceItem(); 00118 00120 00121 //--------------------- 00125 00130 const XMLCh *getSystemId(); 00131 00136 const XMLCh *getPublicId(); 00137 00141 XSAnnotation *getAnnotation() const; 00142 00144 00145 //---------------------------------- 00149 00151 private: 00152 00153 // ----------------------------------------------------------------------- 00154 // Unimplemented constructors and operators 00155 // ----------------------------------------------------------------------- 00156 XSNotationDeclaration(const XSNotationDeclaration&); 00157 XSNotationDeclaration & operator=(const XSNotationDeclaration &); 00158 00159 protected: 00160 00161 // ----------------------------------------------------------------------- 00162 // data members 00163 // ----------------------------------------------------------------------- 00164 XMLNotationDecl* fXMLNotationDecl; 00165 XSAnnotation* fAnnotation; 00166 }; 00167 00168 inline XSAnnotation* XSNotationDeclaration::getAnnotation() const 00169 { 00170 return fAnnotation; 00171 } 00172 00173 00174 00175 XERCES_CPP_NAMESPACE_END 00176 00177 #endif