Class Summary : TBufferedAttributes2Impl

SAX2 extension helper for additional Attributes information, implementing the
IBufferedAttributes2 interface.
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY.

This is not part of core-only SAX2 distributions.

The specified flag for each attribute will always be true, unless it has been set to false in the copy constructor or using setSpecified. Similarly, the declared flag for each attribute will always be false, except for defaulted attributes (specified is false), non-CDATA attributes, or when it is set to true using setDeclared. If you change an attribute's type by hand, you may need to modify its declared flag to match.


Since : SAX 2.0 (extensions 1.1 alpha)

Methods

function isDeclared(Integer) : Boolean
function isDeclared(PSAXChar, Integer) : Boolean
function isDeclared(PSAXChar, Integer, PSAXChar, Integer) : Boolean
function isSpecified(Integer) : Boolean
function isSpecified(PSAXChar, Integer, PSAXChar, Integer) : Boolean
function isSpecified(PSAXChar, Integer) : Boolean
procedure setAttributes(IBufferedAttributes)
procedure addAttribute(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)
procedure removeAttribute(Integer)
procedure setDeclared(Integer, Boolean)
procedure setSpecified(Integer, Boolean)


function isDeclared( index : Integer) : Boolean;

Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
Parameter : index The attribute index (zero-based).
Result : true if the attribute was declared in the DTD, false otherwise.
Exception : Exception When the supplied index does not identify an attribute.

Top


function isDeclared( qName : PSAXChar; qNameLength : Integer) : Boolean;

Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
Parameter : qName The XML 1.0 qualified name.
Parameter : qNameLength The length of the uri buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Result : true if the attribute was declared in the DTD, false otherwise.
Exception : ESAXIllegalArgumentException When the supplied name does not identify an attribute.

Top


function isDeclared( uri : PSAXChar; uriLength : Integer; localName : PSAXChar; localNameLength : Integer) : Boolean;

Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).

Remember that since DTDs do not "understand" namespaces, the namespace URI associated with an attribute may not have come from the DTD. The declaration will have applied to the attribute's qName.


Parameter : uri The Namespace URI, or the empty string if the name has no Namespace URI.
Parameter : uriLength The length of the uri buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : localName The attribute's local name.
Parameter : localNameLength The length of the localName buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Result : true if the attribute was declared in the DTD, false otherwise.
Exception : ESAXIllegalArgumentException When the supplied names do not identify an attribute.

Top


function isSpecified( index : Integer) : Boolean;

Returns the current value of an attribute's "specified" flag.
Parameter : index The attribute index (zero-based).
Result : true if the value was found in the XML text, false if the value was provided by DTD defaulting.
Exception : ESAXIllegalArgumentException When the supplied index does not identify an attribute.

Top


function isSpecified( uri : PSAXChar; uriLength : Integer; localName : PSAXChar; localNameLength : Integer) : Boolean;

Returns the current value of an attribute's "specified" flag.
Parameter : uri The Namespace URI, or the empty string if the name has no Namespace URI.
Parameter : uriLength The length of the uri buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : localName The attribute's local name.
Parameter : localNameLength The length of the localName buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Result : true if the value was found in the XML text, false if the value was provided by DTD defaulting.
Exception : ESAXIllegalArgumentException When the supplied names do not identify an attribute.

Top


function isSpecified( qName : PSAXChar; qNameLength : Integer) : Boolean;

Returns the current value of an attribute's "specified" flag.
Parameter : qName The XML 1.0 qualified name.
Parameter : qNameLength The length of the qName buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Result : true if the value was found in the XML text, false if the value was provided by DTD defaulting.
Exception : ESAXIllegalArgumentException When the supplied name does not identify an attribute.

Top


procedure setAttributes(const atts : IBufferedAttributes);

Copy an entire Attributes object. The "specified" flags are assigned as true, unless the object is an Attributes2 object in which case those values are copied.
See : TBufferedAttributesImpl.setAttributes

Top


procedure addAttribute( uri : PSAXChar; uriLength : Integer; localName : PSAXChar; localNameLength : Integer; qName : PSAXChar; qNameLength : Integer; attrType : PSAXChar; attrTypeLength : Integer; value : PSAXChar; valueLength : Integer);

Add an attribute to the end of the list, setting its "specified" flag to true. To set that flag's value to false, use setSpecified.

Unless the attribute type is CDATA, this attribute is marked as being declared in the DTD. To set that flag's value to true for CDATA attributes, use setDeclared.


See : TBufferedAttributesImpl.addAttribute
Parameter : uri The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.
Parameter : uriLength The length of the uri buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : localName The local name, or the empty string if Namespace processing is not being performed.
Parameter : localNameLength The length of the localName buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : qName The qualified (prefixed) name, or the empty string if qualified names are not available.
Parameter : qNameLength The length of the qName buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : attrType The attribute type as a string.
Parameter : attrTypeLength The length of the attrType buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : value The attribute value.
Parameter : valueLength The length of the value buffer The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.

Top


procedure removeAttribute( index : Integer);

Remove an attribute declaration.
Parameter : index The index of the attribute (zero-based).

Top


procedure setDeclared( index : Integer; value : Boolean);

Assign a value to the "declared" flag of a specific attribute. This is normally needed only for attributes of type CDATA, including attributes whose type is changed to or from CDATA.
Parameter : index The index of the attribute (zero-based).
Parameter : value The desired flag value.
Exception : ESAXIllegalArgumentException When the supplied index does not identify an attribute.
See : TBufferedAttributes2Impl.setType

Top


procedure setSpecified( index : Integer; value : Boolean);

Assign a value to the "specified" flag of a specific attribute. This is the only way this flag can be cleared, except clearing by initialization with the copy constructor.
Parameter : index The index of the attribute (zero-based).
Parameter : value The desired flag value.
Exception : ESAXIllegalArgumentException When the supplied index does not identify an attribute.

Top