org.apache.xerces.impl.xs.traversers

Class 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,v 1.30 2004/01/29 20:32:05 sandygao Exp $

Author:
Sandy Gao, IBM

Field Summary

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_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_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 Vector
fNamespaceList
protected Hashtable
fNonSchemaAttrs
protected XSDHandler
fSchemaHandler
protected boolean[]
fSeen
protected SymbolTable
fSymbolTable

Constructor Summary

XSAttributeChecker(XSDHandler schemaHandler)

Method Summary

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.
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 Object[]
getAvailableArray()
static String
normalize(String content, short ws)
void
reset(SymbolTable symbolTable)
void
resolveNamespace(org.w3c.dom.Element element, org.w3c.dom.Attr attrs, SchemaNamespaceSupport nsSupport)
void
returnAttrArray(Object[] attrArray, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)

Field Details

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_XPATH

public static final int ATTIDX_XPATH


DT_ANYURI

protected static final int DT_ANYURI

Field Value:
0


DT_BLOCK

protected static final int DT_BLOCK

Field Value:
-1


DT_BLOCK1

protected static final int DT_BLOCK1

Field Value:
-2


DT_BOOLEAN

protected static final int DT_BOOLEAN

Field Value:
-15


DT_COUNT

protected static final int DT_COUNT

Field Value:
8


DT_FINAL

protected static final int DT_FINAL

Field Value:
-3


DT_FINAL1

protected static final int DT_FINAL1

Field Value:
-4


DT_FINAL2

protected static final int DT_FINAL2

Field Value:
-5


DT_FORM

protected static final int DT_FORM

Field Value:
-6


DT_ID

protected static final int DT_ID

Field Value:
1


DT_MAXOCCURS

protected static final int DT_MAXOCCURS

Field Value:
-7


DT_MAXOCCURS1

protected static final int DT_MAXOCCURS1

Field Value:
-8


DT_MEMBERTYPES

protected static final int DT_MEMBERTYPES

Field Value:
-9


DT_MINOCCURS1

protected static final int DT_MINOCCURS1

Field Value:
-10


DT_NAMESPACE

protected static final int DT_NAMESPACE

Field Value:
-11


DT_NCNAME

protected static final int DT_NCNAME

Field Value:
5


DT_NONNEGINT

protected static final int DT_NONNEGINT

Field Value:
-16


DT_POSINT

protected static final int DT_POSINT

Field Value:
-17


DT_PROCESSCONTENTS

protected static final int DT_PROCESSCONTENTS

Field Value:
-12


DT_QNAME

protected static final int DT_QNAME

Field Value:
2


DT_STRING

protected static final int DT_STRING

Field Value:
3


DT_TOKEN

protected static final int DT_TOKEN

Field Value:
4


DT_USE

protected static final int DT_USE

Field Value:
-13


DT_WHITESPACE

protected static final int DT_WHITESPACE

Field Value:
-14


DT_XPATH

protected static final int DT_XPATH

Field Value:
6


DT_XPATH1

protected static final int DT_XPATH1

Field Value:
7


fNamespaceList

protected Vector fNamespaceList


fNonSchemaAttrs

protected Hashtable fNonSchemaAttrs


fSchemaHandler

protected XSDHandler fSchemaHandler


fSeen

protected boolean[] fSeen


fSymbolTable

protected SymbolTable fSymbolTable

Constructor Details

XSAttributeChecker

public XSAttributeChecker(XSDHandler schemaHandler)

Method Details

checkAttributes

public 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 or
schemaDoc - - the document where the element lives in

Returns:
an array containing attribute values


checkAttributes

public 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 or
schemaDoc - - the document where the element lives in

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(org.w3c.dom.Element element,
                             org.w3c.dom.Attr attrs,
                             SchemaNamespaceSupport nsSupport)


returnAttrArray

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


Copyright B) 1999-2004 Apache XML Project. All Rights Reserved.