0

我有以下元素(请原谅语法):-

<xs:complexType name="shop_T">
  <xs:element name="city" type="xs:string" />
  <xs:element name="other_info" type="other_info_T" />
</xs:complexType>

现在我希望以两种方式引用这个 complexType

<xs:element name="list_shops_in_city">
  <xs:element name="city" type="xs:string" />
  <xs:element name="shop" type="shop_T" maxOccurs="unbounded"/>
</xs:element>

<xs:element name="order">
  <xs:element name="shop" type="shop_T" />
</xs:element>

如果 shop_T 用于城市范围的商店列表,我是否可以强制执行它的子元素“city”的值应该与列表本身的值相同的约束。如果它是单独使用的,那么城市可以是任何东西。?

如果这不能用 XML Schema 完成,那么是否有另一种方法可以使用标准验证技术(比如使用 DTD。我只熟悉 XML Schema,所以我可以通过阅读另一种技术来完成)?还是我需要在我的应用程序逻辑中对此进行编码?

4

1 回答 1

0

它可以使用 XML Schema 完成,但只能使用 XSD 1.1 中的新断言工具,该工具在几周前成为推荐:Xerces 和 Saxon 支持 XSD 1.1。

于 2012-04-12T08:25:59.223 回答