【发布时间】:2017-11-03 18:10:32
【问题描述】:
我正在使用 c# 并尝试复制我之前在 VB6 中编写的一些功能。
应该很简单:我有包含以下语句的 XML 文件: xsi:noNamespaceSchemaLocation="Schemas\mySchema.xsd"
我希望能够使用 XMLDocument 来解析和验证 XML 文件针对上面引用的架构文件。
我不应该单独提供路径和文件名,因为它们是 已包含在 XML 文件中。
如果可能,我不想使用 XMLReader。
我以前的 VB6 代码可以做到这一点,并会产生适当的错误 如果架构文件不存在/找不到,或者 XML 文件的内容验证失败。
如何在 C# 中完成此操作?
【问题讨论】:
-
为什么不想使用 XMLReader?
-
@Progman - 我在访问 XML 时需要使用 XMLDocument,所以我希望避免使用另一个 xml 对象。 XMLDocument 不能做我想做的事吗?
-
使用 XmlReaderSettings
-
@wayneh - 我想避免使用 XMLReader -- 在内部加载
XmlDocument时,无论如何都会使用XmlReader。见msdn.microsoft.com/en-us/library/a8ta6tz4(v=vs.110).aspx。因此,如果您创建一个验证XmlReader,您可以同时加载和验证。那是你要的吗?还是要在加载后进行验证? -
您可以创建一个
XmlReader,如this answer 所示,然后将其传递给XmlDocument.Load(XmlReader) 或XDocument.Load(XmlReader)。
标签: c# xml xmldocument