使用xsd=>;验证XML;删除xml文件中的行时没有错误
本文关键字:文件 有错误 xml 删除 xsd gt XML 验证 使用 | 更新日期: 2023-09-27 18:21:00
我想用xsd验证xml文件。当我放入一个不正确的类型时,它已经起作用了,但当我删除xml文档中的行时,它就不起作用了。这是怎么做到的?
<Test>
<TestNode1>1</TestNode1>
<TestNode2>true</TestNode2>
<TestNode3>true</TestNode3>
<TestNode4>true</TestNode4>
<TestNode5>true</TestNode5>
</Test>
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="TestNode1" type="xs:boolean"/>
<xs:element name="TestNode2" type="xs:boolean"/>
<xs:element name="TestNode3" type="xs:boolean"/>
<xs:element name="TestNode4" type="xs:boolean"/>
<xs:element name="TestNode5" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
例如,当我删除包含testnode4的行时。。。当我使用这个=>时
XmlReaderSettings xmlSettings = new XmlReaderSettings();
xmlSettings.IgnoreWhitespace = true;
xmlSettings.Schemas = new System.Xml.Schema.XmlSchemaSet();
xmlSettings.Schemas.Add(null, xsdUri);
xmlSettings.ValidationType = ValidationType.Schema;
using (var xmlStream = File.OpenRead(xmlUri))
{
var xmlFile = XmlReader.Create(xmlStream, xmlSettings);
while (xmlFile.Read()) { }
}
这是工作,但我不想这样。我想在漏行时出错。
谢谢。
如您所见http://www.w3schools.com/schema/el_sequence.asp.
sequence元素指定子元素必须出现在一个序列。每个子元素可以出现在0到任意数量的时间。
如果希望元素每次都出现,则必须指定minOccurs属性。