source: NonGTP/Xerces/xercesc/framework/psvi/XSNotationDeclaration.hpp @ 188

Revision 188, 7.0 KB checked in by mattausch, 19 years ago (diff)

added xercesc to support

Line 
1/*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 2003 The Apache Software Foundation.  All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in
16 *    the documentation and/or other materials provided with the
17 *    distribution.
18 *
19 * 3. The end-user documentation included with the redistribution,
20 *    if any, must include the following acknowledgment:
21 *       "This product includes software developed by the
22 *        Apache Software Foundation (http://www.apache.org/)."
23 *    Alternately, this acknowledgment may appear in the software itself,
24 *    if and wherever such third-party acknowledgments normally appear.
25 *
26 * 4. The names "Xerces" and "Apache Software Foundation" must
27 *    not be used to endorse or promote products derived from this
28 *    software without prior written permission. For written
29 *    permission, please contact apache\@apache.org.
30 *
31 * 5. Products derived from this software may not be called "Apache",
32 *    nor may "Apache" appear in their name, without prior written
33 *    permission of the Apache Software Foundation.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation, and was
51 * originally based on software copyright (c) 1999, International
52 * Business Machines, Inc., http://www.ibm.com .  For more information
53 * on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57/*
58 * $Log: XSNotationDeclaration.hpp,v $
59 * Revision 1.6  2003/12/01 23:23:26  neilg
60 * fix for bug 25118; thanks to Jeroen Witmond
61 *
62 * Revision 1.5  2003/11/21 17:34:04  knoaman
63 * PSVI update
64 *
65 * Revision 1.4  2003/11/14 22:47:53  neilg
66 * fix bogus log message from previous commit...
67 *
68 * Revision 1.3  2003/11/14 22:33:30  neilg
69 * Second phase of schema component model implementation. 
70 * Implement XSModel, XSNamespaceItem, and the plumbing necessary
71 * to connect them to the other components.
72 * Thanks to David Cargill.
73 *
74 * Revision 1.2  2003/11/06 15:30:04  neilg
75 * 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.
76 *
77 * Revision 1.1  2003/09/16 14:33:36  neilg
78 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
79 *
80 */
81
82#if !defined(XSNOTATIONDECLARATION_HPP)
83#define XSNOTATIONDECLARATION_HPP
84
85#include <xercesc/framework/psvi/XSObject.hpp>
86
87XERCES_CPP_NAMESPACE_BEGIN
88
89/**
90 * This class describes all properties of a Schema Notation Declaration
91 * component.
92 * This is *always* owned by the validator /parser object from which
93 * it is obtained. 
94 */
95
96// forward declarations
97class XSAnnotation;
98class XMLNotationDecl;
99
100class XMLPARSER_EXPORT XSNotationDeclaration : public XSObject
101{
102public:
103
104    //  Constructors and Destructor
105    // -----------------------------------------------------------------------
106    /** @name Constructors */
107    //@{
108
109    /**
110      * The default constructor
111      *
112      * @param  xmlNotationDecl
113      * @param  annot
114      * @param  xsModel
115      * @param  manager     The configurable memory manager
116      */
117    XSNotationDeclaration
118    (
119        XMLNotationDecl*  const xmlNotationDecl
120        , XSAnnotation* const   annot
121        , XSModel* const        xsModel
122        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
123    );
124
125    //@};
126
127    /** @name Destructor */
128    //@{
129    ~XSNotationDeclaration();
130    //@}
131
132    //---------------------
133    /** @name overridden XSXSObject methods */
134
135    //@{
136
137    /**
138     * The name of type <code>NCName</code> of this declaration as defined in
139     * XML Namespaces.
140     */
141    const XMLCh* getName();
142
143    /**
144     *  The [target namespace] of this object, or <code>null</code> if it is
145     * unspecified.
146     */
147    const XMLCh* getNamespace();
148
149    /**
150     * A namespace schema information item corresponding to the target
151     * namespace of the component, if it's globally declared; or null
152     * otherwise.
153     */
154    XSNamespaceItem *getNamespaceItem();
155
156    //@}
157
158    //---------------------
159    /** @name XSNotationDeclaration methods */
160
161    //@{
162
163    /**
164     *  The URI reference representing the system identifier for the notation
165     * declaration, if present, <code>null</code> otherwise.
166     */
167    const XMLCh *getSystemId();
168
169    /**
170     *  The string representing the public identifier for this notation
171     * declaration, if present; <code>null</code> otherwise.
172     */
173    const XMLCh *getPublicId();
174
175    /**
176     * Optional. An [annotation].
177     */
178    XSAnnotation *getAnnotation() const;
179
180    //@}
181
182    //----------------------------------
183    /** methods needed by implementation */
184
185    //@{
186
187    //@}
188private:
189
190    // -----------------------------------------------------------------------
191    //  Unimplemented constructors and operators
192    // -----------------------------------------------------------------------
193    XSNotationDeclaration(const XSNotationDeclaration&);
194    XSNotationDeclaration & operator=(const XSNotationDeclaration &);
195
196protected:
197
198    // -----------------------------------------------------------------------
199    //  data members
200    // -----------------------------------------------------------------------
201    XMLNotationDecl* fXMLNotationDecl;
202    XSAnnotation*    fAnnotation;
203};
204
205inline XSAnnotation* XSNotationDeclaration::getAnnotation() const
206{
207    return fAnnotation;
208}
209
210
211
212XERCES_CPP_NAMESPACE_END
213
214#endif
Note: See TracBrowser for help on using the repository browser.