[
Lists Home |
Date Index |
Thread Index
]
At 4:41 PM +0200 7/11/02, james anderson wrote:
>This quandry is an unfortunate artifact of the SAX interface.
>Isn't it better to try to report as closely as possible those things
>which were encoded?
>If one neglects this principle, what happens when one reserializes a document
>which did not contain an encoding feature for which an event was
>fabricated? for
>example the xmlns:xml='xxx' declaration. Perhaps the serialization code would
>suppress the encoding.
>
>> If the
>> prefix is used and there is no declaration, the namespace should be reported
>> anyway.
>
>Wouldn't the better behaviour be to report the respective names as if the
>namespace had been declared.
This is really an issue for discussion during the development of SAX
2.0 in 1999. Now in 2002, the issue is no longer open. The existing
solution works. It is more important not to change the behavior than
to make a breaking change that might at best marginally improve
consistency.
>> If an incorrect namespace were used, what would be the right error
>> behavior?
This is a little tricky. SAXX is unclear on this point. The parser
should report either a fatal error or an error. I've seen both
behaviors. In essence, it should do the same thing it does with any
other namespace error.
>Is there actually anything in the spec which precludes rebinding "xml"?
>
Yes. "The prefix xml is by definition bound to the namespace name
http://www.w3.org/XML/1998/namespace" The words "by definition"
clearly indicate that documents can't change this. It does not say,
"The prefix xml is initially bound to the namespace name
http://www.w3.org/XML/1998/namespace". Past discussions with the
authors of the Namespaces spec also clearly indicate that this was
there intent.
The XML Infoset spec is also clear on this point: "This set always
contains an item with the prefix xml which is implicitly bound to the
namespace name http://www.w3.org/XML/1998/namespace."
DOM Level 2 Core also states, that a NAMESPACE_ERR is "Raised if the
qualifiedName is malformed, if the qualifiedName has a prefix and the
namespaceURI is null, or if the qualifiedName has a prefix that is
'xml' and the namespaceURI is different from
"http://www.w3.org/XML/1998/namespace" [Namespaces]."
--
+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo@metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
| XML in a Nutshell, 2nd Edition (O'Reilly, 2002) |
| http://www.cafeconleche.org/books/xian2/ |
| http://www.amazon.com/exec/obidos/ISBN%3D0596002920/cafeaulaitA/ |
+----------------------------------+---------------------------------+
| Read Cafe au Lait for Java News: http://www.cafeaulait.org/ |
| Read Cafe con Leche for XML News: http://www.cafeconleche.org/ |
+----------------------------------+---------------------------------+
|