谁能解释 XSD 个版本
Can anyone explain XSD versions
我正在编写一个 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 不是很有经验,所以我参考了各种网站寻求帮助,但我不断遇到诸如 "This will work in XSD1.0 but not XSD1.1" 或 "with XSD2.0 do it this way" 之类的事情。有人可以解释我是如何知道的或指定将使用 XSD 的哪个版本。我正在使用 VS2012 - 我什至不知道这是否相关。
通常的答案会声明 XSD 1.1 是必需的,以便表达需要 assertions or conditional type assignment, but there are many other improvements from XSD 1.0 to 1.1 as well.
的约束
.NET 仅支持 XSD 1.0。在 .NET(和 Java)中使用 Saxon 获得 XSD 1.1 支持。
我正在编写一个 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 不是很有经验,所以我参考了各种网站寻求帮助,但我不断遇到诸如 "This will work in XSD1.0 but not XSD1.1" 或 "with XSD2.0 do it this way" 之类的事情。有人可以解释我是如何知道的或指定将使用 XSD 的哪个版本。我正在使用 VS2012 - 我什至不知道这是否相关。
通常的答案会声明 XSD 1.1 是必需的,以便表达需要 assertions or conditional type assignment, but there are many other improvements from XSD 1.0 to 1.1 as well.
的约束.NET 仅支持 XSD 1.0。在 .NET(和 Java)中使用 Saxon 获得 XSD 1.1 支持。