Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:52

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_XSNOTATIONDECLARATION_HPP)
0023 #define XERCESC_INCLUDE_GUARD_XSNOTATIONDECLARATION_HPP
0024 
0025 #include <xercesc/framework/psvi/XSObject.hpp>
0026 
0027 XERCES_CPP_NAMESPACE_BEGIN
0028 
0029 /**
0030  * This class describes all properties of a Schema Notation Declaration
0031  * component.
0032  * This is *always* owned by the validator /parser object from which
0033  * it is obtained.  
0034  */
0035 
0036 // forward declarations
0037 class XSAnnotation;
0038 class XMLNotationDecl;
0039 
0040 class XMLPARSER_EXPORT XSNotationDeclaration : public XSObject
0041 {
0042 public:
0043 
0044     //  Constructors and Destructor
0045     // -----------------------------------------------------------------------
0046     /** @name Constructors */
0047     //@{
0048 
0049     /**
0050       * The default constructor 
0051       *
0052       * @param  xmlNotationDecl
0053       * @param  annot
0054       * @param  xsModel
0055       * @param  manager     The configurable memory manager
0056       */
0057     XSNotationDeclaration
0058     (
0059         XMLNotationDecl*  const xmlNotationDecl
0060         , XSAnnotation* const   annot
0061         , XSModel* const        xsModel
0062         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
0063     );
0064 
0065     //@};
0066 
0067     /** @name Destructor */
0068     //@{
0069     ~XSNotationDeclaration();
0070     //@}
0071 
0072     //---------------------
0073     /** @name overridden XSXSObject methods */
0074 
0075     //@{
0076 
0077     /**
0078      * The name of type <code>NCName</code> of this declaration as defined in 
0079      * XML Namespaces.
0080      */
0081     const XMLCh* getName() const;
0082 
0083     /**
0084      *  The [target namespace] of this object, or <code>null</code> if it is 
0085      * unspecified. 
0086      */
0087     const XMLCh* getNamespace() const;
0088 
0089     /**
0090      * A namespace schema information item corresponding to the target 
0091      * namespace of the component, if it's globally declared; or null 
0092      * otherwise.
0093      */
0094     XSNamespaceItem *getNamespaceItem();
0095 
0096     //@}
0097 
0098     //---------------------
0099     /** @name XSNotationDeclaration methods */
0100 
0101     //@{
0102 
0103     /**
0104      *  The URI reference representing the system identifier for the notation 
0105      * declaration, if present, <code>null</code> otherwise. 
0106      */
0107     const XMLCh *getSystemId();
0108 
0109     /**
0110      *  The string representing the public identifier for this notation 
0111      * declaration, if present; <code>null</code> otherwise. 
0112      */
0113     const XMLCh *getPublicId();
0114 
0115     /**
0116      * Optional. An [annotation]. 
0117      */
0118     XSAnnotation *getAnnotation() const;
0119 
0120     //@}
0121 
0122     //----------------------------------
0123     /** methods needed by implementation */
0124 
0125     //@{
0126 
0127     //@}
0128 private:
0129 
0130     // -----------------------------------------------------------------------
0131     //  Unimplemented constructors and operators
0132     // -----------------------------------------------------------------------
0133     XSNotationDeclaration(const XSNotationDeclaration&);
0134     XSNotationDeclaration & operator=(const XSNotationDeclaration &);
0135 
0136 protected:
0137 
0138     // -----------------------------------------------------------------------
0139     //  data members
0140     // -----------------------------------------------------------------------
0141     XMLNotationDecl* fXMLNotationDecl;
0142     XSAnnotation*    fAnnotation;
0143 };
0144 
0145 inline XSAnnotation* XSNotationDeclaration::getAnnotation() const
0146 {
0147     return fAnnotation;
0148 }
0149 
0150 
0151 
0152 XERCES_CPP_NAMESPACE_END
0153 
0154 #endif