Java class 至 XSD
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: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>
在 xs:sequence
标签上放置 minOccurs
和 maxOccurs
需要重复整个元素序列。
谁能告诉我 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: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>
在 xs:sequence
标签上放置 minOccurs
和 maxOccurs
需要重复整个元素序列。