org.apache.xerces.impl.xs.traversers

## Class XSAttributeChecker

- java.lang.Object
- - org.apache.xerces.impl.xs.traversers.XSAttributeChecker

    public class XSAttributeChecker
    extends java.lang.Object

Class `XSAttributeCheck` is used to check the validity of attributes appearing in the schema document. It - reports an error for invalid element (invalid namespace, invalid name) - reports an error for invalid attribute (invalid namespace, invalid name) - reports an error for invalid attribute value - return compiled values for attriute values - provide default value for missing optional attributes - provide default value for incorrect attribute values But it's the caller's responsibility to check whether a required attribute is present. Things need revisiting: - Whether to return non-schema attributes/values - Do we need to update NamespaceScope and ErrorReporter when reset()? - Should have the datatype validators return compiled value - use symbol table instead of many hashtables

Version:
  $Id: XSAttributeChecker.java 704619 2008-10-14 18:59:35Z mrglavas $
Author:
  Sandy Gao, IBM

# INTERNAL:

  Usage of this class is not supported. It may be altered or removed at any time.

### Field Summary

Fields
`static int` `ATTIDX_ABSTRACT`
`static int` `ATTIDX_AFORMDEFAULT`
`static int` `ATTIDX_BASE`
`static int` `ATTIDX_BLOCK`
`static int` `ATTIDX_BLOCKDEFAULT`
`static int` `ATTIDX_DEFAULT`
`static int` `ATTIDX_EFORMDEFAULT`
`static int` `ATTIDX_ENUMNSDECLS`
`static int` `ATTIDX_FINAL`
`static int` `ATTIDX_FINALDEFAULT`
`static int` `ATTIDX_FIXED`
`static int` `ATTIDX_FORM`
`static int` `ATTIDX_FROMDEFAULT`
`static int` `ATTIDX_ID`
`static int` `ATTIDX_ISRETURNED`
`static int` `ATTIDX_ITEMTYPE`
`static int` `ATTIDX_MAXOCCURS`
`static int` `ATTIDX_MEMBERTYPES`
`static int` `ATTIDX_MINOCCURS`
`static int` `ATTIDX_MIXED`
`static int` `ATTIDX_NAME`
`static int` `ATTIDX_NAMESPACE`
`static int` `ATTIDX_NAMESPACE_LIST`
`static int` `ATTIDX_NILLABLE`
`static int` `ATTIDX_NONSCHEMA`
`static int` `ATTIDX_PROCESSCONTENTS`
`static int` `ATTIDX_PUBLIC`
`static int` `ATTIDX_REF`
`static int` `ATTIDX_REFER`
`static int` `ATTIDX_SCHEMALOCATION`
`static int` `ATTIDX_SOURCE`
`static int` `ATTIDX_SUBSGROUP`
`static int` `ATTIDX_SYSTEM`
`static int` `ATTIDX_TARGETNAMESPACE`
`static int` `ATTIDX_TYPE`
`static int` `ATTIDX_USE`
`static int` `ATTIDX_VALUE`
`static int` `ATTIDX_VERSION`
`static int` `ATTIDX_XML_LANG`
`static int` `ATTIDX_XPATH`
`protected static int` `DT_ANYURI`
`protected static int` `DT_BLOCK`
`protected static int` `DT_BLOCK1`
`protected static int` `DT_BOOLEAN`
`protected static int` `DT_COUNT`
`protected static int` `DT_FINAL`
`protected static int` `DT_FINAL1`
`protected static int` `DT_FINAL2`
`protected static int` `DT_FORM`
`protected static int` `DT_ID`
`protected static int` `DT_LANGUAGE`
`protected static int` `DT_MAXOCCURS`
`protected static int` `DT_MAXOCCURS1`
`protected static int` `DT_MEMBERTYPES`
`protected static int` `DT_MINOCCURS1`
`protected static int` `DT_NAMESPACE`
`protected static int` `DT_NCNAME`
`protected static int` `DT_NONNEGINT`
`protected static int` `DT_POSINT`
`protected static int` `DT_PROCESSCONTENTS`
`protected static int` `DT_QNAME`
`protected static int` `DT_STRING`
`protected static int` `DT_TOKEN`
`protected static int` `DT_USE`
`protected static int` `DT_WHITESPACE`
`protected static int` `DT_XPATH`
`protected static int` `DT_XPATH1`
`protected java.util.Vector` `fNamespaceList`
`protected java.util.Hashtable` `fNonSchemaAttrs`
`protected XSDHandler` `fSchemaHandler`
`protected boolean[]` `fSeen`
`protected SymbolTable` `fSymbolTable`

### Constructor Summary

Constructors
Constructor and Description
`XSAttributeChecker(XSDHandler schemaHandler)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`java.lang.Object[]` `checkAttributes(org.w3c.dom.Element element, boolean isGlobal, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)` Check whether the specified element conforms to the attributes restriction an array of attribute values is returned.
`java.lang.Object[]` `checkAttributes(org.w3c.dom.Element element, boolean isGlobal, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc, boolean enumAsQName)` Check whether the specified element conforms to the attributes restriction an array of attribute values is returned.
`void` `checkNonSchemaAttributes(XSGrammarBucket grammarBucket)`
`protected java.lang.Object[]` `getAvailableArray()`
`static java.lang.String` `normalize(java.lang.String content, short ws)`
`void` `reset(SymbolTable symbolTable)`
`void` `resolveNamespace(org.w3c.dom.Element element, org.w3c.dom.Attr[] attrs, SchemaNamespaceSupport nsSupport)`
`void` `returnAttrArray(java.lang.Object[] attrArray, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ATTIDX_ABSTRACT

    public static final int ATTIDX_ABSTRACT

#### ATTIDX_AFORMDEFAULT

    public static final int ATTIDX_AFORMDEFAULT

#### ATTIDX_BASE

    public static final int ATTIDX_BASE

#### ATTIDX_BLOCK

    public static final int ATTIDX_BLOCK

#### ATTIDX_BLOCKDEFAULT

    public static final int ATTIDX_BLOCKDEFAULT

#### ATTIDX_DEFAULT

    public static final int ATTIDX_DEFAULT

#### ATTIDX_EFORMDEFAULT

    public static final int ATTIDX_EFORMDEFAULT

#### ATTIDX_FINAL

    public static final int ATTIDX_FINAL

#### ATTIDX_FINALDEFAULT

    public static final int ATTIDX_FINALDEFAULT

#### ATTIDX_FIXED

    public static final int ATTIDX_FIXED

#### ATTIDX_FORM

    public static final int ATTIDX_FORM

#### ATTIDX_ID

    public static final int ATTIDX_ID

#### ATTIDX_ITEMTYPE

    public static final int ATTIDX_ITEMTYPE

#### ATTIDX_MAXOCCURS

    public static final int ATTIDX_MAXOCCURS

#### ATTIDX_MEMBERTYPES

    public static final int ATTIDX_MEMBERTYPES

#### ATTIDX_MINOCCURS

    public static final int ATTIDX_MINOCCURS

#### ATTIDX_MIXED

    public static final int ATTIDX_MIXED

#### ATTIDX_NAME

    public static final int ATTIDX_NAME

#### ATTIDX_NAMESPACE

    public static final int ATTIDX_NAMESPACE

#### ATTIDX_NAMESPACE_LIST

    public static final int ATTIDX_NAMESPACE_LIST

#### ATTIDX_NILLABLE

    public static final int ATTIDX_NILLABLE

#### ATTIDX_NONSCHEMA

    public static final int ATTIDX_NONSCHEMA

#### ATTIDX_PROCESSCONTENTS

    public static final int ATTIDX_PROCESSCONTENTS

#### ATTIDX_PUBLIC

    public static final int ATTIDX_PUBLIC

#### ATTIDX_REF

    public static final int ATTIDX_REF

#### ATTIDX_REFER

    public static final int ATTIDX_REFER

#### ATTIDX_SCHEMALOCATION

    public static final int ATTIDX_SCHEMALOCATION

#### ATTIDX_SOURCE

    public static final int ATTIDX_SOURCE

#### ATTIDX_SUBSGROUP

    public static final int ATTIDX_SUBSGROUP

#### ATTIDX_SYSTEM

    public static final int ATTIDX_SYSTEM

#### ATTIDX_TARGETNAMESPACE

    public static final int ATTIDX_TARGETNAMESPACE

#### ATTIDX_TYPE

    public static final int ATTIDX_TYPE

#### ATTIDX_USE

    public static final int ATTIDX_USE

#### ATTIDX_VALUE

    public static final int ATTIDX_VALUE

#### ATTIDX_ENUMNSDECLS

    public static final int ATTIDX_ENUMNSDECLS

#### ATTIDX_VERSION

    public static final int ATTIDX_VERSION

#### ATTIDX_XML_LANG

    public static final int ATTIDX_XML_LANG

#### ATTIDX_XPATH

    public static final int ATTIDX_XPATH

#### ATTIDX_FROMDEFAULT

    public static final int ATTIDX_FROMDEFAULT

#### ATTIDX_ISRETURNED

    public static final int ATTIDX_ISRETURNED

#### DT_ANYURI

    protected static final int DT_ANYURI

See Also:
  Constant Field Values

#### DT_ID

    protected static final int DT_ID

See Also:
  Constant Field Values

#### DT_QNAME

    protected static final int DT_QNAME

See Also:
  Constant Field Values

#### DT_STRING

    protected static final int DT_STRING

See Also:
  Constant Field Values

#### DT_TOKEN

    protected static final int DT_TOKEN

See Also:
  Constant Field Values

#### DT_NCNAME

    protected static final int DT_NCNAME

See Also:
  Constant Field Values

#### DT_XPATH

    protected static final int DT_XPATH

See Also:
  Constant Field Values

#### DT_XPATH1

    protected static final int DT_XPATH1

See Also:
  Constant Field Values

#### DT_LANGUAGE

    protected static final int DT_LANGUAGE

See Also:
  Constant Field Values

#### DT_COUNT

    protected static final int DT_COUNT

See Also:
  Constant Field Values

#### DT_BLOCK

    protected static final int DT_BLOCK

See Also:
  Constant Field Values

#### DT_BLOCK1

    protected static final int DT_BLOCK1

See Also:
  Constant Field Values

#### DT_FINAL

    protected static final int DT_FINAL

See Also:
  Constant Field Values

#### DT_FINAL1

    protected static final int DT_FINAL1

See Also:
  Constant Field Values

#### DT_FINAL2

    protected static final int DT_FINAL2

See Also:
  Constant Field Values

#### DT_FORM

    protected static final int DT_FORM

See Also:
  Constant Field Values

#### DT_MAXOCCURS

    protected static final int DT_MAXOCCURS

See Also:
  Constant Field Values

#### DT_MAXOCCURS1

    protected static final int DT_MAXOCCURS1

See Also:
  Constant Field Values

#### DT_MEMBERTYPES

    protected static final int DT_MEMBERTYPES

See Also:
  Constant Field Values

#### DT_MINOCCURS1

    protected static final int DT_MINOCCURS1

See Also:
  Constant Field Values

#### DT_NAMESPACE

    protected static final int DT_NAMESPACE

See Also:
  Constant Field Values

#### DT_PROCESSCONTENTS

    protected static final int DT_PROCESSCONTENTS

See Also:
  Constant Field Values

#### DT_USE

    protected static final int DT_USE

See Also:
  Constant Field Values

#### DT_WHITESPACE

    protected static final int DT_WHITESPACE

See Also:
  Constant Field Values

#### DT_BOOLEAN

    protected static final int DT_BOOLEAN

See Also:
  Constant Field Values

#### DT_NONNEGINT

    protected static final int DT_NONNEGINT

See Also:
  Constant Field Values

#### DT_POSINT

    protected static final int DT_POSINT

See Also:
  Constant Field Values

#### fSchemaHandler

    protected XSDHandler fSchemaHandler

#### fSymbolTable

    protected SymbolTable fSymbolTable

#### fNonSchemaAttrs

    protected java.util.Hashtable fNonSchemaAttrs

#### fNamespaceList

    protected java.util.Vector fNamespaceList

#### fSeen

    protected boolean[] fSeen

### Constructor Detail

#### XSAttributeChecker

    public XSAttributeChecker(XSDHandler schemaHandler)

### Method Detail

#### reset

    public void reset(SymbolTable symbolTable)

#### checkAttributes

    public java.lang.Object[] checkAttributes(org.w3c.dom.Element element,
                                              boolean isGlobal,
                                              org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)

Check whether the specified element conforms to the attributes restriction an array of attribute values is returned. the caller must call `returnAttrArray` to return that array.

Parameters:
  `element` - which element to check
  `isGlobal` - whether a child of <schema> or <redefine>
  `schemaDoc` - the document where the element lives in
Returns:
  an array containing attribute values

#### checkAttributes

    public java.lang.Object[] checkAttributes(org.w3c.dom.Element element,
                                              boolean isGlobal,
                                              org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc,
                                              boolean enumAsQName)

Check whether the specified element conforms to the attributes restriction an array of attribute values is returned. the caller must call `returnAttrArray` to return that array. This method also takes an extra parameter: if the element is "enumeration", whether to make a copy of the namespace context, so that the value can be resolved as a QName later.

Parameters:
  `element` - which element to check
  `isGlobal` - whether a child of <schema> or <redefine>
  `schemaDoc` - the document where the element lives in
  `enumAsQName` - whether to tread enumeration value as QName
Returns:
  an array containing attribute values

#### checkNonSchemaAttributes

    public void checkNonSchemaAttributes(XSGrammarBucket grammarBucket)

#### normalize

    public static java.lang.String normalize(java.lang.String content,
                                             short ws)

#### getAvailableArray

    protected java.lang.Object[] getAvailableArray()

#### returnAttrArray

    public void returnAttrArray(java.lang.Object[] attrArray,
                                org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)

#### resolveNamespace

    public void resolveNamespace(org.w3c.dom.Element element,
                                 org.w3c.dom.Attr[] attrs,
                                 SchemaNamespaceSupport nsSupport)