in einer meiner xml Payload Ich muss einen Namespace nach der folgenden Zeile hinzufügen.Hinzufügen von Namespace mit XSLT
<?xml version="1.0" encoding="UTF-8"?>
<ep:Document xmlns:ep="namespace here"
xmlns:gk="namespace here"
xmlns:sh="namespace here" schemaVersion="" creationDate="">
danach ich nedd die Namespace xmlns hinzuzufügen: xsi = "http://www.w3.org/2001/XMLSchema-instance">
die erwartete Ausgabe sollte
<?xml version="1.0" encoding="UTF-8"?>
<ep:Document xmlns:ep="namespace here"
xmlns:gk="namespace here"
xmlns:sh="namespace here" schemaVersion="" creationDate=""xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
könnten Sie bitte dabei helfen. Lassen Sie mich meine Anforderung ausarbeiten. In der eigentlichen Eingabenachricht bekomme ich Payload ohne Namespaces. Es sieht wie unten aus.
<?xml version="1.0" encoding="UTF-8"?>
<document>
</document>
in s/w das Dokument haben wir Rest der Nutzlast.
Danach habe ich XSLT-Code verwendet, um Namespaces und Präfixe in der Nutzlast hinzuzufügen. unten ist mein XSLT-Code.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ep="namespace here"
xmlns:sh="namespace here"
xmlns:gk="namespace here">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Document">
<ep:Document>
<xsl:apply-templates select="node()|@*"/>
</ep:Document>
</xsl:template>
<xsl:template match="Extension|Extension//*">
<xsl:element name="gk:{name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<xsl:template match="Header|Header//*">
<xsl:element name="sh:{name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:stylesheet>
nach diesem Code der Ausgang I sieht aus wie unten bin immer.
<?xml version="1.0" encoding="UTF-8"?>
<ep:Document xmlns:ep="namespace here"
xmlns:gk="namespace here"
xmlns:sh="namespace here" schemaVersion="" creationDate="">
und Rest payload.so brauche ich noch einen Namespace nach Schema-Version und creation in dem vorhandenen Code, wie im Beitrag erwähnt.
Wir müssen Ihre vorhandene XSLT sehen - zumindest den Teil, der das 'ep: Document' Element behandelt. Beachten Sie, dass dies eine (andere?) Überflüssige Anforderung ist: Wenn Ihre Ausgabe eine Bindung des Präfixes "xsi" benötigt, würde Ihr Prozessor sie automatisch eingefügt haben (oder einen Fehler ausgelöst haben). –
Lassen Sie mich meine Anforderung ausarbeiten. in der tatsächlichen Eingabe Payload bekomme ich die Nachricht ohne Namespaces .. –
Ich habe meine Frage bearbeitet. bitte finden sie die details. –