Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:52

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_XSCONSTANTS_HPP)
0023 #define XERCESC_INCLUDE_GUARD_XSCONSTANTS_HPP
0024 
0025 #include <xercesc/util/RefVectorOf.hpp>
0026 #include <xercesc/util/RefArrayVectorOf.hpp>
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 /**
0031  * This contains constants needed in the schema component model.
0032  */
0033 
0034 // forward definitions for typedefs
0035 class XSAnnotation;
0036 class XSAttributeUse;
0037 class XSFacet;
0038 class XSMultiValueFacet;
0039 class XSNamespaceItem;
0040 class XSParticle;
0041 class XSSimpleTypeDefinition;
0042 
0043 // these typedefs are intended to help hide dependence on utility
0044 // classes, as well as to define more intuitive names for commonly
0045 // used concepts.
0046 
0047 typedef RefVectorOf <XSAnnotation> XSAnnotationList;
0048 typedef RefVectorOf <XSAttributeUse> XSAttributeUseList;
0049 typedef RefVectorOf <XSFacet> XSFacetList;
0050 typedef RefVectorOf <XSMultiValueFacet> XSMultiValueFacetList;
0051 typedef RefVectorOf <XSNamespaceItem> XSNamespaceItemList;
0052 typedef RefVectorOf <XSParticle> XSParticleList;
0053 typedef RefVectorOf <XSSimpleTypeDefinition> XSSimpleTypeDefinitionList;
0054 typedef RefArrayVectorOf <XMLCh> StringList;
0055 
0056 class XMLPARSER_EXPORT XSConstants 
0057 {
0058 public:
0059 
0060     // XML Schema Components
0061     enum COMPONENT_TYPE {
0062         /**
0063          * The object describes an attribute declaration.
0064          */
0065           ATTRIBUTE_DECLARATION     = 1,
0066         /**
0067          * The object describes an element declaration.
0068          */
0069           ELEMENT_DECLARATION       = 2,
0070         /**
0071          * The object describes a complex type or simple type definition.
0072          */
0073           TYPE_DEFINITION           = 3,
0074         /**
0075          * The object describes an attribute use definition.
0076          */
0077           ATTRIBUTE_USE             = 4,
0078         /**
0079          * The object describes an attribute group definition.
0080          */
0081           ATTRIBUTE_GROUP_DEFINITION= 5,
0082         /**
0083          * The object describes a model group definition.
0084          */
0085           MODEL_GROUP_DEFINITION    = 6,
0086         /**
0087          * A model group.
0088          */
0089           MODEL_GROUP               = 7,
0090         /**
0091          * The object describes a particle.
0092          */
0093           PARTICLE                  = 8,
0094         /**
0095          * The object describes a wildcard.
0096          */
0097           WILDCARD                  = 9,
0098         /**
0099          * The object describes an identity constraint definition.
0100          */
0101           IDENTITY_CONSTRAINT       = 10,
0102         /**
0103          * The object describes a notation declaration.
0104          */
0105           NOTATION_DECLARATION      = 11,
0106         /**
0107          * The object describes an annotation.
0108          */
0109           ANNOTATION                = 12,
0110         /**
0111          * The object describes a constraining facet.
0112          */
0113           FACET                     = 13,
0114         
0115         /**
0116          * The object describes enumeration/pattern facets.
0117          */
0118           MULTIVALUE_FACET           = 14
0119     };
0120 
0121     // Derivation constants
0122     enum DERIVATION_TYPE {
0123         /**
0124          * No constraint is available.
0125          */
0126          DERIVATION_NONE     = 0,
0127         /**
0128          * <code>XSTypeDefinition</code> final set or 
0129          * <code>XSElementDeclaration</code> disallowed substitution group.
0130          */
0131          DERIVATION_EXTENSION      = 1,
0132         /**
0133          * <code>XSTypeDefinition</code> final set or 
0134          * <code>XSElementDeclaration</code> disallowed substitution group.
0135          */
0136          DERIVATION_RESTRICTION    = 2,
0137         /**
0138          * <code>XSTypeDefinition</code> final set.
0139          */
0140          DERIVATION_SUBSTITUTION   = 4,
0141         /**
0142          * <code>XSTypeDefinition</code> final set.
0143          */
0144          DERIVATION_UNION          = 8,
0145         /**
0146          * <code>XSTypeDefinition</code> final set.
0147          */
0148          DERIVATION_LIST           = 16
0149     };
0150 
0151     // Scope
0152     enum SCOPE {
0153         /**
0154          * The scope of a declaration within named model groups or attribute 
0155          * groups is <code>absent</code>. The scope of such declaration is 
0156          * determined when it is used in the construction of complex type 
0157          * definitions. 
0158          */
0159          SCOPE_ABSENT              = 0,
0160         /**
0161          * A scope of <code>global</code> identifies top-level declarations. 
0162          */
0163          SCOPE_GLOBAL              = 1,
0164         /**
0165          * <code>Locally scoped</code> declarations are available for use only 
0166          * within the complex type.
0167          */
0168          SCOPE_LOCAL               = 2
0169     };
0170 
0171     // Value Constraint
0172     enum VALUE_CONSTRAINT {
0173         /**
0174          * Indicates that the component does not have any value constraint.
0175          */
0176          VALUE_CONSTRAINT_NONE          = 0,
0177         /**
0178          * Indicates that there is a default value constraint.
0179          */
0180          VALUE_CONSTRAINT_DEFAULT       = 1,
0181         /**
0182          * Indicates that there is a fixed value constraint for this attribute.
0183          */
0184          VALUE_CONSTRAINT_FIXED         = 2
0185     };
0186 
0187 private:
0188     // -----------------------------------------------------------------------
0189     //  Unimplemented constructors and operators
0190     // -----------------------------------------------------------------------
0191     XSConstants();
0192 };
0193 
0194 XERCES_CPP_NAMESPACE_END
0195 
0196 #endif