|
||||
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
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |