roundtrip XML-JSON and back
Posted: Fri Sep 09, 2022 7:13 am
When I try to roundtrip XML to JSON and back using the GUI tools in Oxygen 24.1 I have problems with namespaces. Should I be able to roundtrip?
Trivial example
<?xml version="1.0" encoding="utf-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- XML Catalog file for DocBook XSL-NS v1.78.1 -->
<rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl-ns/current/" rewritePrefix="./"/>
<rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl-ns/current/" rewritePrefix="./"/>
<rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl-ns/1.78.1/" rewritePrefix="./"/>
<rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl-ns/1.78.1/" rewritePrefix="./"/>
</catalog>
becomes
{
"catalog": {
"xmlns": "urn:oasis:names:tc:entity:xmlns:xml:catalog",
"rewriteURI": [
{
"uriStartString": "http://docbook.sourceforge.net/release/xsl-ns/current/",
"rewritePrefix": "./"
},
{
"uriStartString": "http://docbook.sourceforge.net/release/xsl-ns/1.78.1/",
"rewritePrefix": "./"
}
],
"rewriteSystem": [
{
"systemIdStartString": "http://docbook.sourceforge.net/release/xsl-ns/current/",
"rewritePrefix": "./"
},
{
"systemIdStartString": "http://docbook.sourceforge.net/release/xsl-ns/1.78.1/",
"rewritePrefix": "./"
}
]
}
}
and then
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<xmlns>urn:oasis:names:tc:entity:xmlns:xml:catalog</xmlns>
<rewriteURI>
<uriStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteURI>
<rewriteURI>
<uriStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteURI>
<rewriteSystem>
<systemIdStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteSystem>
<rewriteSystem>
<systemIdStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteSystem>
</catalog>
Trivial example
<?xml version="1.0" encoding="utf-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- XML Catalog file for DocBook XSL-NS v1.78.1 -->
<rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl-ns/current/" rewritePrefix="./"/>
<rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl-ns/current/" rewritePrefix="./"/>
<rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl-ns/1.78.1/" rewritePrefix="./"/>
<rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl-ns/1.78.1/" rewritePrefix="./"/>
</catalog>
becomes
{
"catalog": {
"xmlns": "urn:oasis:names:tc:entity:xmlns:xml:catalog",
"rewriteURI": [
{
"uriStartString": "http://docbook.sourceforge.net/release/xsl-ns/current/",
"rewritePrefix": "./"
},
{
"uriStartString": "http://docbook.sourceforge.net/release/xsl-ns/1.78.1/",
"rewritePrefix": "./"
}
],
"rewriteSystem": [
{
"systemIdStartString": "http://docbook.sourceforge.net/release/xsl-ns/current/",
"rewritePrefix": "./"
},
{
"systemIdStartString": "http://docbook.sourceforge.net/release/xsl-ns/1.78.1/",
"rewritePrefix": "./"
}
]
}
}
and then
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<xmlns>urn:oasis:names:tc:entity:xmlns:xml:catalog</xmlns>
<rewriteURI>
<uriStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteURI>
<rewriteURI>
<uriStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteURI>
<rewriteSystem>
<systemIdStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteSystem>
<rewriteSystem>
<systemIdStartString>http://docbook.sourceforge.net/release/ ... tartString>
<rewritePrefix>./</rewritePrefix>
</rewriteSystem>
</catalog>