3

次のコマンドを実行すると:

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

@XmlRootElementJavaクラスを作成しますが、ルートクラスに正しい名前がなく、それをルート要素として宣言していないことがわかりました。つまり、クラスを使用して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"/>
4

1 に答える 1

2

生成されたクラスは複合型に対応します。グローバル要素の一部として宣言された匿名の複合型には、@XmlRootElement注釈が付けられます。その他には、クラス@XmlElementDeclで生成された注釈があります。ObjectFactoryこれは、同じ複合型に対応するグローバル要素が複数存在する可能性があるためです。

詳細については

于 2012-08-27T14:31:53.390 に答える