XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Hans-Peter KüchlerSubject: SS5.1.173h: Error handling whitespace,comments,processing instructions,CDATA
Author: Hans-Peter Küchler
Date: 25 Apr 2004 07:41 PM
Hi, please open the project from the ZIP file. Open the file error8.xsl. Select the scenario "internal" and press F5. In the preview pane select "Text Preview".

1.Item
There is extra whitespace because the indent attribute of the stylesheet is "yes". But most of the extra whitespace is is not allowed. If I use the instructions from [XSL Transformations (XSLT)Version 1.0: 16.1 XML Output Method]

The xml output method should use an algorithm to output additional whitespace that ensures that the result if whitespace were to be stripped from the output using the process described in [3.4 Whitespace Stripping] with the set of whitespace-preserving elements consisting of just xsl:text would be the same when additional whitespace is output as when additional whitespace is not output.

I don't get the same results.

2.Item
The second root element in the output pane contains not only the string value of the original root element (from error8.xml) but also the value of the comment node and the value of the processing instruction node. But "The string-value of an element node is the concatenation of the string-values of all text node descendants of the element node in document order." [XML Path Language (XPath)Version 1.0, 5.2 Element Nodes] and "Characters inside comments, processing instructions and attribute values do not produce text nodes." [XML Path Language (XPath)Version 1.0: 5.7 Text Nodes]. The third root element contains the correct string value, the only difference is the use of 'xsl:value-of select="string(.)"' instead of 'xsl:value-of select="."'. Both invocation should result in the same output because "The xsl:value-of element is instantiated to create a text node in the result tree. The required select attribute is an expression; this expression is evaluated and the resulting object is converted to a string as if by a call to the string function." [XSL Transformations (XSLT)Version 1.0: 7.6 Computing Generated Text]

3.Item
Change the scenario to "ms.net" and press F5. Select in the preview pane "Preview Text". The whitespace handling of the msxml.net processor is better (but I thing its also not correct). Unfortunately the < and > characters from the CDATA section are not correct escaped.

regards Hans-Peter


Unknownerror8.zip
project with xml and xsl

Postnext
Alberto MassariSubject: Re: SS5.1.173h: Error handling whitespace,comments,processing instructions,CDATA
Author: Alberto Massari
Date: 26 Apr 2004 08:18 AM
Hi Hans-Peter,

At 19.57 25/04/2004 -0400, stylus-studio-tech Listmanager wrote:
>From: Hans-Peter Küchler
>
>Hi, please open the project from the ZIP file. Open the file error8.xsl.
>Select the scenario "internal" and press F5. In the preview pane select
>"Text Preview".
>
>1.Item
>There is extra whitespace because the indent attribute of the stylesheet
>is "yes". But most of the extra whitespace is is not allowed. If I use the

>instructions from [XSL Transformations (XSLT)Version 1.0: 16.1 XML Output

>Method]
>
>The xml output method should use an algorithm to output additional
>whitespace that ensures that the result if whitespace were to be stripped

>from the output using the process described in [3.4 Whitespace Stripping]

>with the set of whitespace-preserving elements consisting of just xsl:text

>would be the same when additional whitespace is output as when additional

>whitespace is not output.
>
>I don't get the same results.

The only difference I see between the output of Stylus/MSXML and the output

of Xalan/Saxon is that the latter don't generate the comment; and I think
Stylus and MSXML are right, as the comment should be copied by the copy-of,

being part of the source XML. Stylus also places the comment and the
processing instruction indented on a new line, while MSXML.NET only indents

the processing instruction; why do you say it's not allowed?


>2.Item
>The second root element in the output pane contains not only the string
>value of the original root element (from error8.xml) but also the value of

>the comment node and the value of the processing instruction node. But
>"The string-value of an element node is the concatenation of the
>string-values of all text node descendants of the element node in document

>order." [XML Path Language (XPath)Version 1.0, 5.2 Element Nodes] and
>"Characters inside comments, processing instructions and attribute values

>do not produce text nodes." [XML Path Language (XPath)Version 1.0: 5.7
>Text Nodes]. The third root element contains the correct string value, the

>only difference is the use of 'xsl:value-of select="string(.)"' instead
of
>'xsl:value-of select="."'. Both invocation should result in the same
>output because "The xsl:value-of element is instantiated to create a text

>node in the result tree. The required select attribute is an expression;
>this expression is evaluated and the resulting obj!
> ect is converted to a string as if by a call to the string function."
> [XSL Transformations (XSLT)Version 1.0: 7.6 Computing Generated Text]

You are right, this is a bug in the Stylus processor; the next update will

not generate comments and processing instructions when executing "value-of

select='.'"


>3.Item
>Change the scenario to "ms.net" and press F5. Select in the preview pane
>"Preview Text". The whitespace handling of the msxml.net processor is
>better (but I thing its also not correct). Unfortunately the < and

>> characters from the CDATA section are not correct escaped.

This seems to be caused by the code we inject to get the result of the
transformation from the .NET processor; we need to investigate this further.

Thanks for the report,
Alberto


Postnext
Hans-Peter KüchlerSubject: Re: SS5.1.173h: Error handling whitespace,comments,processing instructions,CDATA
Author: Hans-Peter Küchler
Date: 26 Apr 2004 11:39 AM
Hi Alberto,

if I understand the spec for the XML output method, it is only allowed to insert whitespace where it is NOT character data of an element. The extra newlines and tabs before the comment (not msxml.net), before the processing instruction and before the </root> are character data of element root. So after processing the output with the instructions in 3.4 I get not the same result for the contents of the root element because the extra whitespace is character data of the element root. The XML output method with indent=yes should only add whitespace which will be removed if I strip whitespace as instructed in 3.4. The extra newlines remains after whitespace processing. So the content of the element root is changed during output.

simple example:
<a><b>
x
y</b><b>xx</b></a>

should only look like this:
<a>
<b>
x
y</b>
<b>xx</b>
</a>

but not

<a>
<b>
x
y
</b>
<b>xx
</b>
</a>


regards Hans-Peter

Postnext
Hans-Peter KüchlerSubject: Re: SS5.1.173h: Error handling whitespace,comments,processing instructions,CDATA
Author: Hans-Peter Küchler
Date: 26 Apr 2004 11:43 AM
Oh, with the new SSDN I don't need to quote the < symbol!

here the example again (_ shall be a space):

simple example:
<a><b>
x
y</b><b>xx</b></a>

should only look like this:
<a>
__<b>
x
y</b>
__<b>xx</b>
</a>

but not

<a>
__<b>
x
y
__</b>
__<b>xx
__</b>
</a>


regards Hans-Peter

Posttop
Alberto MassariSubject: Re: SS5.1.173h: Error handling whitespace,comments,processing instructions,CDATA
Author: Alberto Massari
Date: 27 Apr 2004 08:05 AM
Hi Hans-Peter,
indenting is not an exact science ;-)
We will try to change the alghoritm to achieve what you expect, but it would not be high priority; after all, the specs use verbs like "should" instead of "must"...

Thanks for the report,
Alberto

>here the example again (_
>shall be a space):
>
>simple example:
><a><b>
>x
>y</b><b>xx</b&g
>t;</a>
>
>should only look like this:
><a>
>__<b>
>x
>y</b>
>__<b>xx</b>
></a>
>
>but not
>
><a>
>__<b>
>x
>y
>__</b>
>__<b>xx
>__</b>
></a>

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.