source: obsolete/tags/VUT/0.4/GtpVisibilityPreprocessor/support/xerces/include/xercesc/framework/psvi/XSNotationDeclaration.hpp @ 358

Revision 358, 5.0 KB checked in by bittner, 19 years ago (diff)

xerces added

Line 
1/*
2 * Copyright 2003,2004 The Apache Software Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * $Log: XSNotationDeclaration.hpp,v $
19 * Revision 1.7  2004/09/08 13:56:09  peiyongz
20 * Apache License Version 2.0
21 *
22 * Revision 1.6  2003/12/01 23:23:26  neilg
23 * fix for bug 25118; thanks to Jeroen Witmond
24 *
25 * Revision 1.5  2003/11/21 17:34:04  knoaman
26 * PSVI update
27 *
28 * Revision 1.4  2003/11/14 22:47:53  neilg
29 * fix bogus log message from previous commit...
30 *
31 * Revision 1.3  2003/11/14 22:33:30  neilg
32 * Second phase of schema component model implementation. 
33 * Implement XSModel, XSNamespaceItem, and the plumbing necessary
34 * to connect them to the other components.
35 * Thanks to David Cargill.
36 *
37 * Revision 1.2  2003/11/06 15:30:04  neilg
38 * 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.
39 *
40 * Revision 1.1  2003/09/16 14:33:36  neilg
41 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
42 *
43 */
44
45#if !defined(XSNOTATIONDECLARATION_HPP)
46#define XSNOTATIONDECLARATION_HPP
47
48#include <xercesc/framework/psvi/XSObject.hpp>
49
50XERCES_CPP_NAMESPACE_BEGIN
51
52/**
53 * This class describes all properties of a Schema Notation Declaration
54 * component.
55 * This is *always* owned by the validator /parser object from which
56 * it is obtained. 
57 */
58
59// forward declarations
60class XSAnnotation;
61class XMLNotationDecl;
62
63class XMLPARSER_EXPORT XSNotationDeclaration : public XSObject
64{
65public:
66
67    //  Constructors and Destructor
68    // -----------------------------------------------------------------------
69    /** @name Constructors */
70    //@{
71
72    /**
73      * The default constructor
74      *
75      * @param  xmlNotationDecl
76      * @param  annot
77      * @param  xsModel
78      * @param  manager     The configurable memory manager
79      */
80    XSNotationDeclaration
81    (
82        XMLNotationDecl*  const xmlNotationDecl
83        , XSAnnotation* const   annot
84        , XSModel* const        xsModel
85        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
86    );
87
88    //@};
89
90    /** @name Destructor */
91    //@{
92    ~XSNotationDeclaration();
93    //@}
94
95    //---------------------
96    /** @name overridden XSXSObject methods */
97
98    //@{
99
100    /**
101     * The name of type <code>NCName</code> of this declaration as defined in
102     * XML Namespaces.
103     */
104    const XMLCh* getName();
105
106    /**
107     *  The [target namespace] of this object, or <code>null</code> if it is
108     * unspecified.
109     */
110    const XMLCh* getNamespace();
111
112    /**
113     * A namespace schema information item corresponding to the target
114     * namespace of the component, if it's globally declared; or null
115     * otherwise.
116     */
117    XSNamespaceItem *getNamespaceItem();
118
119    //@}
120
121    //---------------------
122    /** @name XSNotationDeclaration methods */
123
124    //@{
125
126    /**
127     *  The URI reference representing the system identifier for the notation
128     * declaration, if present, <code>null</code> otherwise.
129     */
130    const XMLCh *getSystemId();
131
132    /**
133     *  The string representing the public identifier for this notation
134     * declaration, if present; <code>null</code> otherwise.
135     */
136    const XMLCh *getPublicId();
137
138    /**
139     * Optional. An [annotation].
140     */
141    XSAnnotation *getAnnotation() const;
142
143    //@}
144
145    //----------------------------------
146    /** methods needed by implementation */
147
148    //@{
149
150    //@}
151private:
152
153    // -----------------------------------------------------------------------
154    //  Unimplemented constructors and operators
155    // -----------------------------------------------------------------------
156    XSNotationDeclaration(const XSNotationDeclaration&);
157    XSNotationDeclaration & operator=(const XSNotationDeclaration &);
158
159protected:
160
161    // -----------------------------------------------------------------------
162    //  data members
163    // -----------------------------------------------------------------------
164    XMLNotationDecl* fXMLNotationDecl;
165    XSAnnotation*    fAnnotation;
166};
167
168inline XSAnnotation* XSNotationDeclaration::getAnnotation() const
169{
170    return fAnnotation;
171}
172
173
174
175XERCES_CPP_NAMESPACE_END
176
177#endif
Note: See TracBrowser for help on using the repository browser.