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