具有相同名称的属性和元素的XMLBeans名称冲突

时间:2019-01-23 21:43:08

标签: java xsd xmlbeans

我一直在使用XMLBeans从XSD文件生成Java代码。现在,此XSD文件添加了一个名称与该超级元素相同的新元素。参见缩写示例。现在,元素字段具有一个与现有value属性分开的Value数组。

<xs:element name="Field">
 <xs:complexType>
 <xs:sequence>
  <xs:sequence minOccurs="0" maxOccurs="1">...
    <xs:element ref="Value" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:sequence>
<xs:attribute name="value" type="xs:string"/>...

自该更新以来,代码生成为名为setValue2 / getValue2的属性生成了一个不同名称的setter和getter。在设置setValue / getValue之前。 Value元素的setter和getter称为setValueArray / getValueArray,因此没有真正的冲突,但是我想生成仍然遵循XMLBeans apache页面上描述的合理性:“当发生名称冲突时,生成的类型将具有带有数字的名称例如“ TestType2”。

我想将Value属性的getter和setter名称改回之前的名称,这样我就不必更改Java代码了。如何使用xsdconfig或任何其他方式实现此目的?问题在于,元素值还存在于XSD中的其他元素中,因此我无法按照xmlBeans / xmlconfig Wiki页面上的建议进行简单的名称更改。我正在寻找一种在name元素中包含路径的方法,请参见下面的示例。

    <xb:qname name="na:Field/Value" javaname="Values"/>

当它是Field的元素时,我只想更改元素Value的名称。

0 个答案:

没有答案