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

Revision 188, 7.1 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: XSAttributeUse.hpp,v $
59 * Revision 1.7  2003/12/19 23:02:43  cargilld
60 * Fix compiler messages on OS390.
61 *
62 * Revision 1.6  2003/12/17 20:50:34  knoaman
63 * PSVI: fix for annotation of attributes in attributeGroup/derived types
64 *
65 * Revision 1.5  2003/11/21 17:19:30  knoaman
66 * PSVI update.
67 *
68 * Revision 1.4  2003/11/14 22:47:53  neilg
69 * fix bogus log message from previous commit...
70 *
71 * Revision 1.3  2003/11/14 22:33:30  neilg
72 * Second phase of schema component model implementation. 
73 * Implement XSModel, XSNamespaceItem, and the plumbing necessary
74 * to connect them to the other components.
75 * Thanks to David Cargill.
76 *
77 * Revision 1.2  2003/11/06 15:30:04  neilg
78 * 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.
79 *
80 * Revision 1.1  2003/09/16 14:33:36  neilg
81 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
82 *
83 */
84
85#if !defined(XSATTRIBUTEUSE_HPP)
86#define XSATTRIBUTEUSE_HPP
87
88#include <xercesc/framework/psvi/XSObject.hpp>
89
90XERCES_CPP_NAMESPACE_BEGIN
91
92/**
93 * This class describes all properties of a Schema Attribute
94 * Use component.
95 * This is *always* owned by the validator /parser object from which
96 * it is obtained. 
97 */
98
99// forward declarations
100class XSAttributeDeclaration;
101
102class XMLPARSER_EXPORT XSAttributeUse : public XSObject
103{
104public:
105
106    //  Constructors and Destructor
107    // -----------------------------------------------------------------------
108    /** @name Constructors */
109    //@{
110
111    /**
112      * The default constructor
113      *
114      * @param  manager     The configurable memory manager
115      */
116    XSAttributeUse
117    (
118        XSAttributeDeclaration* const xsAttDecl,
119        XSModel* const xsModel,
120        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
121    );
122
123    //@};
124
125    /** @name Destructor */
126    //@{
127    ~XSAttributeUse();
128    //@}
129
130    //---------------------
131    /** @name XSAttributeUse methods */
132
133    //@{
134
135    /**
136     * [required]: determines whether this use of an attribute declaration
137     * requires an appropriate attribute information item to be present, or
138     * merely allows it.
139     */
140    bool getRequired() const;
141
142    /**
143     * [attribute declaration]: provides the attribute declaration itself,
144     * which will in turn determine the simple type definition used.
145     */
146    XSAttributeDeclaration *getAttrDeclaration() const;
147
148    /**
149     * Value Constraint: one of default, fixed.
150     */
151    XSConstants::VALUE_CONSTRAINT getConstraintType() const;
152
153    /**
154     * Value Constraint: The actual value.
155     */
156    const XMLCh *getConstraintValue();
157
158    //@}
159
160    //----------------------------------
161    /** methods needed by implementation */
162
163    //@{
164
165    //@}
166
167private:
168
169    // set data
170    void set
171    (
172        const bool isRequired
173        , XSConstants::VALUE_CONSTRAINT constraintType
174        , const XMLCh* const constraintValue
175    );
176
177    friend class XSObjectFactory;
178   
179    // -----------------------------------------------------------------------
180    //  Unimplemented constructors and operators
181    // -----------------------------------------------------------------------
182    XSAttributeUse(const XSAttributeUse&);
183    XSAttributeUse & operator=(const XSAttributeUse &);
184
185protected:
186
187    // -----------------------------------------------------------------------
188    //  data members
189    // -----------------------------------------------------------------------
190    bool                          fRequired;
191    XSConstants::VALUE_CONSTRAINT fConstraintType;   
192    const XMLCh*                  fConstraintValue;
193    XSAttributeDeclaration*       fXSAttributeDeclaration;
194};
195
196inline XSAttributeDeclaration *XSAttributeUse::getAttrDeclaration() const
197{
198    return fXSAttributeDeclaration;
199}
200
201inline bool XSAttributeUse::getRequired() const
202{
203    return fRequired;
204}
205
206inline XSConstants::VALUE_CONSTRAINT XSAttributeUse::getConstraintType() const
207{
208    return fConstraintType;
209}
210
211const inline XMLCh *XSAttributeUse::getConstraintValue()
212{
213    return fConstraintValue;
214}
215
216XERCES_CPP_NAMESPACE_END
217
218#endif
Note: See TracBrowser for help on using the repository browser.