## org.apache.xerces.framework
Class XMLAttrList

    java.lang.Object
      |
      +--org.apache.xerces.framework.XMLAttrList

public final class XMLAttrList
extends java.lang.Object
implements AttributeList

An instance of this class is used to represent the set of attributes for an element that are either directly specified or provided through a default value in the grammar for the document. XMLAttrList carries the attributes associated with an element from the scanner up to the application level (via the SAX AtributeList). Because all the attributes are bundled up together before being presented to the application, we don't have a way to build up an attribute value from pieces, most notably entity references.

There is typically one instance of this class for each instance of a parser. The parser may either use this object to hold the attributes of a single element, calling releaseAttrList() before each new element, or it may use this object to hold the attributes of all of the elements in the document.

To start saving a new set of attributes, the startAttrList() method is called, returning a handle for the attribute list. All addAttr() calls will be added to the set until a call is made to endAttrList(). A handle of -1 is used to indicate that there are no attributes in the set.

When an attribute is added to the set, the type of the attribute and an indicator of whether it was specified explicitly or through a default is provided.

The attributes in the set may be accessed either through the getFirstAttr() and getNextAttr() iteration interface, or the getAttributeList() method may be used to access the attribute list through the SAX `AttributeList` interface.

Version:
  $Id: XMLAttrList.java,v 1.10 2001/07/20 17:26:10 lmartin Exp $

Constructor Summary
`XMLAttrList(StringPool stringPool)` Constructor

Method Summary
`int` `addAttr(int attrName, int attValue, int attType, boolean specified, boolean search)`
`int` `addAttr(QName attribute, int attValue, int attType, boolean specified, boolean search)` Add an attribute to the current set.
`int[]` `endAttrList()` Terminate the current set of attributes.
`AttributeList` `getAttributeList(int attrListHandle)` Setup this instance to respond as an `AttributeList` implementation.
`int` `getAttrLocalpart(int attrIndex)` Return the localpart of the attribute.
`int` `getAttrName(int attrIndex)` Get the name of the attribute
`int` `getAttrPrefix(int attrIndex)` Get the prefix of the attribute.
`int` `getAttrURI(int attrIndex)` Return the uri of the attribute.
`int` `getAttType(int attrIndex)` Get the type of the attribute
`int` `getAttValue(int attrIndex)` Get the value of the attribute
`int` `getFirstAttr(int attrListHandle)` Get the first attribute in the attribute list.
`int` `getLength()` Return the number of attributes in this list.
`java.lang.String` `getLocalpart(int i)` Return the local part of an attribute in this list (by position).
`java.lang.String` `getName(int i)` Return the name of an attribute in this list (by position).
`int` `getNextAttr(int attrIndex)` Get the next attribute in the attribute list.
`java.lang.String` `getPrefix(int i)` Return the prefix of an attribute in this list (by position).
`java.lang.String` `getType(int i)` Return the type of an attribute in the list (by position).
`java.lang.String` `getType(java.lang.String name)` Return the type of an attribute in the list (by name).
`java.lang.String` `getURI(int i)` Returns the URI of an attribute in this list (by position).
`java.lang.String` `getValue(int i)` Return the value of an attribute in the list (by position).
`java.lang.String` `getValue(java.lang.String name)` Return the value of an attribute in the list (by name).
`boolean` `isSpecified(int attrIndex)` Was the attribute explicitly supplied or was it provided through a default?
`void` `releaseAttrList(int attrListHandle)` Make the resources of the current attribute list available for reuse.
`void` `reset(StringPool stringPool)` Reset this instance to an "empty" state.
`void` `setAttrURI(int attrIndex, int uri)` Sets the uri of the attribute.
`void` `setAttType(int attrIndex, int attTypeIndex)` Sets the type of the attribute.
`void` `setAttValue(int attrIndex, int attrValue)` Sets the value of the attribute.
`int` `startAttrList()` Start a new set of attributes.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### XMLAttrList

    public XMLAttrList(StringPool stringPool)

  Constructor
  Parameters:
    `stringPool` - The string pool instance to use.

Method Detail

### reset

    public void reset(StringPool stringPool)

  Reset this instance to an "empty" state.
  Parameters:
    `stringPool` - The string pool instance to use.

### addAttr

    public int addAttr(int attrName,
                       int attValue,
                       int attType,
                       boolean specified,
                       boolean search)
                throws java.lang.Exception

### addAttr

    public int addAttr(QName attribute,
                       int attValue,
                       int attType,
                       boolean specified,
                       boolean search)
                throws java.lang.Exception

  Add an attribute to the current set.
  Parameters:
    `attrName` - The name of the attribute, an index in the string pool.
    `attValue` - The value of the attribute, an index in the string pool.
    `attType` - The type of the attribute, an index in the string pool.
    `specified` - `true` if the attribute is specified directly; otherwise `false` is the attribute is provided through a default.
    `search` - `true` if the list should be searched for a duplicate.
  Returns:
    The index of this attribute; or -1 is `search` was `true` and `attrName` was already present.

### startAttrList

    public int startAttrList()

  Start a new set of attributes.
  Returns:
    The handle for the new set of attributes.

### endAttrList

    public int[] endAttrList()

  Terminate the current set of attributes.

### getAttrPrefix

    public int getAttrPrefix(int attrIndex)

  Get the prefix of the attribute.

### getAttrLocalpart

    public int getAttrLocalpart(int attrIndex)

  Return the localpart of the attribute.

### getAttrName

    public int getAttrName(int attrIndex)

  Get the name of the attribute
  Parameters:
    `attrIndex` - The index of the attribute.
  Returns:
    The name of the attribute, an index in the string pool.

### setAttrURI

    public void setAttrURI(int attrIndex,
                           int uri)

  Sets the uri of the attribute.

### getAttrURI

    public int getAttrURI(int attrIndex)

  Return the uri of the attribute.

### getAttValue

    public int getAttValue(int attrIndex)

  Get the value of the attribute
  Parameters:
    `attrIndex` - The index of the attribute.
  Returns:
    The value of the attribute, an index in the string pool.

### setAttValue

    public void setAttValue(int attrIndex,
                            int attrValue)

  Sets the value of the attribute.

### setAttType

    public void setAttType(int attrIndex,
                           int attTypeIndex)

  Sets the type of the attribute.

### getAttType

    public int getAttType(int attrIndex)

  Get the type of the attribute
  Parameters:
    `attrIndex` - The index of the attribute.
  Returns:
    The type of the attribute, an index in the string pool.

### isSpecified

    public boolean isSpecified(int attrIndex)

  Was the attribute explicitly supplied or was it provided through a default?
  Parameters:
    `attrIndex` - The index of the attribute.
  Returns:
    `true` if the attribute was specified directly; otherwise `false` is the attribute was provided through a default.

### releaseAttrList

    public void releaseAttrList(int attrListHandle)

  Make the resources of the current attribute list available for reuse.
  Parameters:
    `The` - attribute list handle.

### getFirstAttr

    public int getFirstAttr(int attrListHandle)

  Get the first attribute in the attribute list.
  Parameters:
    `attrListHandle` - The attribute list handle.
  Returns:
    The index of the first attribute in the specified attribute list or -1 if the handle is invalid.

### getNextAttr

    public int getNextAttr(int attrIndex)

  Get the next attribute in the attribute list.
  Parameters:
    `attrIndex` - The attribute index.
  Returns:
    The index of the next attribute after `attrIndex` in the same attribute list or -1 if there is no next index.

### getAttributeList

    public AttributeList getAttributeList(int attrListHandle)

  Setup this instance to respond as an `AttributeList` implementation.
  Returns:
    This instance as an `AttributeList`.

### getLength

    public int getLength()

  Return the number of attributes in this list.

  The SAX parser may provide attributes in any arbitrary order, regardless of the order in which they were declared or specified. The number of attributes may be zero.

  Specified by:
    getLength in interface AttributeList
  Returns:
    The number of attributes in the list.

### getPrefix

    public java.lang.String getPrefix(int i)

  Return the prefix of an attribute in this list (by position).

### getLocalpart

    public java.lang.String getLocalpart(int i)

  Return the local part of an attribute in this list (by position).

### getName

    public java.lang.String getName(int i)

  Return the name of an attribute in this list (by position).

  The names must be unique: the SAX parser shall not include the same attribute twice. Attributes without values (those declared #IMPLIED without a value specified in the start tag) will be omitted from the list.

  If the attribute name has a namespace prefix, the prefix will still be attached.

  Specified by:
    getName in interface AttributeList
  Parameters:
    `i` - The index of the attribute in the list (starting at 0).
  Returns:
    The name of the indexed attribute, or null if the index is out of range.
  See Also:
    `getLength()`

### getURI

    public java.lang.String getURI(int i)

  Returns the URI of an attribute in this list (by position).

### getType

    public java.lang.String getType(int i)

  Return the type of an attribute in the list (by position).

  The attribute type is one of the strings "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", or "NOTATION" (always in upper case).

  If the parser has not read a declaration for the attribute, or if the parser does not report attribute types, then it must return the value "CDATA" as stated in the XML 1.0 Recommentation (clause 3.3.3, "Attribute-Value Normalization").

  For an enumerated attribute that is not a notation, the parser will report the type as "NMTOKEN".

  Specified by:
    getType in interface AttributeList
  Parameters:
    `i` - The index of the attribute in the list (starting at 0).
  Returns:
    The attribute type as a string, or null if the index is out of range.
  See Also:
    `getLength()`, `getType(java.lang.String)`

### getValue

    public java.lang.String getValue(int i)

  Return the value of an attribute in the list (by position).

  If the attribute value is a list of tokens (IDREFS, ENTITIES, or NMTOKENS), the tokens will be concatenated into a single string separated by whitespace.

  Specified by:
    getValue in interface AttributeList
  Parameters:
    `i` - The index of the attribute in the list (starting at 0).
  Returns:
    The attribute value as a string, or null if the index is out of range.
  See Also:
    `getLength()`, `getValue(java.lang.String)`

### getType

    public java.lang.String getType(java.lang.String name)

  Return the type of an attribute in the list (by name).

  The return value is the same as the return value for getType(int).

  If the attribute name has a namespace prefix in the document, the application must include the prefix here.

  Specified by:
    getType in interface AttributeList
  Parameters:
    `name` - The name of the attribute.
  Returns:
    The attribute type as a string, or null if no such attribute exists.
  See Also:
    `getType(int)`

### getValue

    public java.lang.String getValue(java.lang.String name)

  Return the value of an attribute in the list (by name).

  The return value is the same as the return value for getValue(int).

  If the attribute name has a namespace prefix in the document, the application must include the prefix here.

  Specified by:
    getValue in interface AttributeList
  Parameters:
    `i` - The index of the attribute in the list.
  Returns:
    The attribute value as a string, or null if no such attribute exists.
  See Also:
    `getValue(int)`

Copyright © 1999-2001 Apache XML Project. All Rights Reserved.