XSD FOR XML元素多次出现

时间:2015-07-02 06:22:06

标签: java xml xsd jaxb

我是xsd的新手,我希望生成xml,如下所示STUDENTRECORD多次出现。我正在使用jaxb在xsd上生成类

<STUDENTDETAIL>
  <STUDENTINFORMATION>
    <STUDENTRECORD>
        <NAME>ABC</NAME>
        <CLASS>4</CLASS>
        <MAJOR>SCIENCE</MAJOR>
        <GRADE>A</GRADE>
    </STUDENTRECORD>
    <STUDENTRECORD>
        <NAME>DEF</NAME>
        <CLASS>4</CLASS>
        <MAJOR>SCIENCE</MAJOR>
        <GRADE>B</GRADE>
    </STUDENTRECORD>
</STUDENTINFORMATION>

我当前的xsd仅生成一次STUDENTRECORD。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://webservice.com/WS" targetNamespace="http://webservice.com/WS" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Student" type="Student"/>
<xs:complexType name="Student">
    <xs:sequence>
        <xs:element name="STUDENTDETAIL">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="STUDENTINFORMATION">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="STUDENTRECORD">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element type="xs:string" name="NAME"/>
                                            <xs:element type="xs:string" name="CLASS"/>
                                            <xs:element type="xs:string" name="MAJOR"/>
                                            <xs:element type="xs:string" name="GRADE"/>
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

请帮忙解决。

由于

1 个答案:

答案 0 :(得分:1)

您只需在 STUDENTRECORD 元素声明中设置maxOccurs属性,如下所示:

<xs:element name="STUDENTRECORD" maxOccurs="unbounded">

这将允许<STUDENTRECORD>出现您想要的次数。默认情况下,给定元素需要出现一次。

同样,您可以设置minOccurs属性以指定元素的最小出现次数。