我有以下元素(借口语法): -
<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用于全市范围的商店列表,那么它的子元素&#34; city&#34;应该与列表本身的相同。如果它本身使用,那么城市可以是任何东西。 ?
如果不能用XML Schema完成,那么是否有另一种方法可以使用标准验证技术(比如使用DTD)。我只熟悉XML Schema,所以我可以通过阅读来完成另一种技术)?或者我是否需要在我的应用程序逻辑中对其进行编码?
答案 0 :(得分:0)
可以使用XML Schema完成,但只能使用XSD 1.1中的新断言工具,该工具在几周前成为推荐标准:Xerces和Saxon中提供XSD 1.1支持。