Unexpanded Entity Reference Information Items

For any nonvalidating XML parser that doesn’t read all external entities—possibly because it was configured not to do so or because it didn’t choose to implement that feature—the XML specification says you need to be able to indicate when an entity that would normally be parsed wasn’t actually processed. These unexpanded entities are not the same as “unparsed” entities, although neither kind of entity gets parsed.

The XML Infoset describes some information that can be made available in one of those cases: when the entity was an external general entity. For external parameter entities, the Infoset is silent beyond defining a document information item property to expose whether all declarations have been processed; no declarations are exposed.

Property

Callbacks

Explanation

[name]

Content.skippedEntity(), name parameter

SAX2 makes this callback for all entities that have been skipped, including parameter and internal entities.

[system identifier]

DeclHandler.externalEntityDecl(), systemId parameter

If [all declarations processed] is false, this information may be unavailable. Otherwise, the application must have recorded this information for later use. Note that SAX parsers absolutize this property against the appropriate base URI before reporting it. However, some parsers have a bug here, and don’t absolutize this URI.

[public identifier]

DeclHandler.externalEntityDecl(), publicId parameter

If [all declarations ...

Get SAX2 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.