Heiko Niemann wrote:
in this example I have an order with different typed items. The type is a
QName in an attribute. There are namespaces declared, having the same
prefix as the 'prefix' in the xsi:type attribute. As you can see there are
more namespaces declared as needed (whatever the reason for that case
might be). Now I would like to clean up and just keep the ones that are
'used' in the xsi:type content. The stylesheet actually already does what
I want, but I would like to know whether there might be a better way to do
it, since it looks a little hackish to me.
<v:item xsi:type="ns4:lostItem"
xmlns:ns1="http://prods.com/ns1"
xmlns:ns2="http://prods.com/ns2"
xmlns:ns3="http://prods.com/ns3">
I can think of an improvement if you wanted to catch the problem here
that the prefix 'ns4' is not declared, in that case I would use e.g.
<!--identity tranformation; do not copy namespaces; create namespace of
xsi:type-->
<xsl:template match="*[@xsi:type]">
<xsl:variable name="qname" select="resolve-QName(@xsi:type, .)"/>
here and then work with that value of type QName.
That however would give an error like "FONS0004: Namespace prefix 'ns4'
has not been declared" with your sample input, which your current code
might intentionally avoid.
--
Martin Honnen --- MVP Data Platform Development
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--