SOAP 标头在 XSL 转换后发生更改



我一直在尝试使用 XSL 文件生成 XML。但不知何故,SOAP 标头标记被另一个标记覆盖。

我的 XSL 文件看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <xsl:output method="xml" omit-xml-declaration="no" encoding="utf-8"
        indent="yes" />
    <xsl:template match="/">
        <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
            <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
            <!-- SOME DATA -->
            </SOAP-ENV:Header>
            <soap:Body>
            <!-- SOME DATA -->
            </soap:Body>
        </soap:Envelope>
    </xsl:template>
</xsl:stylesheet>

输出 XML 生成为:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header>
<!--SOME DATA-->
  </soap:Header>
   <soap:Body>
<!--SOME DATA-->
</soap:Body>
</soap:Envelope>  

而我希望它看起来像:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<!--SOME DATA-->
  </SOAP-ENV:Header>
   <soap:Body>
<!--SOME DATA-->
</soap:Body>
</soap:Envelope>  

有人可以帮我解决这个问题吗?提前谢谢。

您的 soap en SOAP-ENV 命名空间是相同的,因此唯一更改的是已删除第二个前缀。从本质上讲,您的消息是相同的,前缀只是命名空间的占位符,并且您不需要同一命名空间的两个前缀。

基本上第二个前缀是不必要的,被变压器删除。

相关内容

  • 没有找到相关文章

最新更新