gpt4 book ai didi

java - 如何跳过 JAXB 绑定(bind)中的复杂类型

转载 作者:行者123 更新时间:2023-11-30 11:23:56 25 4
gpt4 key购买 nike

我使用 JAXB 绑定(bind)从现有的 xml 模式生成 java 类。但是我想跳过以“旧”结尾的类型的类生成或声明“过时”属性或包含下划线。

我尝试修改我的 JAXB 绑定(bind)文件,但没有成功,但我不知道写入哪个节点来声明这些类型已跳过...

<!-- skip old types -->
<!-- with ie:obsolete attribute -->
<jaxb:bindings schemaLocation="external/insee/*.xsd">
<jaxb:bindings node="//*[@ie:obsolete='true']">
<!-- declare this type skipped -->
</jaxb:bindings>
</jaxb:bindings>
<!-- that endswith Old -->
<!-- that contains "_" underscore -->

有解决办法吗?

最佳答案

假设您处理的类型都没有引用这些“跳过的类型”,那么您可以使用外部绑定(bind)文件来指定它们对应于现有类,这样就不会生成新的类。如果引用了这些跳过的类型,那么对这个假类的引用将被带入您的模型。

binding.xml

<jxb:bindings 
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">

<jxb:bindings schemaLocation="beta.xsd">
<jxb:bindings node="//xs:element[@name='person']/complexType">
<jxb:class ref="com.FakeClass"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>

完整示例

关于java - 如何跳过 JAXB 绑定(bind)中的复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907623/

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