source: NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNotationDeclaration.hpp @ 2674

Revision 2674, 4.0 KB checked in by mattausch, 16 years ago (diff)
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: XSNotationDeclaration.hpp 568078 2007-08-21 11:43:25Z amassari $
20 */
21
22#if !defined(XSNOTATIONDECLARATION_HPP)
23#define XSNOTATIONDECLARATION_HPP
24
25#include <xercesc/framework/psvi/XSObject.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29/**
30 * This class describes all properties of a Schema Notation Declaration
31 * component.
32 * This is *always* owned by the validator /parser object from which
33 * it is obtained. 
34 */
35
36// forward declarations
37class XSAnnotation;
38class XMLNotationDecl;
39
40class XMLPARSER_EXPORT XSNotationDeclaration : public XSObject
41{
42public:
43
44    //  Constructors and Destructor
45    // -----------------------------------------------------------------------
46    /** @name Constructors */
47    //@{
48
49    /**
50      * The default constructor
51      *
52      * @param  xmlNotationDecl
53      * @param  annot
54      * @param  xsModel
55      * @param  manager     The configurable memory manager
56      */
57    XSNotationDeclaration
58    (
59        XMLNotationDecl*  const xmlNotationDecl
60        , XSAnnotation* const   annot
61        , XSModel* const        xsModel
62        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
63    );
64
65    //@};
66
67    /** @name Destructor */
68    //@{
69    ~XSNotationDeclaration();
70    //@}
71
72    //---------------------
73    /** @name overridden XSXSObject methods */
74
75    //@{
76
77    /**
78     * The name of type <code>NCName</code> of this declaration as defined in
79     * XML Namespaces.
80     */
81    const XMLCh* getName();
82
83    /**
84     *  The [target namespace] of this object, or <code>null</code> if it is
85     * unspecified.
86     */
87    const XMLCh* getNamespace();
88
89    /**
90     * A namespace schema information item corresponding to the target
91     * namespace of the component, if it's globally declared; or null
92     * otherwise.
93     */
94    XSNamespaceItem *getNamespaceItem();
95
96    //@}
97
98    //---------------------
99    /** @name XSNotationDeclaration methods */
100
101    //@{
102
103    /**
104     *  The URI reference representing the system identifier for the notation
105     * declaration, if present, <code>null</code> otherwise.
106     */
107    const XMLCh *getSystemId();
108
109    /**
110     *  The string representing the public identifier for this notation
111     * declaration, if present; <code>null</code> otherwise.
112     */
113    const XMLCh *getPublicId();
114
115    /**
116     * Optional. An [annotation].
117     */
118    XSAnnotation *getAnnotation() const;
119
120    //@}
121
122    //----------------------------------
123    /** methods needed by implementation */
124
125    //@{
126
127    //@}
128private:
129
130    // -----------------------------------------------------------------------
131    //  Unimplemented constructors and operators
132    // -----------------------------------------------------------------------
133    XSNotationDeclaration(const XSNotationDeclaration&);
134    XSNotationDeclaration & operator=(const XSNotationDeclaration &);
135
136protected:
137
138    // -----------------------------------------------------------------------
139    //  data members
140    // -----------------------------------------------------------------------
141    XMLNotationDecl* fXMLNotationDecl;
142    XSAnnotation*    fAnnotation;
143};
144
145inline XSAnnotation* XSNotationDeclaration::getAnnotation() const
146{
147    return fAnnotation;
148}
149
150
151
152XERCES_CPP_NAMESPACE_END
153
154#endif
Note: See TracBrowser for help on using the repository browser.