# XMLSchemaDescription.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Licensed to the Apache Software Foundation (ASF) under one or more
    00003  * contributor license agreements.  See the NOTICE file distributed with
    00004  * this work for additional information regarding copyright ownership.
    00005  * The ASF licenses this file to You under the Apache License, Version 2.0
    00006  * (the "License"); you may not use this file except in compliance with
    00007  * the License.  You may obtain a copy of the License at
    00008  *
    00009  *      http://www.apache.org/licenses/LICENSE-2.0
    00010  *
    00011  * Unless required by applicable law or agreed to in writing, software
    00012  * distributed under the License is distributed on an "AS IS" BASIS,
    00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00014  * See the License for the specific language governing permissions and
    00015  * limitations under the License.
    00016  */
    00017
    00018 /*
    00019  * $Id: XMLSchemaDescription.hpp 527149 2007-04-10 14:56:39Z amassari $
    00020  */
    00021
    00022 #if !defined(XERCESC_INCLUDE_GUARD_XMLSCHEMADESCRIPTION_HPP)
    00023 #define XERCESC_INCLUDE_GUARD_XMLSCHEMADESCRIPTION_HPP
    00024
    00025 #include <xercesc/framework/XMLGrammarDescription.hpp>
    00026 #include <xercesc/util/RefArrayVectorOf.hpp>
    00027
    00028 XERCES_CPP_NAMESPACE_BEGIN
    00029
    00030 typedef const XMLCh* const LocationHint;
    00031
    00032 class XMLPARSER_EXPORT XMLSchemaDescription : public XMLGrammarDescription
    00033 {
    00034 public :
    00035     // -----------------------------------------------------------------------
    00037     // -----------------------------------------------------------------------
    00039
    00043     virtual ~XMLSchemaDescription();
    00045
    00046     // -----------------------------------------------------------------------
    00048     // -----------------------------------------------------------------------
    00050
    00054     virtual Grammar::GrammarType   getGrammarType() const
    00055     {
    00056         return Grammar::SchemaGrammarType;
    00057     }
    00059
    00060     // -----------------------------------------------------------------------
    00062     // -----------------------------------------------------------------------
    00064
    00065     enum ContextType
    00066          {
    00067             CONTEXT_INCLUDE,
    00068             CONTEXT_REDEFINE,
    00069             CONTEXT_IMPORT,
    00070             CONTEXT_PREPARSE,
    00071             CONTEXT_INSTANCE,
    00072             CONTEXT_ELEMENT,
    00073             CONTEXT_ATTRIBUTE,
    00074             CONTEXT_XSITYPE,
    00075             CONTEXT_UNKNOWN
    00076          };
    00077
    00082     virtual ContextType                getContextType() const = 0;
    00083
    00088     virtual const XMLCh*               getTargetNamespace() const = 0;
    00089
    00094     virtual const RefArrayVectorOf<XMLCh>*   getLocationHints() const = 0;
    00095
    00100     virtual const QName*               getTriggeringComponent() const = 0;
    00101
    00106     virtual const QName*               getEnclosingElementName() const = 0;
    00107
    00112     virtual const XMLAttDef*           getAttributes() const = 0;
    00113
    00118     virtual void                       setContextType(ContextType) = 0;
    00119
    00124     virtual void                       setTargetNamespace(const XMLCh* const) = 0;
    00125
    00130     virtual void                       setLocationHints(const XMLCh* const) = 0;
    00131
    00136     virtual void                       setTriggeringComponent(QName* const) = 0;
    00137
    00142     virtual void                       setEnclosingElementName(QName* const) = 0;
    00143
    00148     virtual void                       setAttributes(XMLAttDef* const) = 0;
    00150
    00151     /***
    00152      * Support for Serialization/De-serialization
    00153      ***/
    00154     DECL_XSERIALIZABLE(XMLSchemaDescription)
    00155
    00156 protected :
    00157     // -----------------------------------------------------------------------
    00159     // -----------------------------------------------------------------------
    00161     XMLSchemaDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
    00163
    00164 private :
    00165     // -----------------------------------------------------------------------
    00167     // -----------------------------------------------------------------------
    00169     XMLSchemaDescription(const XMLSchemaDescription& );
    00170     XMLSchemaDescription& operator=(const XMLSchemaDescription& );
    00172
    00173 };
    00174
    00175
    00176 XERCES_CPP_NAMESPACE_END
    00177
    00178 #endif