Hallo,
ich hoffe hier kann mir geholfen werden, habe mir auch schon die W3C Punkte zu meinem Sachverhalt durchgelesen, aber eine richtige Lösung habe ich noch nicht gefunden. Ich moechte eine XML erstellen und im root element die namespace attribute erstellen. die prefixe und die URI liegen dabei in einer anderen XML die ich eben mit XSL auswerte
also mir liegt etwa in der XML vor:
<namespace>
<prefix>xmlns</prefix>
<URI>http:www.xxx.com</URI>
</namespace>
<namespace>
<prefix>xmlns:no3</prefix>
<URI>http:www.x03.com</URI>
</namespace>
<namespace>
<prefix>xmlns:ns2</prefix>
<URI>http:www.xx2.com</URI>
</namespace>
<namespace>
<prefix>xmlns:ff</prefix>
<URI>http:www.ff.com</URI>
</namespace>
Nun möchte ich gerne eine neue XML erstellen mit XSL. In der XSL kann ich jedoch nicht jeden Namespace vorher deklarieren, da die XML Quelle sich ändert und ich die XSL nicht permanent anpassen möchte. Jetzt wollte ich versuchen in einer for-each namepsace Anweisung
<xsl:element name="Root">
<xsl:attribute name="{prefix}" namespace="{URI}">
<xsl:value-of select="URI">
</xsl:attribute>
</element>
Aber solange ich die Namespaces ja nicht im XSL deklariere, gibt er mir natuerlich nicht mehr die prefix sauber wieder. Gibt es einen Weg hierfür?
Zur Zeit schreibe ich nun mein root element mit attributen über <xsl:text disable-output-escaping="yes"> methode. allerdings finde ich dies nicht gerade sehr elegant. Kennt jemand eine Lösung?
Gruß