我是.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'。
我没有得到它,因为我已经读过,在使用element作为另一个元素的子元素之间需要ComplexType。
答案 0 :(得分: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>
如果要嵌套复杂类型,则需要嵌套它。