验证XML中是否存在所有属性类型xs:ID

时间:2009-11-08 22:06:11

标签: c# xml xsd

我制作了一个包含这个复杂类型“Text”的XSD:

<xs:complexType name="Text">
  <xs:complexContent mixed="false">
    <xs:attribute name="Id" type="xs:ID" use="required">
    </xs:attribute>
  </xs:complexContent>
</xs:complexType>

在字符串中,我想找到缺少ID的所​​有Text节点。有没有办法验证XML?

我不能使用XPath,因为我有其他名为Text的节点,不需要Id。我真的需要查看XSD。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以通过在XmlReaderSettings上指定xs来验证xml,并简单地使用XmlReader遍历while(reader.Read()) {},处理验证事件(在ValidationEventHandler上) )。例如,see MSDN

请注意,这会报告所有架构错误,因此如果您遇到其他问题,则需要将其过滤掉。