2012-03-07 49 views
0

我是新來的XML。我有一個文件,其中有多個XML記錄,如下所示:如何在C#中使用XSD架構在單個文件中驗證多個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>   

這工作,如果我在文件中只有一個記錄,並拋出異常,說:「有多個根元素」。

回答

0

這就像所說的異常:一個XML文檔只能有一個根元素。你需要這樣的東西:

<root> 
    <event></event> 
    <event></event> 
</root> 
+0

嗨約翰..感謝您的答覆。無論如何無需修改文件即可解決問題嗎? – user1254073 2012-03-07 08:43:33

+0

我從來沒有嘗試過,但你可以嘗試通過使用XmlReader.Create(源,新的XmlReaderSettings {ConformanceLevel = ConformanceLevel.Fragment})創建一個'XmlReader';'這應該讀取一個片段,但我不知道它是否會閱讀多個。 – 2012-03-07 13:55:27