Заголовок мыла изменен после XSL-преобразования - PullRequest
0 голосов
/ 17 января 2019

Я пытался сгенерировать XML, используя файл XSL. Но каким-то образом тег заголовка 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>  

Может кто-нибудь помочь мне решить эту проблему? Заранее спасибо.

1 Ответ

0 голосов
/ 17 января 2019

Ваше мыло en Пространства имен SOAP-ENV одинаковы, поэтому единственное, что изменилось, это то, что второй префикс был удален. По сути, ваше сообщение одно и то же, префикс является просто заполнителем для пространства имен, и вам не нужны два префикса для одного и того же пространства имен.

Обычно второй префикс не нужен и удаляется преобразователем.

...