gpt4 book ai didi

java - 使用 Jaxb 添加 Xml 命名空间

转载 作者:行者123 更新时间:2023-12-04 06:57:54 25 4
gpt4 key购买 nike

我正在创建亚马逊提要,提要 xml 应该是这样的:

<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">

我使用 jaxb 从 java 类生成 xml 文件,我使用 jaxb 示例中的 NamespacePrefixMapperImpl 将命名空间添加到 xml。但目前它生成的根像:
<AmazonEnvelope xmlns:xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

如何从 amzn-envelope.xsd 中删除 xmlns?

这是我在 NamespacePrefixMapperImpl 中使用的映射
if( "http://www.w3.org/2001/XMLSchema-instance".equals(namespaceUri) )
return "xsi";

if("amzn-envelope.xsd".equals(namespaceUri))
return "xsi:noNamespaceSchemaLocation";

最佳答案

我在 Marshaller 找到了一个可以添加 amzn-envelope.xsd 的属性:

marshaller.setProperty("jaxb.noNamespaceSchemaLocation", "amzn-envelope.xsd");

并离开 NamespacePrefixMapper 添加“ http://www.w3.org/2001/XMLSchema-instance ”。
希望这对其他人有帮助。

关于java - 使用 Jaxb 添加 Xml 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com