public class XSAttributeChecker
extends java.lang.Object
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 hashtablesModifier and Type | Field and Description |
---|---|
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 and Description |
---|
XSAttributeChecker(XSDHandler schemaHandler) |
Modifier and Type | Method and Description |
---|---|
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) |
public static final int ATTIDX_ABSTRACT
public static final int ATTIDX_AFORMDEFAULT
public static final int ATTIDX_BASE
public static final int ATTIDX_BLOCK
public static final int ATTIDX_BLOCKDEFAULT
public static final int ATTIDX_DEFAULT
public static final int ATTIDX_EFORMDEFAULT
public static final int ATTIDX_FINAL
public static final int ATTIDX_FINALDEFAULT
public static final int ATTIDX_FIXED
public static final int ATTIDX_FORM
public static final int ATTIDX_ID
public static final int ATTIDX_ITEMTYPE
public static final int ATTIDX_MAXOCCURS
public static final int ATTIDX_MEMBERTYPES
public static final int ATTIDX_MINOCCURS
public static final int ATTIDX_MIXED
public static final int ATTIDX_NAME
public static final int ATTIDX_NAMESPACE
public static final int ATTIDX_NAMESPACE_LIST
public static final int ATTIDX_NILLABLE
public static final int ATTIDX_NONSCHEMA
public static final int ATTIDX_PROCESSCONTENTS
public static final int ATTIDX_PUBLIC
public static final int ATTIDX_REF
public static final int ATTIDX_REFER
public static final int ATTIDX_SCHEMALOCATION
public static final int ATTIDX_SOURCE
public static final int ATTIDX_SUBSGROUP
public static final int ATTIDX_SYSTEM
public static final int ATTIDX_TARGETNAMESPACE
public static final int ATTIDX_TYPE
public static final int ATTIDX_USE
public static final int ATTIDX_VALUE
public static final int ATTIDX_ENUMNSDECLS
public static final int ATTIDX_VERSION
public static final int ATTIDX_XML_LANG
public static final int ATTIDX_XPATH
public static final int ATTIDX_FROMDEFAULT
public static final int ATTIDX_ISRETURNED
protected static final int DT_ANYURI
protected static final int DT_ID
protected static final int DT_QNAME
protected static final int DT_STRING
protected static final int DT_TOKEN
protected static final int DT_NCNAME
protected static final int DT_XPATH
protected static final int DT_XPATH1
protected static final int DT_LANGUAGE
protected static final int DT_COUNT
protected static final int DT_BLOCK
protected static final int DT_BLOCK1
protected static final int DT_FINAL
protected static final int DT_FINAL1
protected static final int DT_FINAL2
protected static final int DT_FORM
protected static final int DT_MAXOCCURS
protected static final int DT_MAXOCCURS1
protected static final int DT_MEMBERTYPES
protected static final int DT_MINOCCURS1
protected static final int DT_NAMESPACE
protected static final int DT_PROCESSCONTENTS
protected static final int DT_USE
protected static final int DT_WHITESPACE
protected static final int DT_BOOLEAN
protected static final int DT_NONNEGINT
protected static final int DT_POSINT
protected XSDHandler fSchemaHandler
protected SymbolTable fSymbolTable
protected java.util.Hashtable fNonSchemaAttrs
protected java.util.Vector fNamespaceList
protected boolean[] fSeen
public XSAttributeChecker(XSDHandler schemaHandler)
public void reset(SymbolTable symbolTable)
public java.lang.Object[] checkAttributes(org.w3c.dom.Element element, boolean isGlobal, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)
returnAttrArray
to return that array.element
- which element to checkisGlobal
- whether a child of <schema> or <redefine>schemaDoc
- the document where the element lives inpublic java.lang.Object[] checkAttributes(org.w3c.dom.Element element, boolean isGlobal, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc, boolean enumAsQName)
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.element
- which element to checkisGlobal
- whether a child of <schema> or <redefine>schemaDoc
- the document where the element lives inenumAsQName
- whether to tread enumeration value as QNamepublic void checkNonSchemaAttributes(XSGrammarBucket grammarBucket)
public static java.lang.String normalize(java.lang.String content, short ws)
protected java.lang.Object[] getAvailableArray()
public void returnAttrArray(java.lang.Object[] attrArray, org.apache.xerces.impl.xs.traversers.XSDocumentInfo schemaDoc)
public void resolveNamespace(org.w3c.dom.Element element, org.w3c.dom.Attr[] attrs, SchemaNamespaceSupport nsSupport)
Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.