【问题标题】:JAXB converting XSD to Java classesJAXB 将 XSD 转换为 Java 类
【发布时间】:2012-08-27 14:20:32
【问题描述】:

当我运行以下命令时:

xjc -b xmlSchema.xjb -d src -p com.q1labs.qa.xmlgenerator.model.generatedxmlclasses xmlSchema.xsd

它创建 Java 类,但是我发现我的根类没有正确的名称,也没有 @XmlRootElement 将其声明为根元素,这意味着当我使用这些类生成 XML 时,它没有形成正确。

XSD 架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified" targetNamespace="http://ibm.org/seleniumframework"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Test" type="sel:TestType" xmlns:sel="http://ibm.org/seleniumframework"/>

    <xs:complexType name="TestType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element type="sel:Option1" name="Option1" xmlns:sel="http://ibm.org/seleniumframework"/>
            <xs:element type="sel:Option2" name="Option2" xmlns:sel="http://ibm.org/seleniumframework"/>
            <xs:element type="sel:Option3" name="Option3" xmlns:sel="http://ibm.org/seleniumframework"/>
        </xs:choice>
    </xs:complexType>

这是我得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testType xmlns="http://ibm.org/seleniumframework"/>

【问题讨论】:

    标签: java xml class xsd jaxb


    【解决方案1】:

    生成的类对应于复杂类型。声明为全局元素一部分的匿名复杂类型将获得@XmlRootElement 注释。其他人将在ObjectFactory 类上生成@XmlElementDecl 注释。这是因为可能有多个全局元素对应同一个复杂类型。

    更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多