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

Revision 188, 7.7 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: XSAttributeGroupDefinition.hpp,v $
59 * Revision 1.7  2003/12/01 23:23:26  neilg
60 * fix for bug 25118; thanks to Jeroen Witmond
61 *
62 * Revision 1.6  2003/11/21 22:34:45  neilg
63 * More schema component model implementation, thanks to David Cargill.
64 * In particular, this cleans up and completes the XSModel, XSNamespaceItem,
65 * XSAttributeDeclaration and XSAttributeGroup implementations.
66 *
67 * Revision 1.5  2003/11/21 17:19:30  knoaman
68 * PSVI update.
69 *
70 * Revision 1.4  2003/11/14 22:47:53  neilg
71 * fix bogus log message from previous commit...
72 *
73 * Revision 1.3  2003/11/14 22:33:30  neilg
74 * Second phase of schema component model implementation. 
75 * Implement XSModel, XSNamespaceItem, and the plumbing necessary
76 * to connect them to the other components.
77 * Thanks to David Cargill.
78 *
79 * Revision 1.2  2003/11/06 15:30:04  neilg
80 * 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.
81 *
82 * Revision 1.1  2003/09/16 14:33:36  neilg
83 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
84 *
85 */
86
87#if !defined(XSATTRIBUTEGROUPDEFINITION_HPP)
88#define XSATTRIBUTEGROUPDEFINITION_HPP
89
90#include <xercesc/framework/psvi/XSObject.hpp>
91
92XERCES_CPP_NAMESPACE_BEGIN
93
94/**
95 * This class describes all properties of a Schema Attribute
96 * Group Definition component.
97 * This is *always* owned by the validator /parser object from which
98 * it is obtained. 
99 */
100
101// forward declarations
102class XSAnnotation;
103class XSAttributeUse;
104class XSWildcard;
105class XercesAttGroupInfo;
106
107class XMLPARSER_EXPORT XSAttributeGroupDefinition : public XSObject
108{
109public:
110
111    //  Constructors and Destructor
112    // -----------------------------------------------------------------------
113    /** @name Constructors */
114    //@{
115
116    /**
117      * The default constructor
118      *
119      * @param  xercesAttGroupInfo
120      * @param  xsAttList
121      * @param  xsWildcard
122      * @param  xsAnnot
123      * @param  xsModel
124      * @param  manager     The configurable memory manager
125      */
126    XSAttributeGroupDefinition
127    (
128        XercesAttGroupInfo* const   xercesAttGroupInfo
129        , XSAttributeUseList* const xsAttList
130        , XSWildcard* const         xsWildcard
131        , XSAnnotation* const       xsAnnot
132        , XSModel* const            xsModel
133        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
134    );
135
136    //@};
137
138    /** @name Destructor */
139    //@{
140    ~XSAttributeGroupDefinition();
141    //@}
142
143    //---------------------
144    /** @name overridden XSObject methods */
145    //@{
146
147    /**
148     * The name of type <code>NCName</code> of this declaration as defined in
149     * XML Namespaces.
150     */
151    const XMLCh* getName();
152
153    /**
154     *  The [target namespace] of this object, or <code>null</code> if it is
155     * unspecified.
156     */
157    const XMLCh* getNamespace();
158
159    /**
160     * A namespace schema information item corresponding to the target
161     * namespace of the component, if it's globally declared; or null
162     * otherwise.
163     */
164    XSNamespaceItem* getNamespaceItem();
165
166    //@}
167
168    //---------------------
169    /** @name XSAttributeGroupDefinition methods */
170
171    //@{
172
173    /**
174     * A set of [attribute uses].
175     */
176    XSAttributeUseList *getAttributeUses();
177
178    /**
179     * Optional. A [wildcard].
180     */
181    XSWildcard *getAttributeWildcard() const;
182
183    /**
184     * Optional. An [annotation].
185     */
186    XSAnnotation *getAnnotation() const;
187
188    //@}
189
190    //----------------------------------
191    /** methods needed by implementation */
192
193    //@{
194
195    //@}
196private:
197
198    // -----------------------------------------------------------------------
199    //  Unimplemented constructors and operators
200    // -----------------------------------------------------------------------
201    XSAttributeGroupDefinition(const XSAttributeGroupDefinition&);
202    XSAttributeGroupDefinition & operator=(const XSAttributeGroupDefinition &);
203
204protected:
205
206    // -----------------------------------------------------------------------
207    //  data members
208    // -----------------------------------------------------------------------
209    XercesAttGroupInfo*     fXercesAttGroupInfo;
210    XSAttributeUseList*     fXSAttributeUseList;
211    XSWildcard*             fXSWildcard;
212    XSAnnotation*           fAnnotation;
213};
214
215inline XSAttributeUseList* XSAttributeGroupDefinition::getAttributeUses()
216{
217    return fXSAttributeUseList;
218}
219
220inline XSWildcard* XSAttributeGroupDefinition::getAttributeWildcard() const
221{
222    return fXSWildcard;
223}
224
225inline XSAnnotation* XSAttributeGroupDefinition::getAnnotation() const
226{
227    return fAnnotation;
228}
229
230XERCES_CPP_NAMESPACE_END
231
232#endif
Note: See TracBrowser for help on using the repository browser.