[xsl] Conditional sort instruction as parameter within group && Syntactic matter of multilevel grouping | XSLT 2.0 | P1

Subject: [xsl] Conditional sort instruction as parameter within group && Syntactic matter of multilevel grouping | XSLT 2.0 | P1
From: "Fiona Chen anonymousjuly1@xxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 6 Jun 2021 17:32:42 -0000
I am developing a search and transform engine.

Stage one ( XQuery ): It returns the search response snippet based on the
point-in-time criteria from the UI:
<search:response xmlns:search="http://marklogic.com/appservices/search";>
B B B  <search:result index="1" uri="/a.xml" path="fn:doc('/a.xml')">
B B B B B B B  <search:snippet>
B B B B B B B B B B B  <search:match
path="fn:doc('/a.xml')//*:putCurrencyAmount/*:currency">
B B B B B B B B B B B B B B B  <search:highlight>USD</search:highlight>
B B B B B B B B B B B  </search:match>
B B B B B B B B B B B  <search:match
path="fn:doc('/a.xml')//*:putCurrencyAmount/*:amount">
B B B B B B B B B B B B B B B  <search:highlight>26000000</search:highlight>
B B B B B B B B B B B  </search:match>
B B B B B B B  </search:snippet>
B B B  </search:result>
B B B  <search:result index="2" uri="/b.xml" path="fn:doc('/b.xml')">
B B B B B B B  <search:snippet>
B B B B B B B B B B B  <search:match
path="fn:doc('/b.xml')//*:putCurrencyAmount/*:currency">
B B B B B B B B B B B B B B B  <search:highlight>USD</search:highlight>
B B B B B B B B B B B  </search:match>
B B B B B B B B B B B  <search:match
path="fn:doc('/b.xml')//*:putCurrencyAmount/*:amount">
B B B B B B B B B B B B B B B  <search:highlight>38500000</search:highlight>
B B B B B B B B B B B  </search:match>
B B B B B B B  </search:snippet>
B B B  </search:result></search:response>
Stage Two ( XSLT + XQuery ): The returned artifacts (@uri,
@path,search:highlight, document content) will be incarnated in such way to
enrich the transformed results back to the UI with underlying document
untouched.

The significance of Stage Two is to expose the data based on UI request:B  if
one wants XML format, I transform the results to XML; if JSON format,
transform the results to JSON.

Below is the extraction of enriched result in JSON:
(point-in-time criteria = Rationale)

{B B B B "Incarnation":B {B B B B B B B B "Rationale":B "Collection:productB 
PAIRB (putAmount:ultra-highB &&B putCurrency:USD)",B B B B B B B B "Rendition
":B [B B B B B B B B B B B B {B B B B B B B B B B B B B B B B "Trade":B [B B 
B B B B B B B B B B B B B B B B B B {B B B B B B B B B B B B B B B B B B B B 
B B B B "documentId":B "/b.xml"B B B B B B B B B B B B B B B B B B B B },B B 
B B B B B B B B B B B B B B B B B B {B B B B B B B B B B B B B B B B B B B B 
B B B B "Justification":B [B B B B B B B B B B B B B B B B B B B B B B B B B 
B B B {B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B "path"
:B "fn:doc(\"/b.xml\")//*:putCurrencyAmount/*:currency"B B B B B B B B B B B 
B B B B B B B B B B B B B B B B B },B B B B B B B B B B B B B B B B B B B B B
 B B B B B B B {B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B
 B "highlight":B "USD"B B B B B B B B B B B B B B B B B B B B B B B B B B B B
 },B B B B B B B B B B B B B B B B B B B B B B B B B B B B {B B B B B B B B B
 B B B B B B B B B B B B B B B B B B B B B B B "path":B "fn:doc(\"/b.xml\")//
*:putCurrencyAmount/*:amount"B B B B B B B B B B B B B B B B B B B B B B B B 
B B B B },B B B B B B B B B B B B B B B B B B B B B B B B B B B B {B B B B B 
B B B B B B B B B B B B B B B B B B B B B B B B B B B "highlight":B "38500000
"B B B B B B B B B B B B B B B B B B B B B B B B B B B B }B B B B B B B B B B
 B B B B B B B B B B B B B B ]B B B B B B B B B B B B B B B B B B B B },B B B
 B B B B B B B B B B B B B B B B B {B B B B B B B B B B B B B B B B B B B B B
 B B B "trade":B [
=================================== trade and other details extraction
============================B B B B B B B B B B B B {B B B B B B B B B B B B 
B B B B "Trade":B [B B B B B B B B B B B B B B B B B B B B {B B B B B B B B B
 B B B B B B B B B B B B B B B "documentId":B "/a.xml"B B B B B B B B B B B B
 B B B B B B B B },B B B B B B B B B B B B B B B B B B B B {B B B B B B B B B
 B B B B B B B B B B B B B B B "Justification":B [B B B B B B B B B B B B B B
 B B B B B B B B B B B B B B {B B B B B B B B B B B B B B B B B B B B B B B B
 B B B B B B B B "path":B "fn:doc(\"/a.xml\")//*:putCurrencyAmount/*:currency
"B B B B B B B B B B B B B B B B B B B B B B B B B B B B },B B B B B B B B B 
B B B B B B B B B B B B B B B B B B B {B B B B B B B B B B B B B B B B B B B 
B B B B B B B B B B B B B "highlight":B "USD"B B B B B B B B B B B B B B B B 
B B B B B B B B B B B B },B B B B B B B B B B B B B B B B B B B B B B B B B B
 B B {B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B "path":
B "fn:doc(\"/a.xml\")//*:putCurrencyAmount/*:amount"B B B B B B B B B B B B B
 B B B B B B B B B B B B B B B },B B B B B B B B B B B B B B B B B B B B B B 
B B B B B B {B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B 
"highlight":B "26000000"B B B B B B B B B B B B B B B B B B B B B B B B B B B
 B }B B B B B B B B B B B B B B B B B B B B B B B B ]B B B B B B B B B B B B 
B B B B B B B B }=================================== trade and other details
extraction ============================

Current Thread