0
我有以下代碼成功驗證XML文件對XSD架構:如何獲取XML文件中XSD錯誤的文件位置?
Try
Dim val As New Xml.XmlReaderSettings With {.ValidationType = ValidationType.Schema}
val.Schemas.Add(Nothing, "myvalidator.xsd")
Using reader = XmlReader.Create("myfile.xml", val)
While reader.Read
End While
End Using
Console.WriteLine("XML validation succeeded.")
Catch ex As Exception
Console.WriteLine("XML validation failed." & vbCr & vbLf & "Error Message: " & ex.Message)
End Try
我得到的樣本誤差爲
The element 'address' has invalid child element 'zip_code'. List of possible elements expected: 'address_line_2, address_line_3, city'.
當我確認與大型XML文件數百名成員每個人都有幾個地址,但這些信息不足以查明問題所在。有沒有辦法獲得行號或文件位置或其他有用的數據片段,以便知道原始XML文件中究竟發生了什麼問題?我意識到XmlReader並沒有像文本閱讀器那樣讀取文件,而且XML可能格式良好或在一條巨大的線上,所以行號不一定是要走的路。看起來我應該可以在While
循環內做些事情來了解問題所在,但我還沒有發現它。
完美。我忘記了捕獲特定的錯誤類型,所以我只查看泛型異常處理程序的屬性,而不是特定的XmlSchemaValidationException處理程序,所以我沒有看到像LineNumber和LinePosition這樣的額外屬性,這正是我需要。謝謝! – gfrizzle 2010-11-29 14:15:05