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