3.3.1  Freie Wildbahn

In der freien Wildbahn bin ich erst kürzlich über folgendes Problem gestolpert:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xpath-default-namespace="https://tekturcms.de/schema/x12-xml/1.0"
                exclude-result-prefixes="#all"
                version="3.0">

  <xsl:template match="my-element">
    <neuer-name>
      <xsl:apply-templates>
    </neuer-name>
  </xsl:template>

  [...]
Plain Text
So deklariert würde das neue Element my-element mit einem leeren Namespace in die Ausgabe gesetzt, so <neuer-name xmlns=""/> . Das kann ein nachfolgender Transformationsschritt nicht lesen.
Aus diesem Grund setze ich neue Elemente immer mit dem Element-Konstruktor in die Ausgabe.

Beispiel:

<xsl:template match="my-element">
    <xsl:element name="neuer-name" namespace="{namespace-uri()}">
      <xsl:apply-templates>
    </xsl:element>
  </xsl:template>
Plain Text