- From: Elliotte Rusty Harold <elharo@metalab.unc.edu>
- Date: Sat, 1 Nov 2003 09:05:38 -0500
- To: xml-editor@w3.org
- Cc: xml-dev@lists.xml.org
The new third edition of XML inspired me to read through the latest errata. I have a problem with one of them that I think is a substantial and unnecessary change to the definition of XML. E57 states: Amend the first paragraph after the example declarations so that it reads: The value "default" signals that applications' default white-space processing modes are acceptable for this element; the value "preserve" indicates the intent that applications preserve all the white space. This declared intent is considered to apply to all elements within the content of the element where it is specified, unless [E13]overridden with another instance of the xml:space attribute. This specification does not give meaning to any value of xml:space other than "default" and "preserve". It is an error for other values to be specified; the XML processor MAY report the error or MAY recover by ignoring the attribute specification or by reporting the (erroneous) value to the application. Applications may ignore or reject erroneous values. Rationale Although the required behavior was clear when validating, it was under-specified when not validating. Making it an "error" makes it clear that "default" and "preserve" are the only blessed values, but that processors and applications are not obligated to react drastically. I disagree with allowing nonvalidating processors to signal any form of error when encountering xml:space="something else". I think the previous spec was quite clear that this was not allowed, and that should not be changed now. Furthermore, in practice, these "maybe fatal, maybe not" errors are a huge pain in the posterior. They are a major source of interoperability problems between parsers. They were a mistake in the first place, and I really, really don't want to see any new ones blessed in the spec. With regard to validating processors, the original spec is less clear. It states: A special attribute named xml:space may be attached to an element to signal an intention that in that element, white space should be preserved by applications. In valid documents, this attribute, like any other, must be declared if it is used. When declared, it must be given as an enumerated type whose values are one or both of "default" and "preserve". For example: A lot depends on the interpretation of "must" in the last sentence. In particular, is it a general rule for all declarations are does it just apply "In valid documents" as in the previous sentence. I prefer the latter interpretation, which would make it a validity error rather than a fatal error. Either way though, provided the attribute is properly declared in the DTD as specified here, I think it is still well-formed (though not valid) to have xml:space="something else" in a document parsed by a validating parser. I don't think this should be changed now. One final meta-note: I really wish these errata would be publicly discussed and debated before being snuck out the door in the dead of night. -- 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
Received on Saturday, 1 November 2003 09:08:13 UTC