【发布时间】:2010-11-24 21:08:20
【问题描述】:
我有以下代码可以成功地根据 XSD 架构验证 XML 文件:
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 循环中做一些事情来知道问题出在哪里,但我还没有找到它。
【问题讨论】: