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: XSFacet.hpp,v $ 00019 * Revision 1.7 2004/09/08 13:56:08 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:29:53 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(XSFACET_HPP) 00046 #define XSFACET_HPP 00047 00048 #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp> 00049 00050 XERCES_CPP_NAMESPACE_BEGIN 00051 00060 // forward declarations 00061 class XSAnnotation; 00062 00063 class XSFacet : public XSObject 00064 { 00065 public: 00066 00067 // Constructors and Destructor 00068 // ----------------------------------------------------------------------- 00071 00082 XSFacet 00083 ( 00084 XSSimpleTypeDefinition::FACET facetKind 00085 , const XMLCh* const lexicalValue 00086 , bool isFixed 00087 , XSAnnotation* const annot 00088 , XSModel* const xsModel 00089 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager 00090 ); 00091 00093 00096 ~XSFacet(); 00098 00099 //--------------------- 00103 00107 XSSimpleTypeDefinition::FACET getFacetKind() const; 00108 00112 const XMLCh *getLexicalFacetValue() const; 00113 00117 bool isFixed() const; 00118 00122 XSAnnotation *getAnnotation() const; 00123 00125 00126 //---------------------------------- 00130 00132 private: 00133 00134 // ----------------------------------------------------------------------- 00135 // Unimplemented constructors and operators 00136 // ----------------------------------------------------------------------- 00137 XSFacet(const XSFacet&); 00138 XSFacet & operator=(const XSFacet &); 00139 00140 protected: 00141 00142 // ----------------------------------------------------------------------- 00143 // data members 00144 // ----------------------------------------------------------------------- 00145 XSSimpleTypeDefinition::FACET fFacetKind; 00146 bool fIsFixed; 00147 const XMLCh* fLexicalValue; 00148 XSAnnotation* fAnnotation; 00149 }; 00150 00151 inline XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const 00152 { 00153 return fFacetKind; 00154 } 00155 00156 inline const XMLCh* XSFacet::getLexicalFacetValue() const 00157 { 00158 return fLexicalValue; 00159 } 00160 00161 inline bool XSFacet::isFixed() const 00162 { 00163 return fIsFixed; 00164 } 00165 00166 inline XSAnnotation* XSFacet::getAnnotation() const 00167 { 00168 return fAnnotation; 00169 } 00170 00171 00172 XERCES_CPP_NAMESPACE_END 00173 00174 #endif