0

私はこの動作をしたいと思います: 複雑な要素にはいくつかの要素があります (したがって、シーケンスは含まれません) が、これらの要素の一部には "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>

しかし、日食はエラーを発生させます:「すべて」の項目の下では、カーディナリティは「0」または「1」のみです...

私の要素に「シーケンス」または「すべて」が含まれていない場合、他に可能なことはありますか?

ありがとう、

オリビエ

4

2 に答える 2

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 の使用方法に問題があるのでしょうか。

于 2014-01-28T11:30:38.660 に答える