JAXB 到 xml 添加 xml 版本标签
JAXB to xml adds xml version tag
在 mule anypoint studio 中,当我使用自定义变换器创建 jaxb object 然后使用 JAXB 将其编组到 xml 到 xml 组件时,我得到了结果 xml 与下面的 xml 版本标签。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
所以结果 xml 看起来像下面这样。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExampleXML>
</ExampleXML>
这通常不是问题,但此时我将 xml 添加到肥皂信封中。
结果是
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExampleXML>
</ExampleXML>
</soapenv:Body>
</soapenv:Envelope>
这是一个无效的请求..
是否有相同的方法将 jaxb 设置为 xml 转换器以不添加此 header?
当您调用编组器时,您可以将片段 属性 设置为 true,这将不会生成 header。
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
尝试看起来与此类似的 XSLT 转换器。这个 xsl:copy 基本上复制了与表达式匹配的节点。这里 '。'指的是当前节点,其实根节点就是这里的当前节点。因此,整个 XML 都嵌入到 SOAP 信封中。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<xsl:copy-of select="." />
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
在 mule anypoint studio 中,当我使用自定义变换器创建 jaxb object 然后使用 JAXB 将其编组到 xml 到 xml 组件时,我得到了结果 xml 与下面的 xml 版本标签。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
所以结果 xml 看起来像下面这样。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExampleXML>
</ExampleXML>
这通常不是问题,但此时我将 xml 添加到肥皂信封中。
结果是
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExampleXML>
</ExampleXML>
</soapenv:Body>
</soapenv:Envelope>
这是一个无效的请求..
是否有相同的方法将 jaxb 设置为 xml 转换器以不添加此 header?
当您调用编组器时,您可以将片段 属性 设置为 true,这将不会生成 header。
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
尝试看起来与此类似的 XSLT 转换器。这个 xsl:copy 基本上复制了与表达式匹配的节点。这里 '。'指的是当前节点,其实根节点就是这里的当前节点。因此,整个 XML 都嵌入到 SOAP 信封中。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<xsl:copy-of select="." />
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>