[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XSLT 3.0 JSON processing -- a few comments from a

Subject: Re: XSLT 3.0 JSON processing -- a few comments from a friend
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 8 Jan 2015 00:01:16 -0000
Re:  XSLT 3.0 JSON processing -- a few comments from a
> The earlier specification converted JSON to a map and this was much
> more natural.
>
> Why was it necessary to represent a JSON object as an XML document? I
> really don't understand the motives for moving from the more flexible
> map-based representation to such artificial, clumsy and unnatural XML
> "reflection".
>

Historically, the answer is that the WGs were for a long time completely
deadlocked on how to add support for arrays to the data model, and without
support for arrays, the JSON-to-maps conversion in the XSLT 3.0 spec was not
viable. The XSLT specification tried to get around this by modelling an array
as a map with integer keys, but it was very clumsy, and had a fatal flaw in
that you need to be able to distinguish an empty array from an empty
map/object. Since there was no sign of the deadlock being resolved, we decided
to abandon the JSON-to-map conversion and fall back to a JSON-to-XML
conversion.

In the meantime, XPath 3.1 has come out with a data model for arrays, which
although it has some usability problems, is technically workable. So some of
the original justification for developing the JSON-to-XML conversion has
disappeared. However, I think many people would still consider it useful,
especially as transformation of XML using pattern-matching template rules
still works far better than transformation of JSON-like map/array hierarchies.
If you want to get your JSON into a form where XSLT can manipulate it,
converting it to XML as input to a transformation step is going to work much
better than transforming it to maps and arrays. There are various reasons for
this: patterns for matching nodes are much more powerful than patterns for
matching maps and arrays, and navigation within XML trees using the full set
of XPath axes is much more powerful than navigation within map/array
structures.

Plus, of course, arrays might be in XPath 3.1 but they aren't yet in XSLT
3.0.

Michael Kay
Saxonica

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.