我必须描述在所有包含“坐标”的多个区域类型之间的选择。不幸的是,不允许有多个同名的 xsd 元素——它们是被定义多次还是只是被多次引用都没有关系。
<xs:group name="Region">
<xs:choice>
<xs:group ref="tns:CircularRegion" />
<xs:group ref="tns:RectangularRegion" />
<xs:group ref="tns:PolygonalRegion" />
</xs:choice>
</xs:group>
与参考组:
<xs:group name="Coordinates">
<xs:sequence>
<xs:element name="Latitude" type="xs:integer" />
<xs:element name="Longitude" type="xs:integer" />
</xs:sequence>
</xs:group>
<xs:group name="CircularRegion">
<xs:sequence>
<xs:group ref="tns:Coordinates" />
<xs:element name="Radius" type="xs:integer" />
</xs:sequence>
</xs:group>
<xs:group name="RectangularRegion">
<xs:sequence>
<xs:group ref="tns:Coordinates" />
<xs:group ref="tns:Coordinates" />
</xs:sequence>
</xs:group>
<xs:group name="PolygonalRegion">
<xs:sequence>
<xs:group minOccurs="3" maxOccurs="12" ref="tns:Coordinates" />
</xs:sequence>
</xs:group>
由于多次引用“纬度”和“经度”,验证过程以错误结束(多个定义......)。
知道如何解决这个问题吗?
编辑来自“Liquid XML Studio 2012”验证器的错误消息(德语):
Error Mehrere Definitionen des Elements 'Psid' verursachen ein mehrdeutiges Inhaltsmodell。Ein Inhaltsmodel muss so gebildet werden, dass während der Validierung einer Elementinformationssequenz das darin direkt, indirekt oder implizit enthaltene Partikel, mit dem versucht wird, jedes Element in der Sequenz zu validieren, wiederum eindeutig bestimmt werden kann, ohneesden 元素zu untersuchen und ohne dass beliebige Informationen zu den Elementen im Rest der Sequenz benötigt werden。
英文(谷歌翻译)
错误 Psid 元素的多个定义导致内容模型模棱两可。必须形成一个内容模型,以便在验证直接、间接或隐含粒子的元素信息序列期间,尝试依次验证序列中的每个元素的粒子可以唯一确定,而无需该项目的内容或属性调查并且没有关于序列其余部分的项目的任何信息。