- From: Michael Kay <mike@s...>
- To: "Peintner, Daniel" <daniel.peintner.ext@s...>
- Date: Thu, 5 Oct 2017 11:27:40 +0100
I think one can probably prove that no mapping JSON to/from XML will satisfy all the following objectives:
(1) Handles any JSON document (2) Handles any XML document (3) is round-trippable (to-json(to-xml(J)) = J, and to-xml(to-json(X)) = X).
and the more you try and get close to this, the more you sacrifice two further objectives
(4) produces a user-friendly XML representation of JSON (5) produces a user-friendly JSON representation of XML
In the XSLT 3.0 mapping we focused on achieving (1) and (3) and doing the best we could on (4) within these constraints. One reason we chose these objectives is that the user is operating in a world where they have good tools for transforming any XML that comes out of the conversion to a form that they prefer.
If you choose a different set of objectives you will end up with a different mapping.
Michael Kay Saxonica
Hi, Many of these JSON<->XML tools provide a good coverage for some XML/JSON constructs but not for all. The tool [1] you pointed to fails for example when converting the following "simple" JSON example to XML. { "a number": 1 } The reason is rather simple. The qualified name in XML has some restrictions that are more rigid than the JSON fieldnames. Hence, we in the EXI working group worked on a more sophisticated approach when converting JSON to XML infoset [2]. This requires escaping as shown here [3] for the example above. Note1: The Efficient XML Interchange (EXI) format would not have the same restrictions as XML but the working group concluded that any EXI document should be convertible to XML. Note2: The XSLT working group uses yet another scheme [4] which for EXI did not work given that we want to allow for user-defined XML schemas. Having said that, there seem to be many approaches and solutions, -- Daniel [1] www.utilities-online.info/xmltojson/
[2]
https://www.w3.org/XML/EXI/docs/json/exi-for-json.html
[3]
https://www.w3.org/XML/EXI/docs/json/exi-for-json.html#exampleKeynameEscaping
[4] https://www.w3.org/TR/xslt-30/schema-for-json.xsd
|
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|