如何检查XSD架构是否格式正确?

时间:2017-08-09 15:53:51

标签: c# xml xsd

是否有类或常用方法以编程方式检查XSD架构是否格式正确(在用户选择了XSD文件的情况下)?

或者我应该像其他任何XML一样对待它并以某种方式针对W3 2001架构进行验证吗?

我要检查的XSD架构如下所示:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Configuration" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

如果在验证XML时,如果它在无效的XSD上窒息,那么XmlReader可能基本上会这样做吗? 更新:不,它没有。它只是随便携带。

注意:这个问题与检查架构格式正确有关,而不是根据架构检查某些XML是否有效。

1 个答案:

答案 0 :(得分:2)

关于模式文档,可以提出三个有趣的问题:

1它是格式良好的XML吗?

2它是否符合架构文档架构的意义上的XML有效吗?

3它是否描述了一个有效的模式,考虑了XSD规范中的散文规则以及模式文档模式中包含的规则?

对于可用的模式文档,它必须满足(3),因此我在分别检查(1)和(2)时看不到什么意义。但是,您当然可以像检查任何其他XML文档一样检查格式良好和有效性。

要检查(3),您只需将架构提交给架构处理器,例如.NET附带的本机XSD 1.0处理器(使用XmlSchemaSet.Compile())或Saxon中可用的XSD 1.1处理器(使用SchemaManager.Compile())。