#include <Attributes.hpp>
Inheritance diagram for Attributes:
Public Member Functions | |
Constructors and Destructor | |
Attributes () | |
virtual | ~Attributes () |
The virtual attribute list interface | |
virtual unsigned int | getLength () const =0 |
virtual const XMLCh * | getURI (const unsigned int index) const =0 |
virtual const XMLCh * | getLocalName (const unsigned int index) const =0 |
virtual const XMLCh * | getQName (const unsigned int index) const =0 |
virtual const XMLCh * | getType (const unsigned int index) const =0 |
virtual const XMLCh * | getValue (const unsigned int index) const =0 |
virtual int | getIndex (const XMLCh *const uri, const XMLCh *const localPart) const =0 |
virtual int | getIndex (const XMLCh *const qName) const =0 |
virtual const XMLCh * | getType (const XMLCh *const uri, const XMLCh *const localPart) const =0 |
virtual const XMLCh * | getType (const XMLCh *const qName) const =0 |
virtual const XMLCh * | getValue (const XMLCh *const uri, const XMLCh *const localPart) const =0 |
virtual const XMLCh * | getValue (const XMLCh *const qName) const =0 |
Private Member Functions | |
Attributes (const Attributes &) | |
Attributes & | operator= (const Attributes &) |
The SAX2 parser implements this interface and passes an instance to the SAX2 application as the last 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 AttributesImpl helper class provides a convenient constructor for doing so).
An Attributes 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 Attributes. First, it can iterate through the entire list:
public void startElement (String uri, String localpart, String qName, Attributes atts) { for (int i = 0; i < atts.getLength(); i++) { String Qname = atts.getQName(i); String URI = atts.getURI(i) String local = atts.GetLocalName(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 uri, String localpart, String qName, Attributes atts) { String identifier = atts.getValue("id"); String label = atts.getValue("label"); [...] }
The AttributesImpl helper class provides a convenience implementation for use by parser or application writers.
AttributesImpl::AttributesImpl
Definition at line 170 of file Attributes.hpp.
Attributes::Attributes | ( | ) | [inline] |
Default constructor
Definition at line 179 of file Attributes.hpp.
virtual Attributes::~Attributes | ( | ) | [inline, virtual] |
Destructor
Definition at line 184 of file Attributes.hpp.
Attributes::Attributes | ( | const Attributes & | ) | [private] |
virtual int Attributes::getIndex | ( | const XMLCh *const | qName | ) | const [pure virtual] |
Look up the index of an attribute by XML 1.0 qualified name.
qName | The qualified (prefixed) name. |
Implemented in VecAttributesImpl.
virtual int Attributes::getIndex | ( | const XMLCh *const | uri, | |
const XMLCh *const | localPart | |||
) | const [pure virtual] |
Look up the index of an attribute by Namespace name.
uri | The Namespace URI, or the empty string if the name has no Namespace URI. | |
localPart | The attribute's local name. |
Implemented in VecAttributesImpl.
virtual unsigned int Attributes::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.
Implemented in VecAttributesImpl.
Referenced by SAX2Handler::parseCameraAttributes(), SAX2Handler::parseCylinderAttributes(), SAX2Handler::parseInteractiveButtonAttributes(), SAX2Handler::parseJointAttributes(), SAX2Handler::parseMovableObjectAttributes(), SAX2Handler::parsePolyederAttributes(), SAX2Handler::parseSceneAttributes(), SAX2Handler::parseSimObjectAttributes(), SAX2Handler::parseSphereAttributes(), SAX2Handler::parseSurfaceAttributes(), SAX2Handler::parseUseAttributes(), and SAX2Handler::parseWhiskerAttributes().
virtual const XMLCh* Attributes::getLocalName | ( | const unsigned int | index | ) | const [pure virtual] |
Return the local name of an attribute in this list (by position).
The QNames 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.
index | The index of the attribute in the list (starting at 0). |
Implemented in VecAttributesImpl.
Referenced by SAX2Handler::parseCameraAttributes(), SAX2Handler::parseCylinderAttributes(), SAX2Handler::parseInteractiveButtonAttributes(), SAX2Handler::parseJointAttributes(), SAX2Handler::parseMovableObjectAttributes(), SAX2Handler::parsePolyederAttributes(), SAX2Handler::parseSceneAttributes(), SAX2Handler::parseSimObjectAttributes(), SAX2Handler::parseSphereAttributes(), SAX2Handler::parseSurfaceAttributes(), SAX2Handler::parseUseAttributes(), and SAX2Handler::parseWhiskerAttributes().
virtual const XMLCh* Attributes::getQName | ( | const unsigned int | index | ) | const [pure virtual] |
Return the qName of an attribute in this list (by position).
The QNames 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.
index | The index of the attribute in the list (starting at 0). |
Implemented in VecAttributesImpl.
Look up an attribute's type by XML 1.0 qualified name.
See getType for a description of the possible types.
qName | The XML 1.0 qualified name. |
Implemented in VecAttributesImpl.
virtual const XMLCh* Attributes::getType | ( | const XMLCh *const | uri, | |
const XMLCh *const | localPart | |||
) | const [pure virtual] |
Look up an attribute's type by Namespace name.
See getType for a description of the possible types.
uri | The Namespace URI, or the empty String if the name has no Namespace URI. | |
localPart | The local name of the attribute. |
Implemented in VecAttributesImpl.
virtual const XMLCh* Attributes::getType | ( | const unsigned int | 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 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".
index | The index of the attribute in the list (starting at 0). |
getType(String)
Implemented in VecAttributesImpl.
virtual const XMLCh* Attributes::getURI | ( | const unsigned int | index | ) | const [pure virtual] |
Return the namespace URI of an attribute in this list (by position).
The QNames 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.
index | The index of the attribute in the list (starting at 0). |
Implemented in VecAttributesImpl.
Look up an attribute's value by XML 1.0 qualified name.
See getValue for a description of the possible values.
qName | The XML 1.0 qualified name. |
Implemented in VecAttributesImpl.
virtual const XMLCh* Attributes::getValue | ( | const XMLCh *const | uri, | |
const XMLCh *const | localPart | |||
) | const [pure virtual] |
Look up an attribute's value by Namespace name.
See getValue for a description of the possible values.
uri | The Namespace URI, or the empty String if the name has no Namespace URI. | |
localPart | The local name of the attribute. |
Implemented in VecAttributesImpl.
virtual const XMLCh* Attributes::getValue | ( | const unsigned int | 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.
index | The index of the attribute in the list (starting at 0). |
getValue(XMLCh*)
Implemented in VecAttributesImpl.
Referenced by SAX2Handler::parseCameraAttributes(), SAX2Handler::parseCylinderAttributes(), SAX2Handler::parseInteractiveButtonAttributes(), SAX2Handler::parseJointAttributes(), SAX2Handler::parseMovableObjectAttributes(), SAX2Handler::parsePolyederAttributes(), SAX2Handler::parseSceneAttributes(), SAX2Handler::parseSimObjectAttributes(), SAX2Handler::parseSphereAttributes(), SAX2Handler::parseSurfaceAttributes(), SAX2Handler::parseUseAttributes(), and SAX2Handler::parseWhiskerAttributes().
Attributes& Attributes::operator= | ( | const Attributes & | ) | [private] |