问题标签 [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.

0 投票
2 回答
985 浏览

java - JAXB 代码生成:受限类型 -> 如何删除零出现字段?

我使用 JAXB 2.1 从几个我无法修改的 XSD 文件(实际上来自 WSDL 文件)生成 Java 类,并且我遇到了与复杂类型限制相关的问题。On of the limits 将发生配置从 修改minOccurs="0" maxOccurs="unbounded"minOccurs="0" maxOccurs="0"。因此,在受限类型中不再需要此字段。但实际上 JAXB 使用 [0..1] 基数而不是 0 生成受限类。

顺便说一句,生成是经过调整的,<xjc:treatRestrictionLikeNewType />因此 XSD 限制不会映射到 Java 类继承。

这是一个例子:

这是在复杂类型 A 中定义字段的方式:

<element name="qualifier" type="CR" maxOccurs="unbounded" minOccurs="0"/>

这是限制 A 的另一个复杂类型 B 中限制相同字段的方式:

<element name="qualifier" type="CR" minOccurs="0" maxOccurs="0"/>

在生成的 A 类中,我有:

@XmlElement(name = "qualifier")
protected List<CR> qualifiers;

在 B 生成的类中,我有:

protected CR qualifiers;

由于我对 JAXB 的了解不足,XmlElement注释的缺失告诉 JAXB 不要编组/解组该字段。我错了吗?如果我是对的,有没有办法告诉 JAXB 根​​本不生成该qualifiers字段?在我看来,这将是更好的一代,因为它尊重约束。

任何想法,关于这个话题的想法?

谢谢!!

0 投票
1 回答
1311 浏览

java - Maven Release Plugin with JAXB issues

We've got a project set up to use the Maven Release Plugin which includes a phase that unpacks a JAR of XML schemas pulled from Artifactory and a phase that generates XJC classes. We're on maven release 2.2.1.

Unfortunately the latter phase is executing before the former which means that it isn't generating the XJC classes for the schema. A partial POM.XML looks like:

I've tried googling for it, unfortunately I ended up with a case of thousands of links none of which were actually relevant so I'd be very grateful if someone knew how to configure the order of the release plugin steps to ensure a was fully executed before it did b.

Thanks

0 投票
1 回答
1963 浏览

regex - 带有 xjc (ant) 和 jaxb 验证的 xsd 中正则表达式中的反斜杠

我的 xsd 文件中有以下正则表达式类型:

当通过 xjc 在 ant 中生成时,我收到以下异常:

我可以通过将每个反斜杠 () 更改为双反斜杠 (\) 来解决此问题:

但是,当验证在编组期间运行时,我得到以下异常:

显然,双反斜杠 (\\) 是导致验证失败的原因。但是如何编码单个反斜杠以使 xjc 工作?

编辑:

嗯,现在找到了答案,似乎 xjc 正则表达式中不支持“\b”。将它们排除在外解决了问题,它现在生成时没有错误,并且似乎在运行时工作。耶!:)

虽然有人知道这在没有单词边界的情况下是否安全?也许有替代方案?

0 投票
1 回答
6401 浏览

java - XJC 生成的命名空间

我正在尝试*.xsd使用xjc代码生成工具从文件包中生成 java 源文件。

这些 *.xsd 文件中使用的命名空间如下:

XJC生产包如下:

com.domain.foo.bar.x 并将生成的 java 文件从“...x”和“...xy”xsd 命名空间放在那里

com.domain.foo.bar.x_y 并将生成的 java 文件从“...xyz”xsd 命名空间放在那里

我想在这里实现的是正确的:

这有可能吗?也许使用自定义JAXB绑定?我研究过 jaxb 自定义绑定文档,但不确定是否可行。

基本上我希望xjc同时处理“/”和“。” 作为包分隔符。

任何帮助表示赞赏。

阿达尔伯特

0 投票
1 回答
5715 浏览

java - JAXB Ant 任务错误:xjc2 [ERROR] null 未知位置

使用 Ant 的 xjc2 任务绑定一些有效的 XML 文档时,我收到以下失败消息:

文件与其他绑定成功的文件非常相似,所有导入的模式都存在。以详细模式运行 xjc 产生:

有人知道这意味着什么吗?

0 投票
2 回答
3430 浏览

java - JAXB 使 Objectfactory 中的 QName 可访问

当您使用 JAXB 生成 java 类时,您总是会得到一个名为 ObjectFactory 的类。在此类中,有一个私有属性 QName,其中包含名称空间。

是否可以告诉生成器使该属性可以从外部访问。那么也许将其公开或为它创建一个吸气剂?

0 投票
2 回答
1636 浏览

xml - JAXB - XJC 可以将 appinfo 编译到类结构中吗?

我有一个模式,由几个不同的应用程序读取以生成表单;其中之一使用 JAXB/XJC 编译其类结构。架构包含字段友好名称的 appinfo 信息,例如:

有什么方法可以让 XJC 编译这些信息吗?

0 投票
1 回答
926 浏览

jaxb - 控制 JAXB 为 xsd:attributeGroup 生成的类名?

我正在使用 JAXB 为我正在编写的应用程序将 XML 绑定到 Java。我有一个名为measure的元素,它包含两个名为amountmaxAmount的数量元素,我想用它来模拟一个下限值和一个上限值。amountmaxAmount在其他方面是相同的,我希望它们在解组为 Java 时使用相同的类来实现。

以下是我提供给 JAXB 的 XML 模式的摘录:

JAXB 从中创建了以下更详细的版本:

Measure.AmountMeasure.MaxAmount除了名称之外是相同的,但是——当然——就 Java 而言,它们彼此之间几乎没有关系。

有没有办法让 JAXB 对amountmaxAmount使用相同的类?

只是为了完全干净;-) 我应该提到我使用 Trang 从 RNC 生成 XML 模式。如果问题的答案是“更改 XML 模式”,我有补充问题“如何更改 RNC 以生成该 XML 模式?”。我的 RNC 看起来像这样:

我使用 RNC 是因为我发现它更易于理解,但如果我的问题的解决方案仅意味着使用 XML Schema,那就这样吧。

史蒂夫

0 投票
1 回答
3082 浏览

java - 我可以配置 XJC 绑定以将集合生成为 Set 而不是 List

给定这样的模式:

XJC 将生成类似于以下内容的 Java:

我想为 PageContainer 元素强制执行一个唯一的集合。这是一个逆向工程项目,所以我不太关心确保架构明确执行它。

是否可以通过在模式或 XJC 绑定中指定某些内容来将PageContainer元素生成为 a ?Set<PageContainerType>

0 投票
3 回答
4784 浏览

xml - JAXB XJC 编译器忽略 XML Schema 文档上的混合=真

XJC 似乎完全忽略mixed="true"了我的 XML Schema 元素,因此不允许我提取文本内容。从下面的示例 XML 中,我需要能够提取“标题文本”。在没有mixed="true"被识别的情况下,不会创建访问器,也不会从 XML 中解组:

这是一个完整但最小化的架构来演示该问题:

请注意,在上面我混合了="true"。尽管如此,生成的模式片段不包含对它的引用,生成的类也不使用XmlMixed注释,也不使用值或内容访问器:

为什么 XJC / JAXB 完全不理会我的混合内容字段?我已经尝试过 JAXB 2.1 和 JAXB 2.2,但生成的代码中只存在微不足道的差异。

注意:我无法更改架构,因为实际架构是符合标准的医疗保健 (HL7) 架构。