c# - 任何人都可以解释 XSD 版本

标签 c# xml visual-studio-2012 xsd

我正在编写 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/

相关文章:

c++ - 在 Visual Studio 2012 中使用 DirectX 11

xaml - MergedDictionaries Source 中的 ResourceDictionary 导致 VS 2012 Designer 无法加载

c# - 为什么 foreach 在与 itextsharp 一起使用时会导致错误

c# - 使用 C# 检查快照是否已存在于 SQL Server 中

c# - 具有空值的 LINQ to SQL

c# - 将字符串格式化为 10 个字符

java - 我可以将单个 xml 属性解码为多元素数组吗?

php - 如何在 PHP 中读取 iTunes XML 文件

c# - 如何在 C# 中用斜杠格式化日期

c# - 如何将属性隐藏到用于 XML 序列化的基类中