当我运行以下命令时:
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"/>
答案 0 :(得分:2)
生成的类对应于复杂类型。声明为全局元素一部分的匿名复杂类型将获得@XmlRootElement
注释。其他人将在@XmlElementDecl
类上生成ObjectFactory
注释。这是因为可能有多个全局元素对应于相同的复杂类型。
了解更多信息