W3C home > Mailing lists > Public > public-qt-comments@w3.org > October 2005

RE: [Bug 1222] Serialization - Extensibility

From: Michael Kay <mhk@mhk.me.uk>
Date: Fri, 7 Oct 2005 09:36:00 +0100
To: "'Philip Peterson'" <beakesland@gmail.com>, <public-qt-comments@w3.org>
Message-ID: <E1ENnlb-0005mB-Oz@maggie.w3.org>

Thanks for the comment, Philip. As it happens, it's not ideal timing: we've
closed the books for comments during the "last call" period, and haven't yet
opened them for the "candidate recommendation" phase that hopefully will
come next. But the comment will be added to the list.

The purpose of the CR phase is to gather feedback to show that the specs are
implementable and usable, so there is still scope to consider changes in
details like this.

This decision was debated quite hotly. Actually two decisions: firstly to
add a rule to the serialization spec saying that C1 control characters in
HTML are an error that must be detected, and secondly, to say that extension
attributes in XSLT mustn't override this. The reasoning is that such
characters generally imply a character encoding error somewhere along the
line (typically Windows CP1252 encoding used in a file that wrongly declares
itself to be encoded in iso-8859-1), and the sooner such encoding errors are
detected, the easier it is to correct them.

Personally I'm a bit more inclined to pragmatism. I think the XQuery spec
has probably gone a bit too far by saying that vendor extensions can do
anything they like without limitation. (XQuery 4.16: "An option
declaration... may be used without limitation to modify the semantics of the
query".) But my own feeling is that this new rule in XSLT is too far in the
opposite direction. We've also recently spotted that it contradicts other
statements in the XSLT spec: section 2.9 Error Handling says "the effect of
serialization errors is implementation-defined", and section 20
Serialization says "If a processor serializes a final result tree, it
*should* do so as specified by [xsl:output]; however, it is not *required*
to do so." So we're going to have to take another look at it anyway.

Even if the XSLT spec does decide to stay with the very strict restrictions
on extensions, there's an escape clause that will remain: vendors are
allowed to provide their own serialization methods in addition to the
standard four. However, my view is that interoperability would suffer if we
pushed too many people down that route.

This, of course, is very much a personal response.

Michael Kay

> -----Original Message-----
> From: public-qt-comments-request@w3.org 
> [mailto:public-qt-comments-request@w3.org] On Behalf Of 
> Philip Peterson
> Sent: 06 October 2005 18:46
> To: public-qt-comments@w3.org
> Subject: Re: [Bug 1222] Serialization - Extensibility
> Hello,
> I've never posted to this type of forum before, and I hope I am doing
> so in the correct light, and at an appropriate time.
> This comment is purely from a real world developer that hopes to move
> toward using XHTML as
> an output method but will be kept from getting to this point buy the
> following comment
> Implementations may define additional serialization parameters....
> .....but they could not instruct the serializer to suppress the error
> that occurs when the
> html output method encounters illegal characters (see error SERE014).
> In the real world I will see the message.
> SERE0014: Illegal HTML character: decimal 149(as well as others)
> <xsl:output method="html" indent="yes"/>
> if i change to
> <xsl:output method="xhtml" indent="yes"/>
> it will fix my problem, however, It will cause other many problems
> with IE (the browser)
> and css that I cant resolve currently.
> While I understand the goal (I think) of this spec, not allowing
> workarounds will eliminate a real world solution from a real world
> problem,  and is a bit draconian and not very pragmatic.
> Thank you for all your hard work on this spec.
> Sincerely,
> Philip Peterson
Received on Friday, 7 October 2005 08:39:59 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:57:09 UTC