| 

.NET C# Java Javascript Exception

2
Ich habe eine kleine Anwendung geschrieben, die XML-Dateien entgegennimmt und diese per XSL-Transformation in ein anderes Format überführt (wobei ich sagen muss, dass ich kein Experte in diesem Thema bin). Dabei wird ein XML-Element über einen Namespace definiert. Das XSL-Template sieht (verkürzt und anonymisiert) wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:ns1="mynamespace"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
exclude-result-prefixes="xsl xs xsi">
<xsl:output method="xml"
version="1.0"
indent="no"
standalone="yes"
omit-xml-declaration="no"/>
<xsl:template match="mymatch">
<xsl:element name="ns1:myelement" namespace="mynamespace">
<xsl:attribute name="Attr1"><xsl:value-of select="@Key1"/></xsl:attribute>
...
</xsl:element>
</xsl:template>
</xsl:stylesheet>


Das Ergebnis der Transformation ist wie folgt:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns1:myelement Attr1="myAttr" xmlns:ns1="mynamespace" />


Das Zielsystem, welches das XML verarbeitet liefert beim Einlesen einen Fehler (welcher dies genau ist, kann ich wegen der schlechten Zusammenarbeit mit dem Hersteller des Zielsystems nicht sagen) und weist die Datei ab. Ich vermute, dass das XML nicht geparst sondern der Text statisch interpretiert wird und deshalb wie folgt aussehen müsste:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns1:myelement xmlns:ns1="mynamespace" Attr1="myAttr" />


Für die Transformation verwende ich die Klasse XslCompiledTransform. Gibt es irgendeine Einstellung (entweder im Template oder im Code), mit der ich die Position der Ausgabe des Namespaces beeinflussen kann?

Danke im Voraus
Klaus
News:
02.07.2012
luedi 2,0k 1 9