如何使用C中的XSD模式验证单个文件中的多个XML记录?

如何使用C中的XSD模式验证单个文件中的多个XML记录?,xsd,Xsd,我是XML新手。我有一个包含多个XML记录的文件,如下所示: <event> //Record 1 <sequence>1</sequence> <date>5-Feb-2012</date> <time>00:00:42</time> <severity>0</severity> <errorcode>0</errorcode> </event&g

我是XML新手。我有一个包含多个XML记录的文件,如下所示:

<event> //Record 1
 <sequence>1</sequence>
 <date>5-Feb-2012</date>
 <time>00:00:42</time>
 <severity>0</severity>
 <errorcode>0</errorcode>
</event>
<event> //Record 2
 <sequence>2</sequence>
 <date>5-Feb-2012</date>
 <time>00:00:51</time>
 <severity>0</severity>
 <errorcode>0</errorcode>
</event>
我需要验证这个输入文件。我已经编写了一个模式,如下所示:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="event">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="sequence" type="xs:integer"/>
            <xs:element name="date" type="xs:date"/>
            <xs:element name="time" type="xs:time"/>
            <xs:element name="severity" type="xs:integer"/>
            <xs:element name="errorcode" type="xs:integer"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>        

如果我在文件中只有一条记录,并且抛出异常,表示有多个根元素,那么这种方法就有效了

就像例外情况所说的:XML文档只能有一个根元素。你需要这样的东西:

<root>
    <event></event>
    <event></event>
</root>

嗨,约翰。。谢谢你的回复。在不修改文件的情况下,还有其他方法可以解决吗?我以前从未尝试过,但您可以尝试使用XmlReader.Createsource、new XmlReaderSettings{ConformanceLevel=ConformanceLevel.Fragment}创建一个XmlReader;这应该读一个片段,但我不知道它是否会读多个。