我想有这样的行为:一个复杂的元素有一些元素(所以它不包含一个序列)但是这些元素中的一些已经定义了“minoccurs”和/或“maxoccurs”。 我试图建立这样一个文件,它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="nom_site">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nom_type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="2" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sites">
<xs:complexType>
<xs:all>
<xs:element name="site">
<xs:complexType>
<xs:all>
<xs:element ref="nom_site"></xs:element>
<xs:element name="délai" type="xs:int"></xs:element>
<xs:element name="expéditeur" type="xs:string"></xs:element>
<xs:element name="message" type="xs:string"></xs:element>
<xs:element name="types" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="type">
<xs:complexType>
<xs:all>
<xs:element ref="nom_type"></xs:element>
<xs:element name="message" type="xs:string"></xs:element>
<xs:element name="libellés" minOccurs="0"
maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="libellé">
<xs:complexType>
<xs:all>
<xs:element name="nom_lib" type="xs:string"></xs:element>
<xs:element name="message" type="xs:string"></xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
但是eclipse引发了一个错误:在“all”项下,基数只能是“0”或“1”...
如果我的元素不包含“序列”或“全部”,还有其他可能吗?
感谢,
奥利弗
答案 0 :(得分:0)
我已经将它加载到xml间谍中,并且它是有效的并且根据它形成良好。看不到任何特殊问题。
生成以下样本:
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2013 rel. 2 sp2 (http://www.altova.com)-->
<sites xsi:noNamespaceSchemaLocation="test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<site>
<nom_site>aaa</nom_site>
<délai>0</délai>
<expéditeur>String</expéditeur>
<message>String</message>
<types>
<type>
<nom_type>aa</nom_type>
<message>String</message>
<libellés>
<libellé>
<nom_lib>String</nom_lib>
<message>String</message>
</libellé>
</libellés>
</type>
</types>
</site>
</sites>
因此,eclipse的一些问题或者你使用xsd的方式可能是什么?
答案 1 :(得分:0)
好的,解决了:
<xs:element name="sites">
<xs:complexType>
<xs:sequence>
<xs:element name="site" minOccurs="0" maxOccurs="unbounded">
我不明白我的XSD文件通过你的应用程序。