关于minOccurs&;最大值出现在XML文件中

关于minOccurs&;最大值出现在XML文件中,xml,minoccurs,Xml,Minoccurs,我希望有这样的行为:复杂元素有一些元素(因此它不包含序列),但其中一些元素定义了“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

我希望有这样的行为:复杂元素有一些元素(因此它不包含序列),但其中一些元素定义了“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”

如果我的元素connt包含“sequence”或“all”,那么还有其他可能吗

谢谢


olivier

我已将其加载到XMLSpy中,根据这一点,它是有效的且格式良好。看不到任何微粒问题

生成以下内容的示例:

<?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>

aaa
0
一串
一串
aa
一串
一串
一串
因此,eclipse或您使用xsd的方式可能存在一些问题?

好的,解决了:

<xs:element name="sites">
<xs:complexType>
    <xs:sequence>
        <xs:element name="site" minOccurs="0" maxOccurs="unbounded">


我不明白我的XSD文件传递给你的应用程序的是什么。

我看不出这个模式有什么问题。您是否正在对照一个具体的XML文件进行验证,并得到验证错误?Saxon接受该模式为有效模式。除了0和1之外,我看不到任何基数。您确定正在处理您认为是的架构吗?是否有错误的行号?