断言某些元素存在于其他元素之外,与订单无关

时间:2014-08-12 08:42:38

标签: xsd

我从这样构建的xml Feed中导入数据:

<?xml version="1.0" encoding="utf-8"?>
<channel>
  <item>
    <a>some data</a>
    <b>some data</b>
    <c>some data</c>
  </item>
  <item>
    <c>some data</c>
    <d>some data</d>
    <b>some data</b>
  </item>
</channel>

只有一些数据对我很重要 - 在上面的示例中,我们要说明元素<b><c>中的数据。

下一个项目可能包含名为<g><e>的标记,或者为什么不包含<p>。我感兴趣的其他标签名称不是我感兴趣的,可能随时出现。

有没有办法让我用xsd来验证我感兴趣的元素(<b><c>)是否存在于所有<item> s中?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您有xsd,则可以解释该元素是必需的。

<强> e.g

    <xs:complexType name="item">
        <xs:all>
            <xs:element name="a" type="xs:string" minOccurs="0"/>
            <xs:element name="b" type="xs:string" minOccurs="1"/>
            <xs:element name="c" type="xs:string" minOccurs="1"/>
            <xs:element name="d" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

这样你应该只应用xsd验证。

  • <xs:all>独立于秩序
  • minOccurs="1"必填元素

我希望我已经为您提供了有关您问题的所有答案。