Class XSAttributeChecker

java.lang.Object
org.apache.xerces.impl.xs.traversers.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

INTERNAL:

Usage of this class is not supported. It may be altered or removed at any time.
Version:
$Id: XSAttributeChecker.java 704619 2008-10-14 18:59:35Z mrglavas $
Author:
Sandy Gao, IBM
  • 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_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_ID

      public static final int ATTIDX_ID
    • 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_ENUMNSDECLS

      public static final int ATTIDX_ENUMNSDECLS
    • 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
    • ATTIDX_FROMDEFAULT

      public static final int ATTIDX_FROMDEFAULT
    • ATTIDX_ISRETURNED

      public static final int ATTIDX_ISRETURNED
    • DT_ANYURI

      protected static final int DT_ANYURI
      See Also:
    • DT_ID

      protected static final int DT_ID
      See Also:
    • DT_QNAME

      protected static final int DT_QNAME
      See Also:
    • DT_STRING

      protected static final int DT_STRING
      See Also:
    • DT_TOKEN

      protected static final int DT_TOKEN
      See Also:
    • DT_NCNAME

      protected static final int DT_NCNAME
      See Also:
    • DT_XPATH

      protected static final int DT_XPATH
      See Also:
    • DT_XPATH1

      protected static final int DT_XPATH1
      See Also:
    • DT_LANGUAGE

      protected static final int DT_LANGUAGE
      See Also:
    • DT_COUNT

      protected static final int DT_COUNT
      See Also:
    • DT_BLOCK

      protected static final int DT_BLOCK
      See Also:
    • DT_BLOCK1

      protected static final int DT_BLOCK1
      See Also:
    • DT_FINAL

      protected static final int DT_FINAL
      See Also:
    • DT_FINAL1

      protected static final int DT_FINAL1
      See Also:
    • DT_FINAL2

      protected static final int DT_FINAL2
      See Also:
    • DT_FORM

      protected static final int DT_FORM
      See Also:
    • DT_MAXOCCURS

      protected static final int DT_MAXOCCURS
      See Also:
    • DT_MAXOCCURS1

      protected static final int DT_MAXOCCURS1
      See Also:
    • DT_MEMBERTYPES

      protected static final int DT_MEMBERTYPES
      See Also:
    • DT_MINOCCURS1

      protected static final int DT_MINOCCURS1
      See Also:
    • DT_NAMESPACE

      protected static final int DT_NAMESPACE
      See Also:
    • DT_PROCESSCONTENTS

      protected static final int DT_PROCESSCONTENTS
      See Also:
    • DT_USE

      protected static final int DT_USE
      See Also:
    • DT_WHITESPACE

      protected static final int DT_WHITESPACE
      See Also:
    • DT_BOOLEAN

      protected static final int DT_BOOLEAN
      See Also:
    • DT_NONNEGINT

      protected static final int DT_NONNEGINT
      See Also:
    • DT_POSINT

      protected static final int DT_POSINT
      See Also:
    • fSchemaHandler

      protected XSDHandler fSchemaHandler
    • fSymbolTable

      protected SymbolTable fSymbolTable
    • fNonSchemaAttrs

      protected Hashtable fNonSchemaAttrs
    • fNamespaceList

      protected Vector fNamespaceList
    • fSeen

      protected boolean[] fSeen
  • Constructor Details

    • XSAttributeChecker

      public XSAttributeChecker(XSDHandler schemaHandler)
  • Method Details

    • reset

      public void reset(SymbolTable symbolTable)
    • checkAttributes

      public Object[] checkAttributes(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(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)
    • normalize

      public static String normalize(String content, short ws)
    • getAvailableArray

      protected Object[] getAvailableArray()
    • returnAttrArray

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

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