JMS适配器添加名称空间值xmlns =“”

时间:2015-07-17 19:57:53

标签: xml xsd namespaces jms bpel

使用SOA BPEL2.0,我正在尝试将字符串映射到JMS出站队列。

我使用简单的xsd,如下所示

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                      elementFormDefault="qualified">
<xsd:element name="FullName" type="xsd:string"/>
</xsd:schema>

目前,队列消息产生为

<?xml version="1.0" encoding="UTF-8" ?><FullName xmlns="">
....
....
</FullName>

所需的队列消息在哪里

<?xml version="1.0" encoding="UTF-8" ?><FullName>
....
....
</FullName>

我没有使用任何xsl左右。

任何帮助或线索都会非常棒。

1 个答案:

答案 0 :(得分:0)

请尝试以下代码:

它从已处理文件中删除所有命名空间定义,但复制所有其他节点和值:元素,属性,注释,文本和处理指令。

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output indent="yes" method="xml" encoding="utf-8" omit-xml-declaration="yes"/>

    <!-- Stylesheet to remove all namespaces from a document -->
    <!-- NOTE: this will lead to attribute name clash, if an element contains
        two attributes with same local name but different namespace prefix -->
    <!-- Nodes that cannot have a namespace are copied as such -->

    <!-- template to copy elements -->
    <xsl:template match="*">
        <xsl:element name="{local-name()}">
            <xsl:apply-templates select="@* | node()"/>
        </xsl:element>
    </xsl:template>

    <!-- template to copy attributes -->
    <xsl:template match="@*">
        <xsl:attribute name="{local-name()}">
            <xsl:value-of select="."/>
        </xsl:attribute>
    </xsl:template>

    <!-- template to copy the rest of the nodes -->
    <xsl:template match="comment() | text() | processing-instruction()">
        <xsl:copy/>
    </xsl:template>

</xsl:stylesheet>