theo: Namespace ermitteln

Beitrag lesen

Hallo Thomas,

vielen Dank für die ausführliche Antwort.

<xsl:for-each select="document('schema.xsd')/*/namespace::*">
<xsl:value-of select="."/> -

<xsl:value-of select="name(.)"/>

</xsl:for-each>

Das hatte ich auch schon gemacht und dachte deshalb, dass ich richitg "ziele", da mir ja dann die URI als auch die Kurzfrom ausgegeben wird.

<xsl:variable name="NS" select="document('schema.xsd')/*[1]/@targetNamespace"/>
<xsl:value-of select="name(//*[namespace-uri() = $NS])"/>

So wäre es fein (ich parse mit xsl eine xml der verschieden xsd file zugeordnet sind) Also mein $NS hat den Inhalt der namespace-URI (geteste mit einer probeausgabe von $NS mit xsl:value-of). Die Anweisung danach  <xsl:value-of select="name(//*[namespace-uri() = $NS])"/> bringt dann aber nur Erfolg, wenn in meiner XML auch Element mit dem Namespace vorhanden sind. Also wenn keine Elemente des Namespace vorhanden sind, dann gibt mir auch substring-before(name(//*[namespace-uri() = $NS]),':') nicht den prefix aus.

Gruß

Theo