我正在编写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 - 我甚至不知道这是否相关。
答案 0 :(得分:1)
通常的答案将说明需要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。