Ich versuche, eine Transformation für ein XML-Dokument durchzuführen. Meine XML kann auf zwei verschiedene Arten von Basiselement je nach dem Wert eines bestimmten Elements Transformation führen:Leere xmlns = "" Attribute von Import
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/databean/data[@id='pkhfeed']/value/text()='200'">
<xsl:call-template name="StructureA">
<xsl:with-param name="structure" select="//databean" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="StructureB">
<xsl:with-param name="structure" select="//databean" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
StructureA oder StructureB werden dann mit ihren eigenen Namensraum und schemaLocations erstellt:
<StructureA xmlns="http://...">
StructureA & B teilen einige gemeinsame Elemente, so dass diese in einer separaten Datei namens "xmlcommon.xslt" definiert sind, in die beide Strukturen Vorlagen enthalten. In dieser XML-Datei ist kein Standard-Namespace definiert, da ich möchte, dass er aus dem in StrukturA oder StrukturB definierten Namespace verwendet werden kann. Aber wenn ich meine Transformation ausführen, wird alle Vorlagen gezogen aus dem gemeinsamen Datei Ergebnis in leeren xmlns Attribute:
<StructureA xmlns="http://...">
<SharedElement xmlns="">Something</SharedElement>
</StructureA>
Wenn die Validierung, die leere Namespace dann eine anstelle den richtig Eltern verwendet wird. Weiß jemand, wie ich meine Vorlagen in meiner allgemeinen Datei davon abhalten kann, diese leeren xmlns-Attribute hinzuzufügen?
Hier ist ein Ausschnitt aus der gemeinsamen Datei:
<xsl:stylesheet version="1.0" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="ControlledListStructure">
<xsl:param name="xmlElem" />
<xsl:param name="structure" />
<xsl:element name="{$xmlElem}">
<!-- Blah blah blah -->
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Gute Erklärung, Evan. Nichts mehr hinzuzufügen. +1 von mir. Willkommen bei SO. –
Danke Evan. Das ist eine große Hilfe :) Und danke für die zusätzlichen Informationen auch. Ich berühre nicht oft XSLTs, daher ist es schön, die besseren Möglichkeiten zu kennen. –