0

私は.xml/.xsdの世界に慣れていないので、やりたいタスクは非常に単純に聞こえますが、ここで苦労していると言わなければなりません。

現在、APIからExcelにデータを取得していますが、最初の行にヘッダー->要素の名前とデータ自体の次の行を使用してxmlファイルを作成したいと思います。

Excelが提供するツールを使用して.xsdスキーマをインポートし、データを.xmlファイルにエクスポートできると、.xsdファイルを正しく準備できなくなります。

問題:.xmlファイルに複数のレイヤーを作成したいのですが、実行が難しいようです(理由がわかりません)。何かのようなもの :

<element1>
      <subelement1>
      <subelement2>
      <subelement3>
<element2>
<element3>

そして、これが私の現在の.xsdファイルです:

    <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Offers">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="offer" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="offer">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="code" type="xs:string"/>
                    <xs:element name="bathroom_count" type="xs:string"/>
                    <xs:element name="bedroom_count" type="xs:string"/>
                    <xs:element name="average_rating" type="xs:string"/>
                    <xs:element name="title" type="xs:string"/>
                    <xs:element name="description" type="xs:string"/>
                    <xs:element name="content_language" type="xs:string"/>
                    <xs:element name="main_photo" maxOccurs="unbounded"/>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="lalala" type="xs:string"/>
                                <xs:element name="slip" type="xs:string"/>
                            </xs:sequence>
                        </xs:complexType>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:element>
</xs:schema>

私はそれについてたくさんの助けを読みました、そして私は一般的にフォーラムで尋ねる前に解決策を見つけます、しかし私はここでかなり立ち往生しています。この構造は完璧に見えますが、それでも機能しません。:( Excelにインポートしようとするたびにエラーが発生し、このレイアウトのエラーは次のようになります。

説明/schema/ element [1] [@ name ='Offers'] / element [1] [@ name ='offer']要素'xs:element'はこのコンテキストでは許可されていません。

要素を別の要素の子として使用するには、間にComplexTypeが必要であることを読んだので、わかりません。

4

1 に答える 1

0

要素を参照する場合は、次のようにxs:schemaの下に配置する必要があります。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Offers">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="offer" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

</xs:element>

<xs:element name="offer">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="code" type="xs:string"/>
            <xs:element name="bathroom_count" type="xs:string"/>
            <xs:element name="bedroom_count" type="xs:string"/>
            <xs:element name="average_rating" type="xs:string"/>
            <xs:element name="title" type="xs:string"/>
            <xs:element name="description" type="xs:string"/>
            <xs:element name="content_language" type="xs:string"/>
            <xs:element name="main_photo" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="lalala" type="xs:string"/>
                        <xs:element name="slip" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>

複雑なタイプをネストする場合は、ネストする必要があります。

于 2013-03-25T14:59:43.880 に答える