天知道我在论坛上搜索了答案,但没有看到任何答案。
这是我的 JAXB 代码读取的简化 XML。涉及2个命名空间。 xyz 和 abc。这两个是在两个不同的模式文件中定义的。 xjc 为它们生成两个不同的包。以下文件可以很好地读入这些类,甚至可以写入它。
<xyz:xyz xsi:schemaLocation="urn:xyz xyz.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xyz="urn:xyz">
<session>
<App xsi:schemaLocation="urn:abc abc.xsd" xmlns="urn:abc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AppItem att1="1234"/>
</App>
</session>
</xyz:xyz>
它是这样写的。
<ns3:xyz xmlns:ns2="urn:abc" xmlns:ns3="urn:xyz">
<session>
<ns2:App>
<ns2:AppItem att1="1234"/>
</ns2:App>
</session>
</ns3:xyz>
现在我知道了 NamespacePrefixMapper,我可以将 ns2 和 ns3 更改为我想要的值。我想要这个。基本上我想保留 XML 的原始形式。 App 元素本身应包含所有信息,并且不创建前缀。
<xyz:xyz xmlns:xyz="urn:xyz">
<session>
<App xsi:schemaLocation="urn:abc abc.xsd" xmlns="urn:abc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AppItem att1="1234"/>
</App>
</session>
</xyz:xyz>
有谁知道如何实现这一目标?似乎 AppType.java 中的某些设置应该告诉编写者不要使用前缀更新根元素。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)