http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XSIDCDefinition.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2003,2004 The Apache Software Foundation.
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /*
00018  * $Log: XSIDCDefinition.hpp,v $
00019  * Revision 1.7  2004/09/08 13:56:08  peiyongz
00020  * Apache License Version 2.0
00021  *
00022  * Revision 1.6  2003/12/01 23:23:26  neilg
00023  * fix for bug 25118; thanks to Jeroen Witmond
00024  *
00025  * Revision 1.5  2003/11/21 17:29:53  knoaman
00026  * PSVI update
00027  *
00028  * Revision 1.4  2003/11/14 22:47:53  neilg
00029  * fix bogus log message from previous commit...
00030  *
00031  * Revision 1.3  2003/11/14 22:33:30  neilg
00032  * Second phase of schema component model implementation.  
00033  * Implement XSModel, XSNamespaceItem, and the plumbing necessary
00034  * to connect them to the other components.
00035  * Thanks to David Cargill.
00036  *
00037  * Revision 1.2  2003/11/06 15:30:04  neilg
00038  * 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.
00039  *
00040  * Revision 1.1  2003/09/16 14:33:36  neilg
00041  * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
00042  *
00043  */
00044 
00045 #if !defined(XSIDCDEFINITION_HPP)
00046 #define XSIDCDEFINITION_HPP
00047 
00048 #include <xercesc/framework/psvi/XSObject.hpp>
00049 
00050 XERCES_CPP_NAMESPACE_BEGIN
00051 
00059 // forward declarations
00060 class XSAnnotation;
00061 class IdentityConstraint;
00062 
00063 class  XSIDCDefinition : public XSObject
00064 {
00065 public:
00066 
00067     // Identity Constraints
00068     enum IC_CATEGORY {
00072         IC_KEY                    = 1,
00076         IC_KEYREF                 = 2,
00080         IC_UNIQUE                 = 3
00081     };
00082 
00083     //  Constructors and Destructor
00084     // -----------------------------------------------------------------------
00087 
00098     XSIDCDefinition
00099     (
00100         IdentityConstraint* const identityConstraint
00101         , XSIDCDefinition*  const keyIC
00102         , XSAnnotation* const     headAnnot
00103         , StringList* const       stringList
00104         , XSModel* const          xsModel
00105         , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
00106     );
00107 
00109 
00112     ~XSIDCDefinition();
00114 
00115     //---------------------
00119 
00124     const XMLCh* getName();
00125 
00130     const XMLCh* getNamespace();
00131 
00137     XSNamespaceItem *getNamespaceItem();
00138 
00140 
00141     //---------------------
00145 
00149     IC_CATEGORY getCategory() const;
00150 
00154     const XMLCh *getSelectorStr();
00155 
00159     StringList *getFieldStrs();
00160 
00166     XSIDCDefinition *getRefKey() const;
00167 
00171     XSAnnotationList *getAnnotations();
00172 
00174 
00175     //----------------------------------
00179 
00181 private:
00182 
00183     // -----------------------------------------------------------------------
00184     //  Unimplemented constructors and operators
00185     // -----------------------------------------------------------------------
00186     XSIDCDefinition(const XSIDCDefinition&);
00187     XSIDCDefinition & operator=(const XSIDCDefinition &);
00188 
00189 protected:
00190 
00191     // -----------------------------------------------------------------------
00192     //  data members
00193     // -----------------------------------------------------------------------
00194     IdentityConstraint* fIdentityConstraint;
00195     XSIDCDefinition*    fKey;
00196     StringList*         fStringList;
00197     XSAnnotationList*   fXSAnnotationList;
00198 };
00199 
00200 
00201 inline StringList* XSIDCDefinition::getFieldStrs()
00202 {
00203     return fStringList;
00204 }
00205 
00206 inline XSIDCDefinition* XSIDCDefinition::getRefKey() const
00207 {
00208     return fKey;
00209 }
00210 
00211 XERCES_CPP_NAMESPACE_END
00212 
00213 #endif


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.