- From: John Lumley <john@saxonica.com>
 - Date: Tue, 9 May 2023 14:31:06 +0100
 - To: public-ixml@w3.org
 - Message-ID: <58528165-6ec7-d9b9-a8a8-2dfbe16f71d9@saxonica.com>
 
On 09/05/2023 11:43, Steven Pemberton wrote:
> Ran into a bug while giving the tutorial, (and another bug while 
> writing this mail) so  probably need tests:
>
> Test 1
>
> ixml:
>
>     data: a, " ", a, " ", a.
>     -a: -" ".
>
> input:
>     a a a
On my processor (https://johnlumley.github.io/jwiXML.xhtml) the input 'a 
a a' gives an error, as it should, since 'a' never appears as a terminal.
With five spaces ('     ')  it produces <data> </data> (two spaces) if 
indentation is supressed (not available yet on the public workbench), 
<data/> if indentation supported.
The result on my processor is displayed in a <pre> whose text is 
fn:serialize($result,map{'indent':true()}) and reading the XQuery and 
XSLT Serialization
Recommendation suggests that with indentation enabled in XML output 
mode, it is an implementation decision as to whether
    Whitespace characters *MAY* be added adjacent to a text node only if
    the text node contains only whitespace characters. Whitespace
    characters in such a text node *MAY* also be elided or replaced. For
    example, a tab *MAY* be inserted as a replacement for existing spaces.
I can't find a definition of 'elided' here (does it encompass 'delete 
completely' or is it purely 'shortened'?) but by disabling the 
indentation, the whitespace characters do appear along with the closing 
tag. However, I think that most users would prefer to look at a 
1000-part XML tree under indentation, so I'm adding an option to disable 
the indentation if needed.
The same remarks apply to the second test.
>
> expected output:
>
>
>     <data>  </data>
>
>
> (The bug displayed this as <data/>)
>
> Test 2:
>
>     data: +"  ".
>
> No input
>
> Expected output
>
>
>     <data>  </data>
>
> Steven
>
Received on Tuesday, 9 May 2023 13:31:32 UTC