[英]Java class to XSD
有人可以告訴我 XSD 與這個 Java class 匹配嗎?
public class MyClass {
private List<String> list1;
private List<String> list2;
private XMLGregorianCalendar date;
// getters and setters
}
我已經嘗試了以下方法,但我收到了一個:attribute, :attributeGroup, :anyAttribute is expected錯誤:
<xs:element name="myClass">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="list1" type="xs:string"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="list2" type="xs:string"/>
</xs:sequence>
<xs:element name="date" nillable="true" type="xs:dateTime"/>
</xs:complexType>
</xs:element>
所以看來我沒有正確使用<xs:sequence>
標簽。 有人可以闡明一下嗎? (我遠不是 XML 相關的專家)...
我正在使用 Spring Boot 1.4.4.RELEASE 版本和 Java 7。
xs:sequence
xs:complexType
中的 xs:sequence 定義了子元素必須出現的特定順序。 要創建元素列表,您只需在要重復的xs:element
標簽上直接使用minOccurs
和maxOccurs
,如下所示:
<xs:element name="myClass">
<xs:complexType>
<xs:sequence>
<xs:element name="list1" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="list2" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="date" nillable="true" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
這應該創建您期望的 class 並需要 XML ,如下所示(標簽的順序很重要):
<myClass>
<list1>a</list1>
<list1>b</list1>
<list2>y</list2>
<list2>z</list2>
<date>2019-06-26T00:00:00.0000000Z</date>
</myClass>
將minOccurs
和maxOccurs
放在xs:sequence
標記上需要重復整個元素序列。
我已經自己解決了。 這是 XSD:
<xs:element name="myClass">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="list1" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="list2" type="xs:string"/>
<xs:element name="date" nillable="true" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.