我有一个带有以下元素的XSD Schema:
<xs:element name="FooResponse" type="commonTypes:Response" />
当我运行构建(具有xjc
目标以将架构转换为Java源代码)时,不会创建单独的类文件FooResponse.java
(可能因为它与{{1}相同现在,我知道我可以像这样重写架构:
Response.java
并获得我正在寻找的结果。但是,架构是从工具自动生成的,我宁愿不必手动触摸它。有没有办法在这种情况下配置插件来创建源文件?
我需要同时创建<xs:element name="FooResponse">
<xs:complexType>
<xs:complexContent>
<xs:extension base="commonTypes:Request"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
和Response.java
,因为还有其他与FooResponse.java
无关的类型需要从中继承。
我尝试像这样创建一个XJB绑定文件:
FooResponse
这是因为我得到了<jaxb:bindings version="2.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="my_schema.xsd" node="/xs:schema/xs:element[@name='FooResponse']">
<jaxb:class name="FooResponse"/>
</jaxb:bindings>
</jaxb:bindings>
和Response.java
,但FooResponse.java
的内容并不完全符合我的要求:
FooResponse
如果我直接扩展public class FooResponse
extends JAXBElement<Response>
{
protected final static QName NAME = new QName("initech.com/c/m", "FooResponse");
public FooResponse(Response value) {
super(NAME, ((Class) Response.class), null, value);
}
public FooResponse() {
super(NAME, ((Class) Response.class), null, null);
}
}
而不将其包装到Response
中,这就是我想要的。