[
Lists Home |
Date Index |
Thread Index
]
At 01:03 AM 12/5/2002 +0000, David Carlisle wrote:
> > As far as I can tell, XQuery and XSLT will both allow you to process data
> > in this way.
>
>No, they won't as Xquery's bias towards schema typing means that an
>implementation is allowed to just use the typed value and junk the
>original lexical string so if the original was
><Weight>123.456</Weight>
>you might get away with it but if it's
><Weight>0<!--I added this leading 0 for a reason-->123.4560</Weight>
>a query processor is allowed to report that as
><Weight>123.456</Weight>
>and information is lost.
Yes, this is true. The reason for this is that some XQuery implementations
may be creating strongly typed environments to be stored, eg, in a
relational database or an object - and these systems have no way of storing
a comment in between the digits of a single decimal number.
>It is lost because Xquery views the stated
>typing as more important than the XML markup. It is essentially not an
>XML processing language at all; it is language for querying typed trees.
A processor is only allowed to canonicalize typed data, and is certainly
never required to. In the absence of a datatype, the application could not
safely canonicalize, but the datatype says clearly how the data is to be
interpreted.
And one reason this can be helpful is the kind of interoperability problems
illustrated by your example: How many numbers does the following element
contain?
<Weight>0<!--I added this leading 0 for a reason-->123.4560</Weight>
Of course, you could simply say that depends on the application, and the
markup should not mandate whether one weight or two is intended...but
doesn't that tightly couple your data to the applications used to process it?
Jonathan
|