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 348859 2005-11-25 03:21:32Z sandygao $
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_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 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_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
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:
9

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_LANGUAGE

protected static final int DT_LANGUAGE
Field Value:
8

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 <schema> or <redefine>
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 <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(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-2006 The Apache Software Foundation. All Rights Reserved.