xslt에 전달 된 매개 변수를 기반으로 변경되는 soapenv : Header 요소에 네임 스페이스를 설정하려고합니다.
다음은 내가 사용중인 템플릿이며 예상 출력은 다음과 같습니다.
xslt에 대한 입력은 네임 스페이스를 포함하는 3 개의 매개 변수이며, 가변적 인 요청 메소드와 방금 복사 된 메시지 본문입니다.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:param name="RequestNameSpace" />
<xsl:param name="RequestMethod"/>
<xsl:param name="RequestMessageBody" />
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/" >
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="{$RequestNameSpace}">
<soapenv:Header/>
<soapenv:Body>
<xsl:element name="myns:{$RequestMethod}">
<xsl:copy-of select="$RequestMessageBody" />
</xsl:element>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
현재 출력, soapenv : Envelope 태그에서 네임 스페이스가 적용되지 않았 음을 참고하십시오. Im 이후는 RequestNameSpace가 전달 될 때 적용되는 것입니다.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="{$RequestNameSpace}">
<soapenv:Header/>
<soapenv:Body>
<myns:hello_world>
<test_tag>Test output</test_tag>
</myns:hello_world>
</soapenv:Body>
</soapenv:Envelope>
누군가 내가 뭘 잘못하고 있는지 지적 할 수 있다면 좋을 것입니다. 나는 그것이 soapenv : Envelop 요소에 대해 xsl : type 요소를 사용하지 않는다는 사실과 관련이 있다고 믿지만, 그것을 선언하고 네임 스페이스를 포함하는 방법을 잘 모르겠습니다.
건배
사용하지 않는 이유 :
<xsl:element name="{$RequestMethod}" namespace="{$RequestNameSpace}">
<xsl:copy-of select="$RequestMessageBody" />
</xsl:element>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다