我正在尝试从 xsd 模式生成 Java 类,并且我正在使用 JAXB。在大多数情况下,当我运行该过程以生成它可以工作的类时。但是,有一些类不会生成成员变量 getters 和 setters。这是我所拥有的
文件 ns2.xsd
<xs:element name="Observation" type="ns2:ObservationType" substitutionGroup="ns1:_MetaData"/>
<xs:complexType name="ObservationType" mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="ns1:AbstractType">
<xs:sequence>
<xs:element ref="ns2:identifier"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
文件 ns3.xsd
<xs:element name="Observation" type="ns3:ObservationType" substitutionGroup="ns2:Observation"/>
<xs:complexType name="ObservationType" mixed="true">
<xs:annotation>
<xs:documentation>this extends the ns2:ObservationType </xs:documentation>
</xs:annotation>
<xs:complexContent mixed="true">
<xs:extension base="ns2:ObservationType">
<xs:sequence>
<xs:element ref="ns3:deliveryInfo" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
这将创建一个空类
package mypackage.ns3;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
/**
* this extends the ns2:ObservationType
*
* <p>Java class for ObservationType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="ObservationType">
* <complexContent>
* <extension base="{http://earth.esa.int/ns2}ObservationType">
* <sequence>
* <element ref="{http://earth.esa.int/ns3}deliveryInfo" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ObservationType")
public class ObservationType
extends mypackage.ns2.ObservationType
{
}
我的问题是为什么不创建所需的成员变量及其 setter 和 getter?架构是否有问题,或者 JAXB 是否存在限制以创建使用不同文件扩展名的复杂类型的缺失信息?先感谢您。您的帮助或意见将不胜感激。