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 回答