Wednesday, 25 February 2015

Change default namespace to named namespace using XSLT



my application current produces an XML file that uses a default namespace. Unfortunately the receiving system requires a prefix for the same namespace.


This easiest way for me to fix this is to apply an XSLT script. The challenge is (for me) to write that script.


Any help would be greatly appreciated.


My input:



<?xml version="1.0" encoding="utf-8"?>
<xbrl xml:lang="nl"
xmlns="http://ift.tt/1mq8wUi"
xmlns:xsi="http://ift.tt/ra1lAU"
xmlns:xsd="http://ift.tt/tphNwY"
xmlns:kvk-t="http://ift.tt/1DTXEIO"
xmlns:xlink="http://ift.tt/PGV9lw"
xmlns:nl-cd="http://ift.tt/1LCWMaM"
xmlns:xbrldi="http://ift.tt/1mq8xay">
<link:schemaRef xlink:type="simple" xlink:href="http://ift.tt/1LCWMr2" />
<context id="D-2014">
<entity>
<identifier scheme="http://ift.tt/1DTXEIS">010101</identifier>
</entity>
<period>
<startDate>2014-01-01</startDate>
<endDate>2014-12-31</endDate>
</period>
</context>
<unit id="u-EUR">
<measure>iso4217:EUR</measure>
</unit>
<unit id="u-pure">
<measure>pure</measure>
</unit>
<nl-cd:StatutoryNameEntity contextRef="D-2014">Company Name</nl-cd:StatutoryNameEntity>
</xbrl>


The required xml would look like this:



<?xml version="1.0" encoding="utf-8"?>
<xbrli:xbrl xml:lang="nl"
<!-- no default namespace at all -->
xmlns:xbrli="http://ift.tt/1mq8wUi"
<!-- same as previous default -->
xmlns:xsi="http://ift.tt/ra1lAU"
xmlns:xsd="http://ift.tt/tphNwY"
xmlns:kvk-t="http://ift.tt/1DTXEIO"
xmlns:xlink="http://ift.tt/PGV9lw"
xmlns:nl-cd="http://ift.tt/1LCWMaM"
xmlns:xbrldi="http://ift.tt/1mq8xay">
<link:schemaRef xlink:type="simple" xlink:href="http://ift.tt/1LCWMr2" />
<xbrli:context id="D-2014">
<xbrli:entity>
<xbrli:identifier scheme="http://ift.tt/1DTXEIS">010101</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2014-01-01</xbrli:startDate>
<xbrli:endDate>2014-12-31</xbrli:endDate>
</xbrli:period>
</xbrli:context>
<xbrli:unit id="u-EUR">
<xbrli:measure>iso4217:EUR</xbrli:measure>
</xbrli:unit>
<xbrli:unit id="u-pure">
<xbrli:measure>pure</xbrli:measure>
</xbrli:unit>
<nl-cd:StatutoryNameEntity contextRef="D-2014">Company Name</nl-cd:StatutoryNameEntity>
</xbrli:xbrl>

No comments:

Post a Comment