org.apache.xerces.impl.xs.traversers

Class XSAttributeChecker

public class XSAttributeChecker extends 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,v 1.36 2004/10/29 05:05:13 mrglavas Exp $

Author: Sandy Gao, IBM

UNKNOWN:

Field Summary
static intATTIDX_ABSTRACT
static intATTIDX_AFORMDEFAULT
static intATTIDX_BASE
static intATTIDX_BLOCK
static intATTIDX_BLOCKDEFAULT
static intATTIDX_DEFAULT
static intATTIDX_EFORMDEFAULT
static intATTIDX_ENUMNSDECLS
static intATTIDX_FINAL
static intATTIDX_FINALDEFAULT
static intATTIDX_FIXED
static intATTIDX_FORM
static intATTIDX_FROMDEFAULT
static intATTIDX_ID
static intATTIDX_ISRETURNED
static intATTIDX_ITEMTYPE
static intATTIDX_MAXOCCURS
static intATTIDX_MEMBERTYPES
static intATTIDX_MINOCCURS
static intATTIDX_MIXED
static intATTIDX_NAME
static intATTIDX_NAMESPACE
static intATTIDX_NAMESPACE_LIST
static intATTIDX_NILLABLE
static intATTIDX_NONSCHEMA
static intATTIDX_PROCESSCONTENTS
static intATTIDX_PUBLIC
static intATTIDX_REF
static intATTIDX_REFER
static intATTIDX_SCHEMALOCATION
static intATTIDX_SOURCE
static intATTIDX_SUBSGROUP
static intATTIDX_SYSTEM
static intATTIDX_TARGETNAMESPACE
static intATTIDX_TYPE
static intATTIDX_USE
static intATTIDX_VALUE
static intATTIDX_VERSION
static intATTIDX_XML_LANG
static intATTIDX_XPATH
protected static intDT_ANYURI
protected static intDT_BLOCK
protected static intDT_BLOCK1
protected static intDT_BOOLEAN
protected static intDT_COUNT
protected static intDT_FINAL
protected static intDT_FINAL1
protected static intDT_FINAL2
protected static intDT_FORM
protected static intDT_ID
protected static intDT_LANGUAGE
protected static intDT_MAXOCCURS
protected static intDT_MAXOCCURS1
protected static intDT_MEMBERTYPES
protected static intDT_MINOCCURS1
protected static intDT_NAMESPACE
protected static intDT_NCNAME
protected static intDT_NONNEGINT
protected static intDT_POSINT
protected static intDT_PROCESSCONTENTS
protected static intDT_QNAME
protected static intDT_STRING
protected static intDT_TOKEN
protected static intDT_USE
protected static intDT_WHITESPACE
protected static intDT_XPATH
protected static intDT_XPATH1
protected VectorfNamespaceList
protected HashtablefNonSchemaAttrs
protected XSDHandlerfSchemaHandler
protected boolean[]fSeen
protected SymbolTablefSymbolTable
Constructor Summary
XSAttributeChecker(XSDHandler schemaHandler)
Method Summary
Object[]checkAttributes(Element element, boolean isGlobal, 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.
Object[]checkAttributes(Element element, boolean isGlobal, 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.
voidcheckNonSchemaAttributes(XSGrammarBucket grammarBucket)
protected Object[]getAvailableArray()
static Stringnormalize(String content, short ws)
voidreset(SymbolTable symbolTable)
voidresolveNamespace(Element element, Attr[] attrs, SchemaNamespaceSupport nsSupport)
voidreturnAttrArray(Object[] attrArray, XSDocumentInfo schemaDoc)

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_ENUMNSDECLS

public static final int ATTIDX_ENUMNSDECLS

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_FROMDEFAULT

public static final int ATTIDX_FROMDEFAULT

ATTIDX_ID

public static final int ATTIDX_ID

ATTIDX_ISRETURNED

public static final int ATTIDX_ISRETURNED

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_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

DT_ANYURI

protected static final int DT_ANYURI

DT_BLOCK

protected static final int DT_BLOCK

DT_BLOCK1

protected static final int DT_BLOCK1

DT_BOOLEAN

protected static final int DT_BOOLEAN

DT_COUNT

protected static final int DT_COUNT

DT_FINAL

protected static final int DT_FINAL

DT_FINAL1

protected static final int DT_FINAL1

DT_FINAL2

protected static final int DT_FINAL2

DT_FORM

protected static final int DT_FORM

DT_ID

protected static final int DT_ID

DT_LANGUAGE

protected static final int DT_LANGUAGE

DT_MAXOCCURS

protected static final int DT_MAXOCCURS

DT_MAXOCCURS1

protected static final int DT_MAXOCCURS1

DT_MEMBERTYPES

protected static final int DT_MEMBERTYPES

DT_MINOCCURS1

protected static final int DT_MINOCCURS1

DT_NAMESPACE

protected static final int DT_NAMESPACE

DT_NCNAME

protected static final int DT_NCNAME

DT_NONNEGINT

protected static final int DT_NONNEGINT

DT_POSINT

protected static final int DT_POSINT

DT_PROCESSCONTENTS

protected static final int DT_PROCESSCONTENTS

DT_QNAME

protected static final int DT_QNAME

DT_STRING

protected static final int DT_STRING

DT_TOKEN

protected static final int DT_TOKEN

DT_USE

protected static final int DT_USE

DT_WHITESPACE

protected static final int DT_WHITESPACE

DT_XPATH

protected static final int DT_XPATH

DT_XPATH1

protected static final int DT_XPATH1

fNamespaceList

protected Vector fNamespaceList

fNonSchemaAttrs

protected Hashtable fNonSchemaAttrs

fSchemaHandler

protected XSDHandler fSchemaHandler

fSeen

protected boolean[] fSeen

fSymbolTable

protected SymbolTable fSymbolTable

Constructor Detail

XSAttributeChecker

public XSAttributeChecker(XSDHandler schemaHandler)

Method Detail

checkAttributes

public Object[] checkAttributes(Element element, boolean isGlobal, 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 Object[] checkAttributes(Element element, boolean isGlobal, 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)

getAvailableArray

protected Object[] getAvailableArray()

normalize

public static String normalize(String content, short ws)

reset

public void reset(SymbolTable symbolTable)

resolveNamespace

public void resolveNamespace(Element element, Attr[] attrs, SchemaNamespaceSupport nsSupport)

returnAttrArray

public void returnAttrArray(Object[] attrArray, XSDocumentInfo schemaDoc)
Copyright © 1999-2005 Apache XML Project. All Rights Reserved.