问题标签 [xjc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 jaxb 转换工具 xjc
是xjc
从命令行(JAVA_HOME\bin
在你的PATH
)运行com.sun.tools.xjc.Driver
吗?
即
运行类com.sun.tools.xjc.Driver
与运行相同xjc
吗?
wsdl - 特定类的 JAXB 定制
是否可以将 JAXB 自定义绑定应用到 WSDL 中的一个(或一组)特定类?
根据我收集到的信息,通过 globalBidings 元素将自定义应用于从 WSDL 生成的所有类。我希望能够命名应用自定义的类。
所以与其说...
...有没有办法限制超类的范围?
java - jaxb 不编译 niem 模式
我已经好几天了,试图找出原因是什么。Augmentation
并AugmentationType
在./niem/niem-core/2.0/niem-core.xsd
可以在此处找到 niem xsd 文件:
- https://www.niem.gov/create-iepd/pages/production-releases.aspx
- http://release.niem.gov/niem/2.1/niem-2.1.zip
我的Test.java
文件在此失败:
我尝试使用 JDK6 内置的 jaxb 实现,并用 java.net 上的最新 jaxb 实现覆盖它(并将 api jar 放在 jre/lib/endorsed 中)。
我发现这个 2007 年的旧论坛消息,有类似的错误。您必须执行 browser-view-source 才能查看该线程中的 xml 位。我已经尝试了各种变体,将其调整为现在 niem 模式的样子,但我无法理解它。
这是 jaxb xjc 编译器中的错误还是 niem 模式文件中的错误?显然,它使用 XMLSpy 编译,但如果可能的话,我想坚持使用 xjc/jaxb ......
我正在编译这样的xml文件:
bindings.xml
:
java - java中toString()的替代方法
我拥有的是来自 XML 的未编组的 java 对象。这个未编组的对象的部分被发送到各个类进行处理。我需要记录未编组对象的内容。我可以轻松地覆盖该toString()
方法,但问题是在这种情况下,类是在构建时使用 xjc 生成的,我无法覆盖这些类中的 toString(),因为它们将在再次生成时被删除。
我正在寻找其他替代方法来打印内容。任何的想法 ?
java - 将 xjc 与 ant 一起使用
我正在尝试使用来自 ant 的 xjc 编译器。构建成功,但没有生成任何内容。我的蚂蚁脚本如下:
我的 build.properties 是:
我使用的是 java 1.6,并且我使用了 jaxb-sjc.jar。
java - jaxb 中的内联绑定规范
像这样的东西的内联选项是什么
xjc -d 。-b bindings.xjb Derived.xsd
我的 bindings.xsd 将在哪里
我要做的就是防止在任何地方重复 NameType。但要求是严格的内部绑定。
我在 Derived.xsd 中尝试过类似的东西
但这没有成功。任何想法
xml - 使用 XPath 选择节点以使用 JAXB 绑定类的子集
简化问题: 选择具有以字符串“Notification”结尾的属性的所有 XML 节点的 XPath 是什么。此代码段中的第一个和第三个节点:
详细问题:
我想从 xsd 模式中选择多个 complexTypes 来与 JAXB 绑定。这适用于单个类:OrderStateChangeNotification
这是架构模式文件中的相关片段:
我希望绑定适用于所有通知对象。它们都以“通知”结尾
我尝试将 XPath 从
到
但它没有用。
另一种方法是尝试选择具有子“订单摘要”和“序列号”的所有节点,因为我知道只有通知对象有这些。
更新: @Lee Greco 的解决方案正确选择了我想要的节点,但不幸的是,继承插件与多个节点不兼容:
我最终只是分别列举了它们。
java - 是否可以将值作为 xml 属性或元素来处理?
我正在实现一些 IHE ITI HL7 配置文件,并且有可用的模式,我从中生成了 JaxB 类。最近我发现不同版本的模式之间存在一些差异。特别是,一些 XML 元素现在是 XML 属性。
以前 typeCode 属性被映射到 XML 元素,请参见下面的示例:
现在 typecode 属性被映射到一个 XML 属性,见下面的例子:
有什么方法可以让我使用任何注释或其他可能性来处理带有这些形式中的任何一种类型代码的消息的类?更好的是,有没有办法让 XJC 生成器自动为我做这件事,也许有某种绑定?
目前它只是一个带有@XmlAttribute 注释的字段。
java - 如何使用 JAXB 和 XJC 编写我的 XSD 以匹配所需的 XML 和 Java 格式
我希望能够使用 JAXB 处理这种格式的 XML ...
我想将上述 XML 编组到这些 Java 类中(为简单起见,我留下了修饰符,例如public
,protected
以及 getter/setter):
我当前 XSD 结构的相关部分大致如下所示:
不幸的是,XJC 还生成了一个类,Things
即使在处理的 Java 部分中确实不需要它。所以我的输出是这样的:
有什么办法可以告诉 XJC 避免生成这个不必要的类?或者有什么办法可以重新表述我的 XSD 以避免那一代?这两种选择对我来说都很好。
事实上,我想我需要生成@XmlElementWrapper
这里记录的注释:
jaxb - CodeModel中ClassOutline/JClass/CClass的作用是什么?
我的问题涉及编写 JAXB 插件,特别是 JAXB 代码模型。
ClassOutline
(和它的同伴)和JClass
(和同伴)和CClass
(和同伴)的作用是什么?查看相应包中的类列表时,不清楚什么是鸡什么是鸡蛋。
我的解释是CClass
( CPropertyInfo
, CEnumConstant
, ...) 是 XJC 在 XSD 的初稿解析时创建的。然后发生了一些神奇的事情,这个模型被转换为JClass
( JFieldVar
, JEnumConstant
, ...) 并且在这个转换过程中应用了自定义。之后调用插件。ClassOutline
被用作这两个模型之间的桥梁。整体看起来非常复杂。
通过这些并行模型,我相信可以通过多种方式得出相同的信息。例如类字段类型:
JClass#fields()
→JFieldVar#type
→JType
CClassInfo#getProperties()
→CPropertyInfo#baseType
→JType
我正在寻找上述模型生命周期的详细解释。谢谢。