gpt4 book ai didi

JAXB Simplify 插件仍然可用吗?

转载 作者:行者123 更新时间:2023-12-04 12:20:38 28 4
gpt4 key购买 nike

我在这里尝试了问题的解决方案JAXB Simplify plugin vs *.xjb .

但它失败了,但有以下异常(exception)

"编译器无法接受此简化:作为元素属性自定义。它附加到错误的位置,或者它与其他绑定(bind)不一致。"

这是我使用的自定义绑定(bind)

<jaxb:bindings node="//xs:complexType[@name='Op']//xs:choice/xs:element[@name='Time']">
<simplify:as-element-property/>
</jaxb:bindings>

无法访问 jaxb 简化插件合流页面,有没有人使用过这个插件,可以举个例子吗?

这是我根据答案更新的架构
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"   attributeFormDefault="unqualified" xmlns="http://www.amadeus.com/APT/FOM/00" targetNamespace="http://www.amadeus.com/APT/FOM/00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:simplify="http://jaxb2-commons.dev.java.net/basic/simplify" jaxb:extensionBindingPrefixes="simplify">  
...
...
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="Time" type="xs:dateTime" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<simplify:as-element-property />
</xs:appinfo>
</xs:annotation>
</xs:element>
... ...
</xs:choice>
...

我在 maven 构建期间遇到了异常,例如“不支持的绑定(bind)命名空间” http://jaxb2-commons.dev.java.net/basic/simplify “。也许你的意思是” http://jaxb.dev.java.net/plugin/code-injector “?”

最佳答案

免责声明:我是 Simplify 插件的作者,它是 JAXB2 Basics 的一部分.

该项目的插件运行良好,但我的文档服务器有时会死机。我没有资源来维护自己的主机,所以我将所有项目都移到了 GitHub。

您可以在此处找到 JAXB2 基础项目:

https://github.com/highsource/jaxb2-basics

文档尚未移动,但这里有一个使用它的测试项目的链接:

https://github.com/highsource/jaxb2-basics/tree/master/tests/issues

以下是 schema 的片段使用 simplify:as-element-property定制:

<xs:complexType name="gh1" mixed="true">
<xs:sequence>
<xs:element name="a" type="xs:string">
<xs:annotation>
<xs:appinfo>
<simplify:as-element-property/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="b" type="xs:int"/>
</xs:sequence>
</xs:complexType>

我会在几个小时内让服务器重新上线。

请发布您的架构/自定义以供我们检查。您遇到的问题可能是您将自定义放在错误的位置。这有时很难弄清楚。

更新

这个错误:
"Unsupported binding namespace "http://jaxb2-commons.dev.java.net/basic/simplify". Perhaps you meant "http://jaxb.dev.java.net/plugin/code-injector"?"

表示插件丢失或未激活。我假设你使用 maven-jaxb2-plugin .然后确保你有 jaxb2-basics作为 JAXB2 插件,还包括 -Xsimplify转变。这是 sample :
        <plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<configuration>
<extension>true</extension>
<args>
<arg>-Xsimplify</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
</plugin>
</plugins>
</configuration>
</plugin>

接下来,您的原始错误“无法兑现此...自定义”可能与您放置自定义的位置有关。你已经把它放在元素上(这也是我要做的)。

但在某些情况下,XJC 从其他模式组件中读取这些定制。在您的情况下,请尝试将自定义设置在 xs:choice反而。

如果错误仍然存​​在,请 file an issue在 GitHub 上提供重现错误的最小模式。到时候我会处理的。

更新 2

服务器重新上线,但我现在已经移动了 JAXB2 Simplify Plugin 的文档到 GitHub:

https://github.com/highsource/jaxb2-basics/wiki/JAXB2-Simplify-Plugin

更新 3

0.9.1 版本的最终解决方案如下所示:

https://github.com/highsource/jaxb2-basics/issues/3

自定义类:
<simplify:property name="type2OrType3">
<simplify:as-element-property/>
</simplify:property>

Example .

关于JAXB Simplify 插件仍然可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523990/

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