如何创建xml模式以接受同一元素的多个实例?

如何创建xml模式以接受同一元素的多个实例?,xml,xsd,Xml,Xsd,我已经看到了几个与此相关的问题,但是他们的场景几乎总是提前知道元素的名称。例如,编码员知道这个或那个。我的问题是,我事先不知道重复元素的子元素是什么,或者有多少子元素 我的最终目标是使用模式将天气报告转换成Excel,我在这方面取得了部分成功 我正在尝试为以下xml片段(来自天气报告)编写模式: 区域名称 有序对 第二区域名称 有序对 (多边形元素是一组lat-long坐标,用于创建受报告天气影响的多边形区域。) 报告中至少会有一个方面,但据我所知没有上限。由于不可能知道所有可能的区域名称,

我已经看到了几个与此相关的问题,但是他们的场景几乎总是提前知道元素的名称。例如,编码员知道这个或那个。我的问题是,我事先不知道重复元素的子元素是什么,或者有多少子元素

我的最终目标是使用模式将天气报告转换成Excel,我在这方面取得了部分成功

我正在尝试为以下xml片段(来自天气报告)编写模式:


区域名称
有序对
第二区域名称
有序对
(多边形元素是一组lat-long坐标,用于创建受报告天气影响的多边形区域。)

报告中至少会有一个方面,但据我所知没有上限。由于不可能知道所有可能的区域名称,也不可能知道报告中将包含多少区域,因此我之前链接到的问题与我的场景并不匹配

到目前为止,我的模式只使用了第一个区域:

<xs:element name="area">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="areaDesc" type="xs:string" />
            <xs:element name="polygon" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:element>


我三天前才开始使用XML,所以答案对任何有一周以上经验的人来说都是显而易见的,或者甚至不可能。但是,嘿,至少我知道到目前为止我还不知道的事情。

你已经走上正轨了。不要担心,除了作为一个无约束的
xs:string
之外,您无法进一步限制
areaDesc
。这对于诸如名称或描述之类的数据来说是常见的,并且完全可以接受,因为在这些数据中,不可能存在先验已知的可枚举值集


请注意,
区域
元素需要一个container元素,因为XML文档必须有一个根元素。

请显示完整、格式良好的XML实例文档和完整的XSD文档。帮助:。为
区域
元素定义一个容器元素并将其定义为包含一系列
区域
元素是很简单的。您可能希望从模式入门开始,了解一些想法和示例。
<xs:element name="area">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="areaDesc" type="xs:string" />
            <xs:element name="polygon" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:element>