001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: */
016: package org.geotools.xml.schema;
017:
018: import java.net.URI;
019:
020: /**
021: * <p>
022: * An instance of this interface should represent an Attribute from an XML
023: * schema.
024: * </p>
025: *
026: * @author dzwiers www.refractions.net
027: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/xml/src/main/java/org/geotools/xml/schema/Attribute.java $
028: */
029: public interface Attribute {
030: /**
031: * Represent a mask used to determine the life of the attribute in an
032: * instance document.
033: */
034: public static final int OPTIONAL = 0;
035:
036: /**
037: * Represent a mask used to determine the life of the attribute in an
038: * instance document.
039: */
040: public static final int PROHIBITED = 1;
041:
042: /**
043: * Represent a mask used to determine the life of the attribute in an
044: * instance document.
045: */
046: public static final int REQUIRED = 2;
047:
048: /**
049: * <p>
050: * This is intended to imitate the default value option provided in the
051: * declaration of an XML Schema attribute.
052: * </p>
053: *
054: * @return Default Value as a String or Null
055: */
056: public String getDefault();
057:
058: /**
059: * <p>
060: * This is intended to imitate the fixed value option provided in the
061: * declaration of an XML Schema attribute.
062: * </p>
063: *
064: * @return Fixed Value as a String or Null
065: */
066: public String getFixed();
067:
068: /**
069: * <p>
070: * Intended to represent the form of an XML attribute. This method should
071: * return True when the attribute is "qualified".
072: * </p>
073: *
074: */
075: public boolean isForm();
076:
077: /**
078: * <p>
079: * The Schema ID for this attribute definition.
080: * </p>
081: *
082: */
083: public String getId();
084:
085: /**
086: * <p>
087: * The name of the attribute specified if one was provided in the attribute
088: * declaration
089: * </p>
090: *
091: */
092: public String getName();
093:
094: /**
095: * DOCUMENT ME!
096: *
097: */
098: public URI getNamespace();
099:
100: /**
101: * <p>
102: * Attributes only have three options for the number or occurences: none,
103: * once, optionally once. This method returns the mask which represents
104: * the use of this attribute.
105: * </p>
106: *
107: */
108: public int getUse();
109:
110: /**
111: * <p>
112: * Provides a reference to the simpleType which defines the data type of
113: * this attribute.
114: * </p>
115: *
116: */
117: public SimpleType getSimpleType();
118: }
|