XJC 无法生成名为 "Con" 的元素

Element with name "Con" cannot be generated by XJC

大家好,我在从 XSD 文件生成 Java classes 时遇到以下问题。这取自 PMML xsd 文件,其中名为 "Con" 的元素位于该文件中。这两个是使用该元素的唯一地方。即使是这个尽可能小的例子,它也不起作用。

<xs:element name="Neuron">
  <xs:complexType>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="Con"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="Con">
  <xs:complexType>
    <xs:attribute name="from" type="xs:double" use="required"/>
  </xs:complexType>
</xs:element>

当我尝试在其中生成名称为 "Con" 的 classes 时,出现以下错误:

unable to write files: C:\myPathHere\build\generated\jaxbCache\PMML-4-3\org\dmg\pmml_4_3\Con.java (The handle is invalid)

有趣的是,如果我将元素的名称更改为任何其他名称,它可以正常工作并且所有 classes 都可以正确生成。我在这里缺少什么吗?遗憾的是找不到任何与名称 "Con" 相关的内容被排除在 XSD 的有效元素名称之外,用于 JAXB java class 生成。

感谢任何想法。

Con 是 windows 的保留字。您不能在 windows 上创建 Con.txt 本身。您可以做的是自定义绑定,提供不同的文件名并使用 @XmlElement(name="Con") 注释

参见Class Binding Declarations自定义类名