[XML-SIG] SAX2: Attribute extensions
Sun, 25 Apr 1999 09:13:37 -0600
> This posting specifies two interfaces for information needed by the
> DOM (and possibly also others) and also for full XML 1.0 conformance.
> I'm not really sure whether we should actually use all of this, so
> opinions are welcome.
> class AttributeList2:
> def isSpecified(self,attr):
> """Returns true if the attribute was explicitly specified in the
> document and false otherwise. attr can be the attribute name or
> its index in the AttributeList."""
This is pretty much essential for full DOM support, and thus it would help us
greatly for the SAX builder in 4DOM.
> def getEntityRefList(self,attr):
> """This returns the EntityRefList (see below) for an attribute,
> which can be specified by name or index."""
> The class below is inteded to be used for discovering entity reference
> boundaries inside attribute values. This is needed because the XML 1.0
> recommendation requires parsers to report unexpanded entity references,
> also inside attribute values. Whether this is really
> something we want is another matter.
I'm not clear on what the alternative is. For example,
if the parser doesn't expand &monty;, do you suggest that it should instead
just return the literal "xx&monty;xx" as the attribute value. leaving the
application to spot the "&" and assume an entity reference appropriately?
This seems rather a shift in burden to the app. If this is not what you mean,
then it would seem to make sense for the parser to report unexpanded entity
> class EntityRefList:
> def getLength(self):
> "Returns the number of entity references inside this attribute value."
> def getEntityName(self, ix):
> "Returns the name of entity reference number ix (zero-based index)."
> def getEntityRefStart(self, ix):
> """Returns the index of the first character inside the attribute
> value that stems from entity reference number ix."""
> def getEntityRefEnd(self, ix):
> "Returns the index of the last character in entity reference ix."
> One redeeming feature of this interface is that it lives entirely
> outside the attribute value, and so can be ignored entirely by those
> who are not interested.
FourThought LLC, IT Consultants
Software engineering, project management, Intranets and Extranets