验证XML文档的子集或仅某些元素?

时间:2010-12-22 00:23:48

标签: xml perl validation xsd

我有这个XML文件(其中一些是巨大的 - 数千个元素),我正在尝试使用XSD架构验证此XML文件的某些元素。例如。现在,问题是XSD不会让我验证文档的某些部分。它想要一切定义 - 这将是非常痛苦的。我想知道的是,有没有办法让XSD只使用文档的某些元素?我试过任何和任何属性无济于事。如果没有,你会怎么做?是否有一个库/脚本生成一个与XML文档相对应的模式,然后我可以根据自己的需要进行修改?

谢谢,

2 个答案:

答案 0 :(得分:1)

将您关心的部分复制到文档片段DOM并对其进行验证。当然,假设您正在使用API​​为所有这些语言编写一些语言。

答案 1 :(得分:1)

您还<xs:element name="aName"/>与ur-type匹配,因此任何类型。

典型的部分验证是:

<xs:schema>
 <xs:element name="theRootElement">
  <xs:complexType>
   <xs:sequence>
    <!- some wildcard wich match the beginning of the document until the desired element -->
    <xs:any processContent="skip" namespace="somethingOrAll"/>

    <xs:element name="theDesiredElementToMatch">
     <!-- the matching test -->
    </xs:element>

    <!-- the rest of the doc -->
    <xs:any processContent="skip" maxOccurs="unbounded"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

但它并不适用于所有模式,而且非常繁琐。