This appendix contains the complete Java [Java] bindings for the XML Schema API.
The Java files are also available as java-binding.zip
package org.apache.xerces.xs;
public class XSException extends RuntimeException {
    public XSException(short code, String message) {
       super(message);
       this.code = code;
    }
    public short   code;
    // ExceptionCode
    public static final short NOT_SUPPORTED_ERR         = 1;
    public static final short INDEX_SIZE_ERR            = 2;
}
package org.apache.xerces.xs;
public interface XSNamedMap {
    public int getLength();
    public XSObject item(int index);
    public XSObject itemByName(String namespace, 
                               String localName);
}
package org.apache.xerces.xs;
public interface XSObjectList {
    public int getLength();
    public XSObject item(int index);
}
package org.apache.xerces.xs;
public interface XSNamespaceItemList {
    public int getLength();
    public XSNamespaceItem item(int index);
}
package org.apache.xerces.xs;
public interface StringList {
    public int getLength();
    public boolean contains(String item);
    public String item(int index);
}
package org.apache.xerces.xs;
import org.w3c.dom.ls.LSInput;
public interface LSInputList {
    public int getLength();
    public LSInput item(int index);
}
package org.apache.xerces.xs;
public interface ShortList {
    public int getLength();
    public boolean contains(short item);
    public short item(int index)
                      throws XSException;
}
package org.apache.xerces.xs;
public interface XSObject {
    public short getType();
    public String getName();
    public String getNamespace();
    public XSNamespaceItem getNamespaceItem();
}
package org.apache.xerces.xs;
public interface XSConstants {
    // XML Schema Components
    public static final short ATTRIBUTE_DECLARATION     = 1;
    public static final short ELEMENT_DECLARATION       = 2;
    public static final short TYPE_DEFINITION           = 3;
    public static final short ATTRIBUTE_USE             = 4;
    public static final short ATTRIBUTE_GROUP           = 5;
    public static final short MODEL_GROUP_DEFINITION    = 6;
    public static final short MODEL_GROUP               = 7;
    public static final short PARTICLE                  = 8;
    public static final short WILDCARD                  = 9;
    public static final short IDENTITY_CONSTRAINT       = 10;
    public static final short NOTATION_DECLARATION      = 11;
    public static final short ANNOTATION                = 12;
    public static final short FACET                     = 13;
    public static final short MULTIVALUE_FACET          = 14;
    // Derivation constants
    public static final short DERIVATION_NONE           = 0;
    public static final short DERIVATION_EXTENSION      = 1;
    public static final short DERIVATION_RESTRICTION    = 2;
    public static final short DERIVATION_SUBSTITUTION   = 4;
    public static final short DERIVATION_UNION          = 8;
    public static final short DERIVATION_LIST           = 16;
    // Scope
    public static final short SCOPE_ABSENT              = 0;
    public static final short SCOPE_GLOBAL              = 1;
    public static final short SCOPE_LOCAL               = 2;
    // Value Constraint
    public static final short VC_NONE                   = 0;
    public static final short VC_DEFAULT                = 1;
    public static final short VC_FIXED                  = 2;
    // Built-in types: primitive and derived
    public static final short ANYSIMPLETYPE_DT          = 1;
    public static final short STRING_DT                 = 2;
    public static final short BOOLEAN_DT                = 3;
    public static final short DECIMAL_DT                = 4;
    public static final short FLOAT_DT                  = 5;
    public static final short DOUBLE_DT                 = 6;
    public static final short DURATION_DT               = 7;
    public static final short DATETIME_DT               = 8;
    public static final short TIME_DT                   = 9;
    public static final short DATE_DT                   = 10;
    public static final short GYEARMONTH_DT             = 11;
    public static final short GYEAR_DT                  = 12;
    public static final short GMONTHDAY_DT              = 13;
    public static final short GDAY_DT                   = 14;
    public static final short GMONTH_DT                 = 15;
    public static final short HEXBINARY_DT              = 16;
    public static final short BASE64BINARY_DT           = 17;
    public static final short ANYURI_DT                 = 18;
    public static final short QNAME_DT                  = 19;
    public static final short NOTATION_DT               = 20;
    public static final short NORMALIZEDSTRING_DT       = 21;
    public static final short TOKEN_DT                  = 22;
    public static final short LANGUAGE_DT               = 23;
    public static final short NMTOKEN_DT                = 24;
    public static final short NAME_DT                   = 25;
    public static final short NCNAME_DT                 = 26;
    public static final short ID_DT                     = 27;
    public static final short IDREF_DT                  = 28;
    public static final short ENTITY_DT                 = 29;
    public static final short INTEGER_DT                = 30;
    public static final short NONPOSITIVEINTEGER_DT     = 31;
    public static final short NEGATIVEINTEGER_DT        = 32;
    public static final short LONG_DT                   = 33;
    public static final short INT_DT                    = 34;
    public static final short SHORT_DT                  = 35;
    public static final short BYTE_DT                   = 36;
    public static final short NONNEGATIVEINTEGER_DT     = 37;
    public static final short UNSIGNEDLONG_DT           = 38;
    public static final short UNSIGNEDINT_DT            = 39;
    public static final short UNSIGNEDSHORT_DT          = 40;
    public static final short UNSIGNEDBYTE_DT           = 41;
    public static final short POSITIVEINTEGER_DT        = 42;
    public static final short LISTOFUNION_DT            = 43;
    public static final short LIST_DT                   = 44;
    public static final short UNAVAILABLE_DT            = 45;
}
package org.apache.xerces.xs;
public interface XSModel {
    public StringList getNamespaces();
    public XSNamespaceItemList getNamespaceItems();
    public XSNamedMap getComponents(short objectType);
    public XSNamedMap getComponentsByNamespace(short objectType, 
                                               String namespace);
    public XSObjectList getAnnotations();
    public XSElementDeclaration getElementDeclaration(String namespace, 
                                                      String name);
    public XSAttributeDeclaration getAttributeDeclaration(String namespace, 
                                                          String name);
    public XSTypeDefinition getTypeDefinition(String namespace, 
                                              String name);
    public XSAttributeGroupDefinition getAttributeGroup(String namespace, 
                                                        String name);
    public XSModelGroupDefinition getModelGroupDefinition(String namespace, 
                                                          String name);
    public XSNotationDeclaration getNotationDeclaration(String namespace, 
                                                        String name);
}
package org.apache.xerces.xs;
public interface XSNamespaceItem {
    public String getSchemaNamespace();
    public XSNamedMap getComponents(short objectType);
    public XSObjectList getAnnotations();
    public XSElementDeclaration getElementDeclaration(String name);
    public XSAttributeDeclaration getAttributeDeclaration(String name);
    public XSTypeDefinition getTypeDefinition(String name);
    public XSAttributeGroupDefinition getAttributeGroup(String name);
    public XSModelGroupDefinition getModelGroupDefinition(String name);
    public XSNotationDeclaration getNotationDeclaration(String name);
    public StringList getDocumentLocations();
}
package org.apache.xerces.xs;
public interface XSAttributeDeclaration extends XSObject {
    public XSSimpleTypeDefinition getTypeDefinition();
    public short getScope();
    public XSComplexTypeDefinition getEnclosingCTDefinition();
    public short getConstraintType();
    public String getConstraintValue();
    public Object getActualVC()
                                                        throws XSException;
    public short getActualVCType()
                                                        throws XSException;
    public ShortList getItemValueTypes()
                                                        throws XSException;
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSElementDeclaration extends XSTerm {
    public XSTypeDefinition getTypeDefinition();
    public short getScope();
    public XSComplexTypeDefinition getEnclosingCTDefinition();
    public short getConstraintType();
    public String getConstraintValue();
    public Object getActualVC()
                                                        throws XSException;
    public short getActualVCType()
                                                        throws XSException;
    public ShortList getItemValueTypes()
                                                        throws XSException;
    public boolean getNillable();
    public XSNamedMap getIdentityConstraints();
    public XSElementDeclaration getSubstitutionGroupAffiliation();
    public boolean isSubstitutionGroupExclusion(short exclusion);
    public short getSubstitutionGroupExclusions();
    public boolean isDisallowedSubstitution(short disallowed);
    public short getDisallowedSubstitutions();
    public boolean getAbstract();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSTypeDefinition extends XSObject {
    public static final short COMPLEX_TYPE              = 15;
    public static final short SIMPLE_TYPE               = 16;
    public short getTypeCategory();
    public XSTypeDefinition getBaseType();
    public boolean isFinal(short restriction);
    public short getFinal();
    public boolean getAnonymous();
    public boolean derivedFromType(XSTypeDefinition ancestorType, 
                                   short derivationMethod);
    public boolean derivedFrom(String namespace, 
                               String name, 
                               short derivationMethod);
}
package org.apache.xerces.xs;
public interface XSComplexTypeDefinition extends XSTypeDefinition {
    // Content Model Types
    public static final short CONTENTTYPE_EMPTY         = 0;
    public static final short CONTENTTYPE_SIMPLE        = 1;
    public static final short CONTENTTYPE_ELEMENT       = 2;
    public static final short CONTENTTYPE_MIXED         = 3;
    public short getDerivationMethod();
    public boolean getAbstract();
    public XSObjectList getAttributeUses();
    public XSWildcard getAttributeWildcard();
    public short getContentType();
    public XSSimpleTypeDefinition getSimpleType();
    public XSParticle getParticle();
    public boolean isProhibitedSubstitution(short restriction);
    public short getProhibitedSubstitutions();
    public XSObjectList getAnnotations();
}
package org.apache.xerces.xs;
public interface XSSimpleTypeDefinition extends XSTypeDefinition {
    // Variety definitions
    public static final short VARIETY_ABSENT            = 0;
    public static final short VARIETY_ATOMIC            = 1;
    public static final short VARIETY_LIST              = 2;
    public static final short VARIETY_UNION             = 3;
    // Facets
    public static final short FACET_NONE                = 0;
    public static final short FACET_LENGTH              = 1;
    public static final short FACET_MINLENGTH           = 2;
    public static final short FACET_MAXLENGTH           = 4;
    public static final short FACET_PATTERN             = 8;
    public static final short FACET_WHITESPACE          = 16;
    public static final short FACET_MAXINCLUSIVE        = 32;
    public static final short FACET_MAXEXCLUSIVE        = 64;
    public static final short FACET_MINEXCLUSIVE        = 128;
    public static final short FACET_MININCLUSIVE        = 256;
    public static final short FACET_TOTALDIGITS         = 512;
    public static final short FACET_FRACTIONDIGITS      = 1024;
    public static final short FACET_ENUMERATION         = 2048;
    public static final short ORDERED_FALSE             = 0;
    public static final short ORDERED_PARTIAL           = 1;
    public static final short ORDERED_TOTAL             = 2;
    public short getVariety();
    public XSSimpleTypeDefinition getPrimitiveType();
    public short getBuiltInKind();
    public XSSimpleTypeDefinition getItemType();
    public XSObjectList getMemberTypes();
    public short getDefinedFacets();
    public boolean isDefinedFacet(short facetName);
    public short getFixedFacets();
    public boolean isFixedFacet(short facetName);
    public String getLexicalFacetValue(short facetName);
    public StringList getLexicalEnumeration();
    public StringList getLexicalPattern();
    public short getOrdered();
    public boolean getFinite();
    public boolean getBounded();
    public boolean getNumeric();
    public XSObjectList getFacets();
    public XSObjectList getMultiValueFacets();
    public XSObjectList getAnnotations();
}
package org.apache.xerces.xs;
public interface XSFacet extends XSObject {
    public short getFacetKind();
    public String getLexicalFacetValue();
    public boolean getFixed();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSMultiValueFacet extends XSObject {
    public short getFacetKind();
    public StringList getLexicalFacetValues();
    public XSObjectList getAnnotations();
}
package org.apache.xerces.xs;
public interface XSParticle extends XSObject {
    public int getMinOccurs();
    public int getMaxOccurs();
    public boolean getMaxOccursUnbounded();
    public XSTerm getTerm();
}
package org.apache.xerces.xs;
public interface XSTerm extends XSObject {
}
package org.apache.xerces.xs;
public interface XSModelGroup extends XSTerm {
    // Content model compositors
    public static final short COMPOSITOR_SEQUENCE       = 1;
    public static final short COMPOSITOR_CHOICE         = 2;
    public static final short COMPOSITOR_ALL            = 3;
    public short getCompositor();
    public XSObjectList getParticles();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSModelGroupDefinition extends XSObject {
    public XSModelGroup getModelGroup();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSAttributeGroupDefinition extends XSObject {
    public XSObjectList getAttributeUses();
    public XSWildcard getAttributeWildcard();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSAttributeUse extends XSObject {
    public boolean getRequired();
    public XSAttributeDeclaration getAttrDeclaration();
    public short getConstraintType();
    public String getConstraintValue();
    public Object getActualVC()
                                       throws XSException;
    public short getActualVCType()
                                       throws XSException;
    public ShortList getItemValueTypes()
                                       throws XSException;
}
package org.apache.xerces.xs;
public interface XSWildcard extends XSTerm {
    // Namespace Constraint
    public static final short NSCONSTRAINT_ANY          = 1;
    public static final short NSCONSTRAINT_NOT          = 2;
    public static final short NSCONSTRAINT_LIST         = 3;
    // Process contents
    public static final short PC_STRICT                 = 1;
    public static final short PC_SKIP                   = 2;
    public static final short PC_LAX                    = 3;
    public short getConstraintType();
    public StringList getNsConstraintList();
    public short getProcessContents();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSIDCDefinition extends XSObject {
    // Identity Constraints
    public static final short IC_KEY                    = 1;
    public static final short IC_KEYREF                 = 2;
    public static final short IC_UNIQUE                 = 3;
    public short getCategory();
    public String getSelectorStr();
    public StringList getFieldStrs();
    public XSIDCDefinition getRefKey();
    public XSObjectList getAnnotations();
}
package org.apache.xerces.xs;
public interface XSNotationDeclaration extends XSObject {
    public String getSystemId();
    public String getPublicId();
    public XSAnnotation getAnnotation();
}
package org.apache.xerces.xs;
public interface XSAnnotation extends XSObject {
    // TargetType
    public static final short W3C_DOM_ELEMENT           = 1;
    public static final short SAX_CONTENTHANDLER        = 2;
    public static final short W3C_DOM_DOCUMENT          = 3;
    public boolean writeAnnotation(Object target, 
                                   short targetType);
    public String getAnnotationString();
}
package org.apache.xerces.xs;
public interface ItemPSVI {
    public static final short VALIDITY_NOTKNOWN         = 0;
    public static final short VALIDITY_INVALID          = 1;
    public static final short VALIDITY_VALID            = 2;
    public static final short VALIDATION_NONE           = 0;
    public static final short VALIDATION_PARTIAL        = 1;
    public static final short VALIDATION_FULL           = 2;
    public String getValidationContext();
    public short getValidity();
    public short getValidationAttempted();
    public StringList getErrorCodes();
    public String getSchemaNormalizedValue();
    public Object getActualNormalizedValue()
                                   throws XSException;
    public short getActualNormalizedValueType()
                                   throws XSException;
    public ShortList getItemValueTypes()
                                   throws XSException;
    public XSTypeDefinition getTypeDefinition();
    public XSSimpleTypeDefinition getMemberTypeDefinition();
    public String getSchemaDefault();
    public boolean getSchemaSpecified();
}
package org.apache.xerces.xs;
public interface ElementPSVI extends ItemPSVI {
    public XSElementDeclaration getElementDeclaration();
    public XSNotationDeclaration getNotation();
    public boolean getNil();
    public XSModel getSchemaInformation();
}
package org.apache.xerces.xs;
public interface AttributePSVI extends ItemPSVI {
    public XSAttributeDeclaration getAttributeDeclaration();
}
package org.apache.xerces.xs;
public interface PSVIProvider {
    public ElementPSVI getElementPSVI();
    public AttributePSVI getAttributePSVI(int index);
    public AttributePSVI getAttributePSVIByName(String uri, 
                                                String localname);
}
package org.apache.xerces.xs;
public interface XSImplementation {
    public StringList getRecognizedVersions();
    public void setRecognizedVersions(StringList recognizedVersions);
    public XSLoader createXSLoader(StringList versions)
                                   throws XSException;
}
package org.apache.xerces.xs;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.ls.LSInput;
public interface XSLoader {
    public DOMConfiguration getConfig();
    public XSModel loadURIList(StringList uriList);
    public XSModel loadInputList(LSInputList is);
    public XSModel loadURI(String uri);
    public XSModel load(LSInput is);
}