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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + External Cascading Style Sheet... (2)
-> + Need help with XML mapping - P... (2)
-> + Convert image to base64 in xsl... (2)
-> + Automation (2)
-> - Changing Default Property valu... (1)
-> + Help in reading cdata using xs... (4)
-> + Ok, I can programatically conv... (2)
-> + How do I prevent the previewer... (2)
-> + Can I programatically convert ... (2)
-> + XML To Flat File - Reverse Eng... (3)
-> + Check for valid attribute valu... (3)
-> + Java.lang.OutOfMemory - when I... (3)
-> + How to convert text in EBCDIC ... (8)
-> + First steps in XSLT mapping (4)
-> + Option to build XSL-FO is not ... (3)
-> + using Adaptor convert XML to e... (2)
-> + Using XML Converter on a Compl... (2)
-> + Java built-in processor needed... (3)
-> + XSL to draw a table (2)
-> - Stylus Studio in c# solutions (1)
-> + entities within schemaLocation... (4)
-> + java runtime error during xslt... (2)
-> + Conversion of XML Doc for RSS ... (2)
-> + Does anyone know how to upgrad... (2)
-> + XML editor corrupts my file (5)
-> + Stylus Studio & Berkeley DB XM... (4)
-> + XSLT for page breakout (2)
-> + How to avoid creating empty el... (2)
-> + Error in converting 945 EDI us... (4)
-> + XML to X12 (invoice 810 edi) (2)
-> - Stylus Studio 2009 Enterprise ... (1)
-> + Stylus Studio 2007 - license d... (2)
-> + XML to X12 conversion error (6)
-> + How to reset JVM (to another j... (2)
-> + How to generate XML sample dat... (2)
-> + Document Path reference after ... (4)
-> + concatenate with xquery (6)
-> + i want to capture the xml tag ... (3)
-> + "View Sample XML" in schema an... (2)
-> + Can't get to Toolbar settings ... (2)
-> + SOAPException (3)
-> + how to patch xml files with wr... (2)
-> + wysiwug xslt editor (2)
-> + XML to Google Charts (10)
-> + XML to HL7 (2)
-> - Outputting this XML (1)
-> + Interpreting XSD Error Message... (2)
-> + converter EDI --> typ = no (8)
-> + License issue (7)
-> + One of the simplest questions ... (3)
-> + xQuery transformation encounte... (2)
-> + Schema Evolution (2)
-> + Preview in Browser button gray... (4)
-> + converter:EDI:val=no AND chr=.... (4)
-> + [XQuery][DB2 JDBC Driver]Unsu... (2)
-> + Need Help Create XML file thro... (4)
-> + Flat file to XML conversion in... (5)
-> + How to set delimiters if it's ... (4)
-> + XSD Validation failing (4)
-> + XSD Validation failing (2)
-> + Web Service Call cannot retrie... (7)
-> + Flat file conversion to XML (2)
-> + Stylus Studio crash (5)
-> + Stylus Studio No Longer loads (2)
-> + How do I print in color? (2)
-> + Integrating Documentum WebPubl... (2)
-> + Stylus Studio crashes on openi... (4)
-> + Change format of XML output fo... (3)
-> + XSLT mapper / Source file not ... (7)
-> + Stylus Studio crashes on start... (3)
-> + Loading GML3.1 (3)
-> + NullPointerException when runn... (5)
-> + Can not open Stylus Studio (3)
-> + macros for custom validation e... (6)
-> + Does Stylus Studio generate XM... (4)
-> + another csv conversion (7)
-> + ADD CVS to Source Control drop... (2)
-> + Automate xquery (6)
-> + Correcting multiple XML docume... (2)
-> + Unable to locate Components\Da... (5)
-> + Runtime Error, Struzzo.exe, Ab... (11)
-> + Convert XML to EDIfact (3)
-> + I don't have the Mapper tab (6)
-> + CSV conversion with null field (3)
-> + Converting a Complex Flat File... (2)
-> - installion in batch mode (1)
-> + Complete Custom Validation Lis... (2)
-> + creating xml from csv flat fil... (9)
-> - need Help Regarding XBRL (1)
-> + Exception FODC0004: file or di... (2)
-> + Activation (2)
-> + java runtime error (2)
-> + connection problem with AS 400... (4)
-> + XML to 837I EDI -- multiple NM... (3)
-> + WYSIWYG in SSv7 (2)
-> - Write into < head /> tags us... (1)
-> + Maximum recursion depth exceed... (2)
-> - Code coverage testing (1)
-> - Passing JavaScript with multip... (1)
-> + preserving white space in XML ... (8)
-- Previous [721-740] [741-760] [761-780] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2016)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Florian SchöllhammerSubject: XQuery: How to set Ordering Mode
Author: Florian Schöllhammer
Date: 17 Aug 2004 06:53 AM
Hello - i just wanted to ask, how to set the default ordering mode of
- union, intersect, except
- xpath expressions

at www.w3c.org i read:
http://www.w3.org/TR/xquery/#id-default-ordering-decl

i just wanted to ask, wheter Stylus Studio supports ordering mode or not


----- query1.xquery -------

declare ordering ordered;

<hello xmlns="http://localhost/complex">
{
let $a := <a />
let $b := <b />
let $c := <c />
return
<set>{($b, $a) union ($b, $a, $c)}</set>
}
</hello>

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

this file produces an error (built-in processor) in the declare ordering line:
"parse error, unexpected _SEMICOLOR_, expecting $"
- i think, this is because it wants to declare a variable!

without this line, it works, but the result is ordered alphabetically:

--- RESULT ----

<hello xmlns="http://localhost/complex">
<set>
<a/>
<b/>
<c/>
</set>
</hello>

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


Is there any way to enable the ordering mode (so the result is ordered with the document order)?

And another short question - what do i have to do to indent the output?

thanks,
florian schöllhammer

Postnext
(Deleted User) Subject: Re: XQuery: How to set Ordering Mode
Author: (Deleted User)
Date: 17 Aug 2004 03:32 PM
Hi Florian,
the syntax you are trying to use is from the latest version of the spec,
dated July 23rd 2004. The version of Stylus you are using has been released
before that date, and implements the specs as of November 2003.

In any case, the default ordering mode is "ordered", so that declaration is
not changing the behavior of the query; what is the result you are expecting?

The correct result, in my opinion, is what you are getting now; $a, $b and
$c are bound to newly created (and disconnected) DOM nodes, so there is no
document order between them.

As for the indentation, you can try adding "declare xmlspace = preserve" in
the header; that will preserve the whitespace found inside the DOM nodes,
but you will need some experimenting.

Hope this helps,
Alberto


Postnext
Florian SchöllhammerSubject: Re: XQuery: How to set Ordering Mode
Author: Florian Schöllhammer
Date: 17 Aug 2004 05:16 PM
thanks alberto, it is a bit more clear now!

i want to give you two examples to show you which kind of result i want

---

assume following variables:

$a = <a/>
$b = <b/>
$c = <c/>

<res>{($b, $a)}</res>

produces

<res>
<b/>
<a/>
</res>


hmm, thats why i assumed following:

<res>{($b, $a) union ($b, $a, $c)}</res>
would be transformed to:
<res>{($b, $a, $c)}</res>
(because the duplicated entries are deleted by union)

that would result in

<res>
<b/>
<a/>
<c/>
</res>

instead i got:

<res>
<a/>
<b/>
<c/>
</res>

i found out, that the elements, that were defined earlier ($a), occur earlier in document-order (so it is not true, that they are sorted alphabetically, your statement was absolutely right - thanks)

-----

another example:

<result>
{
let $data :=
<x>
<y/>
<z/>
</x>
return
$data/(z, y)
}
</result>

should result in

<result>
<z>
<y>
</result>

according to w3c recommendation:
http://www.w3.org/TR/xquery/#construct_seq
(see example 3 - it says, that first all the sequence-element1-childre should be returned, then, all sequence-element2-children ...

but the result with stylus studio is:

<result>
<x>
<y>
</result>

??? i tried a long time and i found out, that the result is always in document order


okay, i think i understand what it means "to get the result in document order" - and i know, that i don't want it in document order (to get the results i expected) - is there a way to get there?

-----

declare xmlspacepreserve;
hmm, it does not really do, what i want it to do ... (it produces only a few linebreaks, code remains unformatted)

i found something in the xquery-specification (i know, i always talk about specifications, but i do not know another reliable source, where i could get the information from)
http://www.w3.org/TR/xquery/#id-xq-serialization-parameters

it seems as if there is an parameter called "indent" - but how can i set this parameter, it says:
"For each parameter, an XQuery implementation may (but is not required to) provide a means whereby a user can override the default value."

is it possible to set this parameter in stylus studio?


thanks, florian

Postnext
Florian SchöllhammerSubject: Re: XQuery: How to set Ordering Mode
Author: Florian Schöllhammer
Date: 17 Aug 2004 05:30 PM
hello again,

i just didn't realize, that i was using the wrong specification!

so the first problem (Union) is solved, because the result is always returned in document order (according the spec. of november 2003)

but, i still do not understand the second example - why is the result in document order (according to the spec, it shouldn't - or do i misunderstand it???)

Postnext
(Deleted User) Subject: Re: XQuery: How to set Ordering Mode
Author: (Deleted User)
Date: 18 Aug 2004 05:41 PM
Hi Florian,

>but, i still do not understand the second example - why is the result in
>document order (according to the spec, it shouldn't - or do i
>misunderstand it???)

You would get the order you expect if you just typed (z, y); but you have
$data/(z, y) and this is a path expression.
Reading from §3.2:
"
Each operation E1/E2 is evaluated as follows: Expression E1 is evaluated,
and if the result is not a (possibly empty) sequence of nodes, a type error

is raised.[err:XP0019] Each node resulting from the evaluation of E1 then
serves in turn to provide an inner focus for an evaluation of E2, as
described in 2.1.2 Dynamic Context. Each evaluation of E2 must result in a

(possibly empty) sequence of nodes; otherwise, a type error is
raised.[err:XP0019] The sequences of nodes resulting from all the
evaluations of E2 are combined, and duplicate nodes are eliminated based on

node identity. If ordering mode is ordered, the resulting node sequence is

returned in document order; otherwise it is returned in
implementation-dependent order
"
So the final result must be in document order.
The good news for you is that you can get the result you expect by wrapping

the query in a unordered() call, like in unordered($data/(z, y))

P.S. keep in mind that the unordered() function has been promoted to be a
keyword in the latest specs, so you will need to change the query in the
future.

As for the question on the indentation of the result, those properties
should be (if I recall it correctly) in the XSLT & XQuery Serialization
specs, that we have not (yet) implemented. In a future version you will be

able to specify those properties to control how the output is generated.

Alberto


Posttop
Florian SchöllhammerSubject: Re: XQuery: How to set Ordering Mode
Author: Florian Schöllhammer
Date: 18 Aug 2004 05:50 PM
Thanks a lot for this detailed explanation, Alberto! I think i do understand it now! thanks!

   
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.