[
Lists Home |
Date Index |
Thread Index
]
At 8:30 PM -0800 1/5/04, Jeff Rafter wrote:
>I am willing to take that on faith, but just for the sake of throroughness,
>my question is more "why must it provide it". It seems that the same
>argument could be made for element and attribute declarations. Clearly the
>parser cannot ignore them, yet it is not required that the information be
>passed in one of the default interfaces-- they are only reported through the
>DeclHandler, an extension interface. So there is a precedent for the parser
>"not ignoring" a section of the document, yet simultaneously "not providing"
>it.
Element and attribute declarations are neither part of the instance
document nor of the document's information set. "Ignorable" white
space is. ContentHandler reports the document's content. Ignorable
white space is part of this content. Element and attribute
declarations aren't.
And parsers often can and do ignore element and ATTLIST declarations
in the external DTD subset. They are only required to process those
in the internal DTD subset, though they may of course process them
elsewhere.
Bottom line: SAX is designed to report the content of an instance
document as augmented by the DTD with default attribute values,
resolved entities, and attribute types. It is not an API for
processing the DTD itself. DeclHandler is mostly an occasionally
convenient afterthought that can easily be ignored if you don't need
it, not part of SAX's core mission.
--
Elliotte Rusty Harold
elharo@metalab.unc.edu
Effective XML (Addison-Wesley, 2003)
http://www.cafeconleche.org/books/effectivexml
http://www.amazon.com/exec/obidos/ISBN%3D0321150406/ref%3Dnosim/cafeaulaitA
|