如何仅验证XML中的特定/特定标记?

时间:2010-01-07 23:02:27

标签: xml xsd

我有一些代码生成的XML。我编写了一个XSD来验证XML。 我有XML标签,不需要验证。有没有办法验证特定标签并跳过其他标签?

示例XML是:

<person>
<firstname>Name</firstname>
<lastname>Name</lastname>
<tag1>data</tag1>
<tag2>data</tag2>
<tag3>data</tag3>
</person>

我只需要验证<firstname><lastname>,并跳过所有其他元素的验证。

1 个答案:

答案 0 :(得分:3)

在解析器只是跳过某些XML时,你不能“忽略”元素,但是你可以通过允许任何类型的元素作为子元素来使你的模式不那么严格。

XSD允许use of the "any" element。例如:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
      <xs:any minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

现在,您可以将任何未知但有效的xml元素显示为“person”元素的子元素。