Bubble79
16.08.2005, 14:53
Hallo,
ich möchte aus einem XML Dokument mittels eines Stylesheets ein neues XML Dokument machen. Diesem neuen XML Dokument möchte ich im Rootelement einige Namespaces zuweisen, normalerweise macht man das ja, indem man die entsprechenden Namespaces einfach im Stylesheet festlegt, und die werden dann automatisch ins Zieldokument übernommen. Allerdings möchte ich Namespaces nun dynamisch zuweisen und kann sie daher im Stylesheet nicht festlegen.
Also im Zieldokument soll stehen:
<rootElement xmlns:m-s1="URI" ...>
Ich versuche im Stylesheet das wie folgt zu lösen:
<xsl:element name="rootElement">
...
<xsl:attribute name="xmlns:{$_prefix}" namespace="xmlns">
<xsl:value-of select="URI"/>
</xsl:attribute>
...
</xsl:element>
In $_prefix steht in diesem Moment "m-s1".
Leider ist das Ergebnis (ich verwende den XSLT-Prozessor, der im JDK 1.5 mitgeliefert ist) folgendes:
<rootElement ns0:m-s1="URI" ns0:xmlns="xmlns" ...>
und damit nicht brauchbar für mich. Lasse ich den Teil namespace="xmlns" aus dem XSL-Code draußen, wird gar nichts erzeugt. Ich müsste also das Zieldokument nochmal "überarbeiten", was ich aber für keine schöne Lösung halte.
Kann mir jemand weiterhelfen?
Vielen Dank schonmal,
viele Grüsse
Bubble
ich möchte aus einem XML Dokument mittels eines Stylesheets ein neues XML Dokument machen. Diesem neuen XML Dokument möchte ich im Rootelement einige Namespaces zuweisen, normalerweise macht man das ja, indem man die entsprechenden Namespaces einfach im Stylesheet festlegt, und die werden dann automatisch ins Zieldokument übernommen. Allerdings möchte ich Namespaces nun dynamisch zuweisen und kann sie daher im Stylesheet nicht festlegen.
Also im Zieldokument soll stehen:
<rootElement xmlns:m-s1="URI" ...>
Ich versuche im Stylesheet das wie folgt zu lösen:
<xsl:element name="rootElement">
...
<xsl:attribute name="xmlns:{$_prefix}" namespace="xmlns">
<xsl:value-of select="URI"/>
</xsl:attribute>
...
</xsl:element>
In $_prefix steht in diesem Moment "m-s1".
Leider ist das Ergebnis (ich verwende den XSLT-Prozessor, der im JDK 1.5 mitgeliefert ist) folgendes:
<rootElement ns0:m-s1="URI" ns0:xmlns="xmlns" ...>
und damit nicht brauchbar für mich. Lasse ich den Teil namespace="xmlns" aus dem XSL-Code draußen, wird gar nichts erzeugt. Ich müsste also das Zieldokument nochmal "überarbeiten", was ich aber für keine schöne Lösung halte.
Kann mir jemand weiterhelfen?
Vielen Dank schonmal,
viele Grüsse
Bubble