Re: [basex-talk] BaseX and oXygen

2018-08-02 Thread Andreas Mixich
Hello Omar,

you wrote:
> Hi Andreas,
> 
> It is still be possible. Execution is all about the XQJ connection and a
> transformation scenario using it.

[...]

> The problem is: This is by design limited to XQuery 1.0. No maps, no
Oh, okay, then I am going to recheck what I may have done wrong. Maybe I
just had an xquery version string in my code when I tested the last time.

I also use the GUI, which is pretty good, but oXygen would be gooder :-)
Thanks for clarifying.

-- 
Goody Bye, Minden jót, Mit freundlichen Grüßen,
Andreas Mixich


Re: [basex-talk] BaseX and oXygen

2018-08-02 Thread Omar Siam

Hi Andreas,

It is still be possible. Execution is all about the XQJ connection and a 
transformation scenario using it.


Just tested it with my setup in oXygen 20.1 and a BaseX 9.0.2 server 
running as backend.


The problem is: This is by design limited to XQuery 1.0. No maps, no 
arrays, no string concatenation operator and other things missing. There 
may be "old style" function equivalents but it is cumbersome.


I stopped using oXygen for BaseX XQuery for those reasons. I'm happy 
with the GUI.


Best regards

Omar Siam


Am 01.08.2018 um 23:16 schrieb Andreas Mixich:

Hi,

I remember, that I was able to run BaseX as execution engine for the
oXygenXML XQuery editor. This seems to be impossible since a few oXygen
versions. All that's left is the WebDAV part. I did not manage to run my
old config, creating new ones did not help either.

I remember having read a post by Michael Kay, who seemed to have some
problems with XQJ not being up-to-date and some licensing issues making
it impossible to fork/update or something like that.

The bug-tracker and mailing-list links on the XQJ site are dead as well.





Re: [basex-talk] Can't get `cdata-section-elements` to work at all for XSLT output

2018-08-02 Thread Imsieke, Gerrit, le-tex

Hi Hugh,

Did you see Christian’s reply, archived at 
https://mailman.uni-konstanz.de/pipermail/basex-talk/2018-August/013490.html⁠?


He essentially said that, for your second approach, he saw the same 
behavior on BaseX 9.x as I saw on 8.6.5. So there doesn’t seem to be a 
regression.


I agree with you that xslt:transform-text() is not a solution.

Gerrit


On 01.08.2018 23:47, Hugh Guiney wrote:

Thanks for testing Gerrit, that's good to know. Sounds like a
regression then. Shall I go ahead and file this on Github or does it
need further confirmation?

Christian, your suggestion seems to work around the issue; the CDATA
sections do come in that way. Except, all the elements get sent back
entity-escaped for some reason. I have to manually reverse it back
into XML using `result.replace( //gi, '>' ).replace( //gi, '<'
)` in JavaScript. Not sure if that is a separate issue or expected
behavior.

On Wed, Aug 1, 2018 at 2:50 PM, Imsieke, Gerrit, le-tex
 wrote:

Hi Hugh,

The second version where you specify the serialization options in XQuery
works for me (BaseX GUI 8.6.5 with Saxon PE 9.6.0.7):


http://backend.userland.com/rss2;
xmlns:content="http://purl.org/rss/1.0/modules/content/; version="2.0">
   
   
   


The first version cannot generate CDATA sections since the XSLT processor is
not serializing anything; it’s the XQuery processor that serializes the
result.

The error that you are seeing, XPST0081, would be generated if there were no
namespace declaration for the prefix 'content', maybe caused by an
indistinguishable look-alike non-ASCII character in 'content'. Doesn’t seem
to be the case. Maybe this is a bug that is specific to BaseX 9?

Gerrit



On 01.08.2018 21:17, Hugh Guiney wrote:


Hello,

First off, loving BaseX so far! Using it as the backend for an API I’m
building. However, I’m running into an issue. I’m trying to transform
my database XML into an RSS 2.0 feed. It’s mostly working fine, but I
can’t output CDATA content at all, which I need to do for
`content:encoded` elements.

Specs:

- BaseX 9.0.2 (started via basexserver script)
- Saxon-HE 9.8.0.12J from Saxonica
- java version "1.8.0_112"
- basex 0.9.0 (NodeJS)
- macOS Sierra 10.12.6

### First Attempt

I set `cdata-section-elements` in the XSLT.

rss.xq:
```
xquery version "3.0";
declare option output:omit-xml-declaration "no";

let $in :=

  hello

let $style := doc( 'rss.xslt' )
return xslt:transform( $in, $style )
```

rss.xslt:
```

http://backend.userland.com/rss2;
xmlns:xsl="http://www.w3.org/1999/XSL/Transform;
xmlns:content="http://purl.org/rss/1.0/modules/content/;






  
hi
howdy

  


```

Result:
```

http://backend.userland.com/rss2;
xmlns:content="http://purl.org/rss/1.0/modules/content/;
version="2.0">
hi
howdy
hello

```

No CDATA sections.

### Second Attempt

I set `cdata-section-elements` in the XQuery.

rss.xq:
```
xquery version "3.0";
declare namespace content = "http://purl.org/rss/1.0/modules/content/;;
declare option output:omit-xml-declaration "no";
declare option output:cdata-section-elements "content:encoded";

let $in :=

  hello

let $style := doc( 'rss.xslt' )
return xslt:transform( $in, $style )
```

rss.xslt:
[Unchanged]

Result:
[XPST0081] No namespace declared for 'content:encoded'.

Clearly I declared the namespace two lines up.

This looks like a bug to me, but any help appreciated if I’ve missed a
step here.

Thanks,
Hugh





--
Gerrit Imsieke
Geschäftsführer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit.imsi...@le-tex.de, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

Geschäftsführer / Managing Directors:
Gerrit Imsieke, Svea Jelonek, Thomas Schmidt


Re: [basex-talk] Mailing list configuration or my MUA?

2018-08-02 Thread Christian Grün
> may it be some configuration issue, I have on my side, or is the mailing
> list set up in a way, that each reply goes to the user's personal
> email-address, rather than to the list's posting address?

You should probably tweak your configuration such that replies are
always sent to all recipients.


Re: [basex-talk] Can't get `cdata-section-elements` to work at all for XSLT output

2018-08-02 Thread Christian Grün
Hi Hugh,

> I understand, but did you see the details of my second attempt? The
> serialization controls didn’t work when specified in XQuery either.

I don’t get XPST0081 for this query (as indicated in a previous reply
of mine). Could you please clarify first if the unchanged query you
supplied via your first mail really fails on your machine?

If no (i.e., if it runs successfully with the declared namespace),
please give us more details on how to trigger this behavior. I get the
following result with both 9.0.2 and 9.1 beta when running the query
of your second attempt in the BaseX GUI or on command line:


http://backend.userland.com/rss2;
xmlns:content="http://purl.org/rss/1.0/modules/content/;
version="2.0">
  
  
  


Could you please try what result you get if you run the query directly
in the GUI or on command-line? If the result is correct, we can
proceed further. If it’s already wrong, we may need to compare our
BaseX configurations (in that case, we should start with a newly
downloaded instance of one of our distributions).

And if the problem persists, maybe we could even simplify your example
and try the following query:

  declare option output:cdata-section-elements "xml";
  A

Does it yield different results with BaseX 8 and 9 on your machine?

> And why do the same serialization options in XQuery work
> in BaseX 8 but not BaseX 9?

Just to be sure: Is this already a fact (did you compare the versions
by yourself), or is it still a guess?

> why would I want the result to come
> back as an escaped string instead of real nodes?

Same here: With xquery:transform-text, or with Vincent’s query,
nothing will be escaped on my machine. The result is pretty similar to
the result of your second attempt, it’s only the indentation that
differs slightly.

Best,
Christian


Re: [basex-talk] Can't get `cdata-section-elements` to work at all for XSLT output

2018-08-02 Thread Hugh Guiney
Hi Vincent,

I understand, but did you see the details of my second attempt? The
serialization controls didn’t work when specified in XQuery either.
Which they should have, right? I mean, why else would BaseX provide
XSLT options like `output:omit-xml-declaration` if you’re not supposed
to use them? And why do the same serialization options in XQuery work
in BaseX 8 but not BaseX 9? If I was to do further manipulation of the
XSLT output in XQuery instead of just immediately sending it to the
browser or saving it to a file, why would I want the result to come
back as an escaped string instead of real nodes?

My first attempt may have been the wrong approach for what I wanted to
do—in which case I would suggest a note in the documentation, since it
isn’t obvious compared to the usual method of specifying
`xsl:output`—but my second attempt gives me an error for “not
declaring a namespace” that I have clearly declared. That seems like a
bug, no?

- Hugh

On Wed, Aug 1, 2018 at 9:57 PM, Lizzi, Vincent
 wrote:
> Hugh,
>
>
> As Gerrit mentioned, the issue you have encountered is due to the
> xslt:transform function returning, essentially, a parsed XML document, so
> the serialization controls that are declared in the XSLT are not being used.
> If you want the serialized output of the XSLT you can use the
> xslt:transform-text function. For example:
>
>
> let $in := hello
>
> let $xslt := doc('rss.xslt')
>
> let $out := xslt:transform-text($in, $xslt)
>
> return file:write-text('out.xml', $out)
>
>
> I hope this helps.
>
>
> Vincent
>
>
> http://docs.basex.org/wiki/XSLT_Module#xslt:transform-text
>
> http://docs.basex.org/wiki/File_Module#file:write-text
>
>
>
>
> 
> From: BaseX-Talk  on behalf of
> Hugh Guiney 
> Sent: Wednesday, August 1, 2018 5:47:55 PM
> To: Imsieke, Gerrit, le-tex
> Cc: basex-talk@mailman.uni-konstanz.de
> Subject: Re: [basex-talk] Can't get `cdata-section-elements` to work at all
> for XSLT output
>
> Thanks for testing Gerrit, that's good to know. Sounds like a
> regression then. Shall I go ahead and file this on Github or does it
> need further confirmation?
>
> Christian, your suggestion seems to work around the issue; the CDATA
> sections do come in that way. Except, all the elements get sent back
> entity-escaped for some reason. I have to manually reverse it back
> into XML using `result.replace( />/gi, '>' ).replace( / )` in JavaScript. Not sure if that is a separate issue or expected
> behavior.
>
> On Wed, Aug 1, 2018 at 2:50 PM, Imsieke, Gerrit, le-tex
>  wrote:
>> Hi Hugh,
>>
>> The second version where you specify the serialization options in XQuery
>> works for me (BaseX GUI 8.6.5 with Saxon PE 9.6.0.7:
>
>>
>> 
>> http://backend.userland.com/rss2;
>> xmlns:content="http://purl.org/rss/1.0/modules/content/; version="2.0">
>> 
>> 
>> 
>> 
>>
>> The first version cannot generate CDATA sections since the XSLT processor
>> is
>> not serializing anything; it’s the XQuery processor that serializes the
>> result.
>>
>> The error that you are seeing, XPST0081, would be generated if there were
>> no
>> namespace declaration for the prefix 'content', maybe caused by an
>> indistinguishable look-alike non-ASCII character in 'content'. Doesn’t
>> seem
>> to be the case. Maybe this is a bug that is specific to BaseX 9?
>>
>> Gerrit
>>
>>
>>
>> On 01.08.2018 21:17, Hugh Guiney wrote:
>>>
>>> Hello,
>>>
>>> First off, loving BaseX so far! Using it as the backend for an API I’m
>>> building. However, I’m running into an issue. I’m trying to transform
>>> my database XML into an RSS 2.0 feed. It’s mostly working fine, but I
>>> can’t output CDATA content at all, which I need to do for
>>> `content:encoded` elements.
>>>
>>> Specs:
>>>
>>> - BaseX 9.0.2 (started via basexserver script)
>>> - Saxon-HE 9.8.0.12J from Saxonica
>>> - java version "1.8.0_112"
>>> - basex 0.9.0 (NodeJS)
>>> - macOS Sierra 10.12.6
>>>
>>> ### First Attempt
>>>
>>> I set `cdata-section-elements` in the XSLT.
>>>
>>> rss.xq:
>>> ```
>>> xquery version "3.0";
>>> declare option output:omit-xml-declaration "no";
>>>
>>> let $in :=
>>> 
>>> hello
>>> 
>>> let $style := doc( 'rss.xslt' )
>>> return xslt:transform( $in, $style )
>>> ```
>>>
>>> rss.xslt:
>>> ```
>>> 
>>> >> version="3.0"
>>> xmlns="http://backend.userland.com/rss2;
>>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform;
>>> xmlns:content="http://purl.org/rss/1.0/modules/content/;


>>> >> omit-xml-declaration="no"
>>> cdata-section-elements="content:encoded"
>>> />
>>> 
>>> 
>>> hi
>>> howdy
>>> >> />
>>> 
>>> 
>>> 
>>> ```
>>>
>>> Result:
>>> ```
>>> 
>>> http://backend.userland.com/rss2;
>>> xmlns:content="http://purl.org/rss/1.0/modules/content/;
>>> version="2.0">
>>> hi
>>> howdy
>>> hello
>>> 
>>> ```
>>>
>>> No CDATA sections.
>>>
>>> ### Second Attempt
>>>
>>> I set `cdata-section-elements` in the XQuery.
>>>
>>> rss.xq:
>>> ```
>>> xquery version "3.0";
>>> declare namespace content =