W3C home > Mailing lists > Public > w3c-ietf-xmldsig@w3.org > January to March 2000

RE: XPath transform

From: John Boyer <jboyer@uwi.com>
Date: Wed, 26 Jan 2000 10:02:59 -0800
To: "TAMURA Kent" <kent@trl.ibm.co.jp>, <w3c-ietf-xmldsig@w3.org>
Message-ID: <NDBBLAOMJKOFPMBCHJOIOECNCDAA.jboyer@uwi.com>
Hi Kent,

> 4) Questions.
>
> a) Would you agree that we should use c14n post-processing even though
this
> constrains XPath results more than you may have previously believed?  If
so,
> it is most likely that it will be changed.

I agree.

<John>Good.</John>

> b) Would you agree that it is sufficient for us to simply recommend
against
> use of Xpath functions that rely on an order for the attribute axis?

I agree.

<John>Good.</John>

> c) Would you agree that we should retain the c14n preprocessing for the
> reasons I described above?

(See below)

<John>See below.</John>

	--------------------------------

> 2) I was not attempting "arrogation" in defining the behavior of XSLT
> implementations.  I asked you a question, which you didn't answer.  The
> question was:  For any XPath expression E that yields a node-set which
> includes attributes, what is the character result of the XPath expression
> string(E) under your given XSLT implementation?  More importantly, whether
> the XPath people like it or not, it is a bug in their specification when
two
> applications that follow the "specification" yield different results for
> string(E).  It is not arrogance to point out that because a specification
> has a bug in it, not all compliant software will be usable.  Procrustean
> perhaps, but not arrogant.

I have looked into attribute orders of LotusXSL 0.19.2 [1] and
XT[2]+omquery[3] in these two days.  Both of them do not change
the input order of attribute, which is indicated by
element.getAttributes().item(unsigned long index) in the DOM.

The "string(E)" returns the attribute value of the first
attribute.

Ok, I have understood you think the XPath specification has
bugs.

<John>
Ok, thanks.  Now, I may be reading this wrong, but you're saying it doesn't
change the input order.  Do you mean that the the attributes are retained in
the order they originally appeared in the document?  In other words, if the
file on disk contained

<E attz="1" atty="2" attx="3"/>

then the string resulting from string(E) will be

<E attz="1" atty="2" attx="3"/>

despite the fact that the order of the attributes *would be* different if
they were sorted into alphabetic order?

Thanks in advance for testing this.
</John>

[1] http://www.alphaworks.ibm.com/tech/LotusXSL
[2] http://www.jclark.com/xml/xt.html
[3] http://www.246.ne.jp/~kamiya/pub/XPath4XT.html


> Note 3:  Despite not solving the attribute order problem, the c14n
> preprocessing is still useful for the following reasons:  a) By using
c14n,
> we at least guarantee that the encoding is UTF-8, so we will not need to
> figure out a way to affix a byte order to the XPath output (if the output
> were UTF-16, then the c14n algorithm would need this).  b) Attribute value
> normalizations are done in a consistent way. c) We reap all of the
benefits
> of the minimal canonicalization.

a) Does this mean the character encoding for XPath output other
than node-set should be the same as character encoding of the
input XML document?  Why?

<John>
No, (so I think we agree).  The postprocess c14n will standardize on UTF-8.
What I was referring to is that the result of the XPath expression, which is
fed into the postprocess c14n, is only guaranteed to be UTF-8 if we c14n
preprocess.  If we do not c14n preprocess, then the result of the XPath
expression may be in UTF-16.  If it is, then it will need a byte order mark
before we pass it to the c14n postprocess.

Do you agree with that?
</John>

b) XML processors do attribute value normalization.  It is done
while parsing before constructing SAX events or a DOM tree.

<John>
Yes, attribute normalization is done, but the exact rules can vary for some
attributes based on whether the XML processor is a validating or
non-validating processor.  The c14n preprocess guarantees that the actions
associated with a validating processor are performed in all cases.

Given these clarifications, do you agree that c14n preprocess is still
required?

Thanks,
John Boyer
Software Development Manager
UWI.Com -- The Internet Forms Company

</John>

--
TAMURA Kent @ Tokyo Research Laboratory, IBM
Received on Wednesday, 26 January 2000 13:03:31 GMT

This archive was generated by hypermail 2.2.0 + w3c-0.29 : Thursday, 13 January 2005 12:10:09 GMT