Xerces-C++: AttributeList Class Reference

Xerces-C++ 3.2.3

List of all members
AttributeList Class Referenceabstract

Interface for an element's attribute specifications. More...

## Public Member Functions
Constructors and Destructor
| AttributeList ()
| Default constructor. More...
virtual | ~AttributeList ()
| Destructor. More...

## The virtual attribute list interface
virtual XMLSize_t | getLength () const =0
| Return the number of attributes in this list. More...
virtual const XMLCh * | getName (const XMLSize_t index) const =0
| Return the name of an attribute in this list (by position). More...
virtual const XMLCh * | getType (const XMLSize_t index) const =0
| Return the type of an attribute in the list (by position). More...
virtual const XMLCh * | getValue (const XMLSize_t index) const =0
| Return the value of an attribute in the list (by position). More...
virtual const XMLCh * | getType (const XMLCh *const name) const =0
| Return the type of an attribute in the list (by name). More...
virtual const XMLCh * | getValue (const XMLCh *const name) const =0
| Return the value of an attribute in the list (by name). More...
virtual const XMLCh * | getValue (const char *const name) const =0
| Return the value of an attribute in the list (by name). More...

## Detailed Description

Interface for an element's attribute specifications.

The SAX parser implements this interface and passes an instance to the SAX application as the second argument of each startElement event.

The instance provided will return valid results only during the scope of the startElement invocation (to save it for future use, the application must make a copy: the AttributeListImpl helper class provides a convenient constructor for doing so).

An AttributeList includes only attributes that have been specified or defaulted: #IMPLIED attributes will not be included.

There are two ways for the SAX application to obtain information from the AttributeList. First, it can iterate through the entire list:

`public void startElement (String name, AttributeList atts) {
for (XMLSize_t i = 0; i < atts.getLength(); i++) {
String name = atts.getName(i);
String type = atts.getType(i);
String value = atts.getValue(i);
[...]
}
}`

(Note that the result of getLength() will be zero if there are no attributes.)

As an alternative, the application can request the value or type of specific attributes:

`public void startElement (String name, AttributeList atts) {
String identifier = atts.getValue("id");
String label = atts.getValue("label");
[...]
}`

The AttributeListImpl helper class provides a convenience implementation for use by parser or application writers.

See also
  DocumentHandler::startElement
  AttributeListImpl::AttributeListImpl

## Constructor & Destructor Documentation

## ◆ AttributeList()

AttributeList::AttributeList | ( |  | ) |

Default constructor.

## ◆ ~AttributeList()

virtual AttributeList::~AttributeList | ( |  | ) |
| virtual

Destructor.

## Member Function Documentation

## ◆ getLength()

virtual XMLSize_t AttributeList::getLength | ( |  | ) | const
| pure virtual

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.

Returns
  The number of attributes in the list.

## ◆ getName()

virtual const XMLCh* AttributeList::getName | ( | const XMLSize_t | index | ) | const
| pure virtual

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.

Parameters

  index | 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

## ◆ getType() [1/2]

virtual const XMLCh* AttributeList::getType | ( | const XMLCh *const | name | ) | const
| pure virtual

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

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

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

Parameters

  name | The name of the attribute.

Returns
  The attribute type as a string, or null if no such attribute exists.

See also
  getType

## ◆ getType() [2/2]

virtual const XMLCh* AttributeList::getType | ( | const XMLSize_t | index | ) | const
| pure virtual

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 Recommendation (clause 3.3.3, "Attribute-Value Normalization").

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

Parameters

  index | 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

## ◆ getValue() [1/3]

virtual const XMLCh* AttributeList::getValue | ( | const char *const | name | ) | const
| pure virtual

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

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

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

Parameters

  name | The name of the attribute in the list.

Returns
  The attribute value as a string, or null if no such attribute exists.

See also
  getValue

## ◆ getValue() [2/3]

virtual const XMLCh* AttributeList::getValue | ( | const XMLCh *const | name | ) | const
| pure virtual

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

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

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

Parameters

  name | The name of the attribute in the list.

Returns
  The attribute value as a string, or null if no such attribute exists.

See also
  getValue

## ◆ getValue() [3/3]

virtual const XMLCh* AttributeList::getValue | ( | const XMLSize_t | index | ) | const
| pure virtual

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.

Parameters

  index | 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

The documentation for this class was generated from the following file:

- AttributeList.hpp