001: /*
002: * The Apache Software License, Version 1.1
003: *
004: *
005: * Copyright (c) 2000 The Apache Software Foundation. All rights
006: * reserved.
007: *
008: * Redistribution and use in source and binary forms, with or without
009: * modification, are permitted provided that the following conditions
010: * are met:
011: *
012: * 1. Redistributions of source code must retain the above copyright
013: * notice, this list of conditions and the following disclaimer.
014: *
015: * 2. Redistributions in binary form must reproduce the above copyright
016: * notice, this list of conditions and the following disclaimer in
017: * the documentation and/or other materials provided with the
018: * distribution.
019: *
020: * 3. The end-user documentation included with the redistribution,
021: * if any, must include the following acknowledgment:
022: * "This product includes software developed by the
023: * Apache Software Foundation (http://www.apache.org/)."
024: * Alternately, this acknowledgment may appear in the software itself,
025: * if and wherever such third-party acknowledgments normally appear.
026: *
027: * 4. The names "Xerces" and "Apache Software Foundation" must
028: * not be used to endorse or promote products derived from this
029: * software without prior written permission. For written
030: * permission, please contact apache@apache.org.
031: *
032: * 5. Products derived from this software may not be called "Apache",
033: * nor may "Apache" appear in their name, without prior written
034: * permission of the Apache Software Foundation.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This software consists of voluntary contributions made by many
051: * individuals on behalf of the Apache Software Foundation and was
052: * originally based on software copyright (c) 1999, International
053: * Business Machines, Inc., http://www.apache.org. For more
054: * information on the Apache Software Foundation, please see
055: * <http://www.apache.org/>.
056: */
057:
058: package org.apache.xerces.validators.common;
059:
060: import org.apache.xerces.utils.QName;
061: import org.apache.xerces.validators.datatype.DatatypeValidator;
062:
063: /**
064: * @version $Id: XMLAttributeDecl.java,v 1.8 2001/05/11 15:20:40 neilg Exp $
065: */
066: public class XMLAttributeDecl {
067:
068: //
069: // Constants
070: //
071:
072: // dtd
073:
074: public static final int TYPE_CDATA = 0;
075: public static final int TYPE_ENTITY = 1;
076: public static final int TYPE_ENUMERATION = 2;
077: public static final int TYPE_ID = 3;
078: public static final int TYPE_IDREF = 4;
079: public static final int TYPE_NMTOKEN = 5;
080: public static final int TYPE_NOTATION = 6;
081:
082: // schema
083:
084: public static final int TYPE_SIMPLE = 7;
085:
086: public static final int TYPE_ANY_ANY = 8;
087: public static final int TYPE_ANY_OTHER = 9;
088: //"Local" is treated as a member of the list
089: //public static final int TYPE_ANY_LOCAL = 10;
090: public static final int TYPE_ANY_LIST = 11;
091:
092: // default types in DTD
093: public static final int DEFAULT_TYPE_IMPLIED = 1;
094: public static final int DEFAULT_TYPE_REQUIRED = 2;
095: public static final int DEFAULT_TYPE_PROHIBITED = 4;
096: public static final int DEFAULT_TYPE_DEFAULT = 8;
097: public static final int DEFAULT_TYPE_FIXED = 16;
098: public static final int DEFAULT_TYPE_REQUIRED_AND_FIXED = DEFAULT_TYPE_REQUIRED
099: | DEFAULT_TYPE_FIXED;
100:
101: // "use" of Schema attributes
102: public static final int USE_TYPE_OPTIONAL = DEFAULT_TYPE_IMPLIED;
103: public static final int USE_TYPE_REQUIRED = DEFAULT_TYPE_REQUIRED;
104: public static final int USE_TYPE_PROHIBITED = DEFAULT_TYPE_PROHIBITED;
105: // value constraints of Schema attributes
106: public static final int VALUE_CONSTRAINT_DEFAULT = DEFAULT_TYPE_DEFAULT;
107: public static final int VALUE_CONSTRAINT_FIXED = DEFAULT_TYPE_FIXED;
108:
109: // schema: attribte wildcard processContents property, share the defaultType field
110: public static final int PROCESSCONTENTS_STRICT = 1024;
111: public static final int PROCESSCONTENTS_LAX = 2048;
112: public static final int PROCESSCONTENTS_SKIP = 4096;
113:
114: //
115: // Data
116: //
117:
118: // basic information
119:
120: public QName name = new QName();
121:
122: // simple types
123:
124: public DatatypeValidator datatypeValidator;
125:
126: // Att types, e.g. ID, IDREF, NOTATION, NMTOKEN,
127:
128: public int type;
129:
130: public boolean list;
131:
132: // values
133: public int enumeration;
134:
135: // For DTD, this variable stores "#IMPLIED", "#REQUIRED" and "#FIXED" etc.
136: // For Schema, this variable stored the options among "use", "default" and "fixed"
137: // via binary '|'
138: public int defaultType;
139:
140: public String defaultValue;
141:
142: //
143: // Constructors
144: //
145:
146: public XMLAttributeDecl() {
147: clear();
148: }
149:
150: public XMLAttributeDecl(XMLAttributeDecl attributeDecl) {
151: setValues(attributeDecl);
152: }
153:
154: //
155: // Public methods
156: //
157:
158: public void clear() {
159: name.clear();
160: datatypeValidator = null;
161: type = -1;
162: list = false;
163: enumeration = -1;
164: defaultType = DEFAULT_TYPE_IMPLIED;
165: defaultValue = null;
166: }
167:
168: public void setValues(XMLAttributeDecl attributeDecl) {
169: name.setValues(attributeDecl.name);
170: datatypeValidator = attributeDecl.datatypeValidator;
171: type = attributeDecl.type;
172: list = attributeDecl.list;
173: enumeration = attributeDecl.enumeration;
174: defaultType = attributeDecl.defaultType;
175: defaultValue = attributeDecl.defaultValue;
176: }
177:
178: //
179: // Object methods
180: //
181:
182: public int hashCode() {
183: // TODO
184: return super .hashCode();
185: }
186:
187: public boolean equals(Object object) {
188: // TODO
189: return super .equals(object);
190: }
191:
192: } // class XMLAttributeDecl
|