Java JAXB区分大小写的类生成

Java JAXB区分大小写的类生成,java,jaxb,standards,case-sensitive,Java,Jaxb,Standards,Case Sensitive,我想从标准模式创建类。架构似乎因小写类型而被破坏。是否有任何方法可以在“不区分大小写”模式下使用jaxb生成类 以下是冲突产生的问题: <xs:complexType name="Duration"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="duration" type="DurationValue"/> <xs:element name=

我想从标准模式创建类。架构似乎因小写类型而被破坏。是否有任何方法可以在“不区分大小写”模式下使用jaxb生成类

以下是冲突产生的问题:

<xs:complexType name="Duration">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
     <xs:element name="duration" type="DurationValue"/>
     <xs:element name="description" type="description"/>
     <xs:group ref="ex:customElements"/>
    </xs:choice>
 </xs:complexType> 

<xs:complexType name="duration">
    <xs:complexContent>
      <xs:extension base="Duration">
        <xs:attributeGroup ref="ag:duration"/>
       <xs:attributeGroup ref="ex:customAttributes"/>
     </xs:extension>
    </xs:complexContent>
 </xs:complexType>

我已经将“duration”标签重命名为“customDuration”,并且我还更改了引用,它可以正常工作


谢谢大家!

我认为您应该更改模式,以便让
Duration
Duration
生成JAXB对象,然后更改生成的JAXB类,以便使它们适应origina WSDL。例如,在Java中:

@XmlElement(name = "Duration")
protected String duration;

@XmlElement(name = "duration")
protected String duration_;

(我简化了示例中的类型)。无论如何,希望您找到更好的解决方案。

这已经得到了回答,但希望这对其他人有所帮助,请使用-XautoNameResolution,以便在遇到两个同名元素时生成新类(不区分大小写)。我使用它如下


xjc-d src-p com.sample-wsdl somewsdl.wsdl-XautoNameResolution

您所说的“架构似乎由于小写类型而被破坏”是什么意思。你能提供一个(可能是简化的)不适合你的例子吗?有一个叫做“Duration”的复杂类型和另一个扩展它的类型叫做“Duration”。Jaxb显示了错误:(与上面的错误相关)从这里生成了另一个“持续时间”。谢谢,我已经完成了,它可以工作了。我想知道为什么Jaxb没有任何不区分大小写的标志,在这里我可以生成两个类:“Duration.java”和“Duration.java”。谢谢,我认为这很复杂,因为这不符合Java代码约定。几周前我开始与JABX合作,我也遇到过像你这样的问题。我觉得很多现有的WSDL都没有为JAX-WS做好准备