Re: [xsl] JSON to XML using XSLT 3.0 representation

Subject: Re: [xsl] JSON to XML using XSLT 3.0 representation
From: "Martynas Jusevičius martynas@xxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 13 Jul 2020 15:26:37 -0000
Hi,

sure enough I hit one of the 0.1% cases in the conversion :) Namely
the form feed char being present in the JSON which produced form feed
in the XML output which is not well-formed XML 1.0.

I've released JSON2XML version 1.0.5 which attempts to address this
issue by doing the default replacement of invalid characters to the
REPLACEMENT CHARACTER (xFFFD), as specified by the json-to-xml()
function.

Could you please take a look at the replacement code (copy-pasted from
StackOverflow :)) - does it look reasonable?
https://github.com/AtomGraph/JSON2XML/blob/master/src/main/java/com/atomgraph
/etl/json/JsonStreamXMLWriter.java#L237


On Wed, Mar 27, 2019 at 12:54 AM Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Nice.
>
> You're not handling the edge cases such as duplicate keys, characters
invalid in XML, unpaired surrogates, etc, but I should think that's OK 99.9%
of the time.
>
> Being able to write to a SAX ContentHandler might be more versatile than a
StAX XMLStreamWriter, since there are probably more things prepared to take
input from a SAX source without having to serialize the XML first.
>
> Michael Kay
> Saxonica
>
> > On 26 Mar 2019, at 22:55, Martynas JuseviD
ius martynas@xxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Hi all,
> >
> > I wanted to share a small utility I've created for our XML pipeline:
> > https://github.com/AtomGraph/JSON2XML
> >
> > It is a streaming JSON to XML converter. It reads any JSON data and
> > produces XML Representation of JSON specified in XSLT 3.0 [1].
> >
> > JSON2XML enables JSON transformation with XSLT even without having an
> > XSLT 3.0 processor. You can simply pre-process the data by having
> > JSON2XML before the transformation, and pipeline it into an XSLT 2.0
> > stylesheet, for example. That way your stylesheet stays forward
> > compatible with XSLT 3.0, as the XML representation is exactly the
> > same.
> >
> > Admittedly I haven't done much testing, but I'm going to put into use
> > next month. The sample from the specification works :) The conversion
> > code is quite straightforward.
> >
> > Also planning to create a Docker container out of it.
> >
> > Feedback and pull requests are welcome.
> >
> > [1] https://www.w3.org/TR/xslt-30/#json-to-xml-mapping
> >
> > Martynas
> > atomgraph.com

Current Thread