检查xml模式中的标记是否依赖于另一个标记

时间:2013-07-10 08:33:23

标签: xml validation xsd schema xml-validation

我有以下示例xml:

<ip_addresses>
   <ip_address>
      <type>local</type>
      <ip>192.168.1.1</ip>
   </ip_address>

   <ip_address>
      <type>public</type>
      <ip>82.125.1.1</ip>
   </ip_address>
</ip_addresses>

如何在我的xml架构中使用不同的正则表达式进行ip检查,而不依赖于<type>标签中的值?

我也试过像<ip type="local">192.168.1.1</ip>这样的东西,但我无法使xml架构正常工作。

帮忙 貂

1 个答案:

答案 0 :(得分:0)

在XSD 1.0中,你不能使一个元素的类型以另一个元素的值为条件。

在XSD 1.1中,您可以使用断言来完成此操作。例如(在ip_address级别)你可以写

<xs:assert test="(@type='local' and @ip='192.168.1.1') or @type='public'"/>