0
我已经从http://www.w3.org/2001/XMLSchema.xsd下载了官方的“xsd模式”。xsd模式无效?
我在本地保存它,并试图与该代码来验证:
var sc = XmlSchema.Read(new FileStream(@"c:\temp\xsd.xsd", FileMode.Open), validate);
sc.Compile(validate);
它失败,一个例外,它不能找到一些DTD。
问题编号1:为什么xsd的模式包含xml验证器无法处理的定义?
我删除从文件的顶部的DTD定义,我得到这个(以及更多)验证错误:
"Restriction of 'anySimpleType' is not allowed."
题号2:为什么编译XSD的模式失败?
我已经尝试了使用set.Add(...)和XmlSchemaSet相同,它的工作。
问题编号3:验证XmlSchema和XmlSchemaSet有什么区别?
我然后创建一个从磁盘导入XSD模式的伪架构:
<s:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="c:\temp\xsd.xsd" />
当我这个架构添加到其设置与上面同样的错误再次失败的模式。
问题编号4:为什么不同,然后直接添加xsd模式(工作)?
当我手动删除DTD声明时,它工作时,我明确地添加它(和你一样)。但是当我读取另一个引用它的文档时,我仍然在架构模式本身上得到这些验证错误 – 2010-01-23 18:39:43