Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jaxb生成的代码中去掉JAXBElement?_Java_Xml_Xsd_Jaxb - Fatal编程技术网

Java 从jaxb生成的代码中去掉JAXBElement?

Java 从jaxb生成的代码中去掉JAXBElement?,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我有一个xsd,从中生成一些java代码: <xs:element name="full-account-v2" > <xs:complexType> <xs:sequence> <xs:element name="ban" type="xs:string" /> <xs:element name="status" type="xs:int" /> </xs:sequence&g

我有一个xsd,从中生成一些java代码:

<xs:element name="full-account-v2" >
  <xs:complexType>
    <xs:sequence>
        <xs:element name="ban" type="xs:string" />
        <xs:element name="status" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
</xs:element>
我尝试在单独的xml文件中为元素声明定义类型,但得到了相同的结果

这么简单的重构怎么会让我挣扎了8个小时呢?我做错了什么

注意:这似乎与

<xs:element name="full-account-v2" type="fullAccountV2" />
<xs:complexType name="fullAccountV2">
    <xs:sequence>
        <xs:element name="ban" type="xs:string" />
        <xs:element name="status" type="xs:int" />
    </xs:sequence>
</xs:complexType>
如上所述,上述模式定义还将生成一个工件
FullAccountV2
。模式编译器使用分配给
类型的任何内容来派生工件名称

如果使用
schemagen
生成schema
xsd
,则这一点也很明显。例如-对于下面显示的类定义

@XmlRootElement
public class Pojo {
    public Pojo p;
}
schemagen
生成以下模式定义

<xs:element name="pojo" type="pojo"/>
<xs:complexType name="pojo">
    <xs:sequence>
      <xs:element name="p" type="pojo" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>


请注意,
name
type
具有相同的值,即默认情况下的类名。

“停止工作”不是一个有用的短语。详细说明特定错误消息或条件失败的原因:
javax.xml.bind.MarshalException-链接异常:[com.sun.istack.internal.SAXException2:无法将类型“com.mycompany.global.er.decoupling.binding.response.v2.FullAccountV2”封送为元素,因为它缺少@XmlRootElement注释]
<xs:complexType name="payloadType">
    <xs:sequence>
        <xs:any processContents="lax" minOccurs="0" />
    </xs:sequence>
</xs:complexType>
<xs:element name="full-account-v2" type="fullAccountV2" />
<xs:complexType name="fullAccountV2">
    <xs:sequence>
        <xs:element name="ban" type="xs:string" />
        <xs:element name="status" type="xs:int" />
    </xs:sequence>
</xs:complexType>
<!-- one is element and other is complexType -->
<xs:element name="fullAccountV2" type="fullAccountV2" />
<xs:complexType name="fullAccountV2">
    <xs:sequence>
        <xs:element name="ban" type="xs:string" />
        <xs:element name="status" type="xs:int" />
    </xs:sequence>
</xs:complexType>
@XmlRootElement
public class Pojo {
    public Pojo p;
}
<xs:element name="pojo" type="pojo"/>
<xs:complexType name="pojo">
    <xs:sequence>
      <xs:element name="p" type="pojo" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>