Top Description Fields Constructors Methods
org.apache.xerces.impl.xs.traversers

public Class XSAttributeChecker

Additional top-level classes in compilation unit: OneAttr, Container, SmallContainer, LargeContainer.

extends Object
Class Inheritance
Imports
java.util.Hashtable, .Iterator, .Map, .StringTokenizer, .Vector, org.apache.xerces.impl.dv.InvalidDatatypeValueException, .XSSimpleType, org.apache.xerces.impl.xs.SchemaGrammar, .SchemaNamespaceSupport, .SchemaSymbols, .XSAttributeDecl, .XSGrammarBucket, .XSWildcardDecl, org.apache.xerces.impl.xs.util.XInt, .XIntPool, org.apache.xerces.util.DOMUtil, .SymbolTable, .XMLChar, .XMLSymbols, org.apache.xerces.xni.QName, org.apache.xerces.xs.XSConstants, org.w3c.dom.Attr, .Element

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
Author
Sandy Gao, IBM
Version
$Id: XSAttributeChecker.java 704619 2008-10-14 18:59:35Z mrglavas $

Field Summary

Modifier and TypeField and Description
public static final int
public static final int
public static final int
public static final int
public static final int
private static int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
private static final String
private static final String
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
private static final String
private static final String
pack-priv Object[][]
private static final Hashtable<K, V>
private static final Hashtable<K, V>
private static final XSSimpleType[]
protected Vector<E>
protected Hashtable<K, V>
pack-priv int
protected XSDHandler
protected boolean[]
private static boolean[]
protected SymbolTable
private static Object[]
private static final XIntPool
pack-priv static final int
pack-priv static final int
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt
private static final XInt

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Object[]

Returns:

an array containing attribute values
checkAttributes
(Element
which element to check
element
,
boolean
whether a child of <schema> or <redefine>
isGlobal
,
XSDocumentInfo
the document where the element lives in
schemaDoc
)

Check whether the specified element conforms to the attributes restriction an array of attribute values is returned.

public Object[]

Returns:

an array containing attribute values
checkAttributes
(Element
which element to check
element
,
boolean
whether a child of <schema> or <redefine>
isGlobal
,
XSDocumentInfo
the document where the element lives in
schemaDoc
,
boolean
whether to tread enumeration value as QName
enumAsQName
)

Check whether the specified element conforms to the attributes restriction an array of attribute values is returned.

public void
protected Object[]
public static String
normalize(String content, short ws)

pack-priv void
public void
reset(SymbolTable symbolTable)

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

public void
returnAttrArray(Object[] attrArray, XSDocumentInfo schemaDoc)

private Object
validate(Object[] attrValues, String attr, String ivalue, int dvIndex, XSDocumentInfo schemaDoc)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ATTIDX_ABSTRACTback to summary
public static final int ATTIDX_ABSTRACT
ATTIDX_AFORMDEFAULTback to summary
public static final int ATTIDX_AFORMDEFAULT
ATTIDX_BASEback to summary
public static final int ATTIDX_BASE
ATTIDX_BLOCKback to summary
public static final int ATTIDX_BLOCK
ATTIDX_BLOCKDEFAULTback to summary
public static final int ATTIDX_BLOCKDEFAULT
ATTIDX_COUNTback to summary
private static int ATTIDX_COUNT
ATTIDX_DEFAULTback to summary
public static final int ATTIDX_DEFAULT
ATTIDX_EFORMDEFAULTback to summary
public static final int ATTIDX_EFORMDEFAULT
ATTIDX_ENUMNSDECLSback to summary
public static final int ATTIDX_ENUMNSDECLS
ATTIDX_FINALback to summary
public static final int ATTIDX_FINAL
ATTIDX_FINALDEFAULTback to summary
public static final int ATTIDX_FINALDEFAULT
ATTIDX_FIXEDback to summary
public static final int ATTIDX_FIXED
ATTIDX_FORMback to summary
public static final int ATTIDX_FORM
ATTIDX_FROMDEFAULTback to summary
public static final int ATTIDX_FROMDEFAULT
ATTIDX_IDback to summary
public static final int ATTIDX_ID
ATTIDX_ISRETURNEDback to summary
public static final int ATTIDX_ISRETURNED
ATTIDX_ITEMTYPEback to summary
public static final int ATTIDX_ITEMTYPE
ATTIDX_MAXOCCURSback to summary
public static final int ATTIDX_MAXOCCURS
ATTIDX_MEMBERTYPESback to summary
public static final int ATTIDX_MEMBERTYPES
ATTIDX_MINOCCURSback to summary
public static final int ATTIDX_MINOCCURS
ATTIDX_MIXEDback to summary
public static final int ATTIDX_MIXED
ATTIDX_NAMEback to summary
public static final int ATTIDX_NAME
ATTIDX_NAMESPACEback to summary
public static final int ATTIDX_NAMESPACE
ATTIDX_NAMESPACE_LISTback to summary
public static final int ATTIDX_NAMESPACE_LIST
ATTIDX_NILLABLEback to summary
public static final int ATTIDX_NILLABLE
ATTIDX_NONSCHEMAback to summary
public static final int ATTIDX_NONSCHEMA
ATTIDX_PROCESSCONTENTSback to summary
public static final int ATTIDX_PROCESSCONTENTS
ATTIDX_PUBLICback to summary
public static final int ATTIDX_PUBLIC
ATTIDX_REFback to summary
public static final int ATTIDX_REF
ATTIDX_REFERback to summary
public static final int ATTIDX_REFER
ATTIDX_SCHEMALOCATIONback to summary
public static final int ATTIDX_SCHEMALOCATION
ATTIDX_SOURCEback to summary
public static final int ATTIDX_SOURCE
ATTIDX_SUBSGROUPback to summary
public static final int ATTIDX_SUBSGROUP
ATTIDX_SYSTEMback to summary
public static final int ATTIDX_SYSTEM
ATTIDX_TARGETNAMESPACEback to summary
public static final int ATTIDX_TARGETNAMESPACE
ATTIDX_TYPEback to summary
public static final int ATTIDX_TYPE
ATTIDX_USEback to summary
public static final int ATTIDX_USE
ATTIDX_VALUEback to summary
public static final int ATTIDX_VALUE
ATTIDX_VERSIONback to summary
public static final int ATTIDX_VERSION
ATTIDX_XML_LANGback to summary
public static final int ATTIDX_XML_LANG
ATTIDX_XPATHback to summary
public static final int ATTIDX_XPATH
ATTRIBUTE_Nback to summary
private static final String ATTRIBUTE_N
ATTRIBUTE_Rback to summary
private static final String ATTRIBUTE_R
DT_ANYURIback to summary
protected static final int DT_ANYURI
DT_BLOCKback to summary
protected static final int DT_BLOCK
DT_BLOCK1back to summary
protected static final int DT_BLOCK1
DT_BOOLEANback to summary
protected static final int DT_BOOLEAN
DT_COUNTback to summary
protected static final int DT_COUNT
DT_FINALback to summary
protected static final int DT_FINAL
DT_FINAL1back to summary
protected static final int DT_FINAL1
DT_FINAL2back to summary
protected static final int DT_FINAL2
DT_FORMback to summary
protected static final int DT_FORM
DT_IDback to summary
protected static final int DT_ID
DT_LANGUAGEback to summary
protected static final int DT_LANGUAGE
DT_MAXOCCURSback to summary
protected static final int DT_MAXOCCURS
DT_MAXOCCURS1back to summary
protected static final int DT_MAXOCCURS1
DT_MEMBERTYPESback to summary
protected static final int DT_MEMBERTYPES
DT_MINOCCURS1back to summary
protected static final int DT_MINOCCURS1
DT_NAMESPACEback to summary
protected static final int DT_NAMESPACE
DT_NCNAMEback to summary
protected static final int DT_NCNAME
DT_NONNEGINTback to summary
protected static final int DT_NONNEGINT
DT_POSINTback to summary
protected static final int DT_POSINT
DT_PROCESSCONTENTSback to summary
protected static final int DT_PROCESSCONTENTS
DT_QNAMEback to summary
protected static final int DT_QNAME
DT_STRINGback to summary
protected static final int DT_STRING
DT_TOKENback to summary
protected static final int DT_TOKEN
DT_USEback to summary
protected static final int DT_USE
DT_WHITESPACEback to summary
protected static final int DT_WHITESPACE
DT_XPATHback to summary
protected static final int DT_XPATH
DT_XPATH1back to summary
protected static final int DT_XPATH1
ELEMENT_Nback to summary
private static final String ELEMENT_N
ELEMENT_Rback to summary
private static final String ELEMENT_R
fArrayPoolback to summary
pack-priv Object[][] fArrayPool
fEleAttrsMapGback to summary
private static final Hashtable<K, V> fEleAttrsMapG
fEleAttrsMapLback to summary
private static final Hashtable<K, V> fEleAttrsMapL
fExtraDVsback to summary
private static final XSSimpleType[] fExtraDVs
fNamespaceListback to summary
protected Vector<E> fNamespaceList
fNonSchemaAttrsback to summary
protected Hashtable<K, V> fNonSchemaAttrs
fPoolPosback to summary
pack-priv int fPoolPos
fSchemaHandlerback to summary
protected XSDHandler fSchemaHandler
fSeenback to summary
protected boolean[] fSeen
fSeenTempback to summary
private static boolean[] fSeenTemp
fSymbolTableback to summary
protected SymbolTable fSymbolTable
fTempArrayback to summary
private static Object[] fTempArray
fXIntPoolback to summary
private static final XIntPool fXIntPool
INC_POOL_SIZEback to summary
pack-priv static final int INC_POOL_SIZE
INIT_POOL_SIZEback to summary
pack-priv static final int INIT_POOL_SIZE
INT_ANY_ANYback to summary
private static final XInt INT_ANY_ANY
INT_ANY_LAXback to summary
private static final XInt INT_ANY_LAX
INT_ANY_LISTback to summary
private static final XInt INT_ANY_LIST
INT_ANY_NOTback to summary
private static final XInt INT_ANY_NOT
INT_ANY_SKIPback to summary
private static final XInt INT_ANY_SKIP
INT_ANY_STRICTback to summary
private static final XInt INT_ANY_STRICT
INT_EMPTY_SETback to summary
private static final XInt INT_EMPTY_SET
INT_QUALIFIEDback to summary
private static final XInt INT_QUALIFIED
INT_UNBOUNDEDback to summary
private static final XInt INT_UNBOUNDED
INT_UNQUALIFIEDback to summary
private static final XInt INT_UNQUALIFIED
INT_USE_OPTIONALback to summary
private static final XInt INT_USE_OPTIONAL
INT_USE_PROHIBITEDback to summary
private static final XInt INT_USE_PROHIBITED
INT_USE_REQUIREDback to summary
private static final XInt INT_USE_REQUIRED
INT_WS_COLLAPSEback to summary
private static final XInt INT_WS_COLLAPSE
INT_WS_PRESERVEback to summary
private static final XInt INT_WS_PRESERVE
INT_WS_REPLACEback to summary
private static final XInt INT_WS_REPLACE

Constructor Detail

XSAttributeCheckerback to summary
public XSAttributeChecker(XSDHandler schemaHandler)

Method Detail

checkAttributesback to summary
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:Element

which element to check

isGlobal:boolean

whether a child of <schema> or <redefine>

schemaDoc:XSDocumentInfo

the document where the element lives in

Returns:Object[]

an array containing attribute values

checkAttributesback to summary
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:Element

which element to check

isGlobal:boolean

whether a child of <schema> or <redefine>

schemaDoc:XSDocumentInfo

the document where the element lives in

enumAsQName:boolean

whether to tread enumeration value as QName

Returns:Object[]

an array containing attribute values

checkNonSchemaAttributesback to summary
public void checkNonSchemaAttributes(XSGrammarBucket grammarBucket)
getAvailableArrayback to summary
protected Object[] getAvailableArray()
normalizeback to summary
public static String normalize(String content, short ws)
reportSchemaErrorback to summary
pack-priv void reportSchemaError(String key, Object[] args, Element ele)
resetback to summary
public void reset(SymbolTable symbolTable)
resolveNamespaceback to summary
public void resolveNamespace(Element element, Attr[] attrs, SchemaNamespaceSupport nsSupport)
returnAttrArrayback to summary
public void returnAttrArray(Object[] attrArray, XSDocumentInfo schemaDoc)
validateback to summary
private Object validate(Object[] attrValues, String attr, String ivalue, int dvIndex, XSDocumentInfo schemaDoc) throws InvalidDatatypeValueException