我正在编写 XSD 模式和 C# 代码来读取 XML 文件并根据 XSD 验证它:
XmlDocument myDocument = new XmlDocument();
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.Schemas.Add(null, "MyXsd.xsd");
using (XmlReader xmlReader = XmlReader.Create("MyXml", xmlReaderSettings))
{
myDocument.Load(xmlReader);
}
我对 XSD 不是很有经验,所以我引用了各种网站寻求帮助,但我不断遇到诸如“这将在 XSD1.0 但不是 XSD1.1 中工作”或“在 XSD2 中工作”之类的事情.0 这样做”。有人可以解释我是如何知道的或指定将使用哪个版本的 XSD。我正在使用 VS2012 - 我什至不知道这是否相关。
最佳答案
通常的答案会声明需要 XSD 1.1 才能表达需要 assertions 的约束或 conditional type assignment , 但还有很多其他 improvements from XSD 1.0 to 1.1 as well .
.NET 仅支持 XSD 1.0。在 .NET(和 Java)中使用 Saxon 支持 XSD 1.1。
关于c# - 任何人都可以解释 XSD 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50212148/