验证 XSD 文件的格式和内容



我在下面搜索了一遍又一遍,但我认为我没有使用正确的词进行查询。

我需要验证 XML 架构 (xsd( 文件的格式和内容。我还需要通过命令行执行此操作。为了提供更多指导,我想以 Eclipse 模式编辑器为例(但通过命令行(。

假设我有这个架构:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
  targetNamespace="http://www.example.org/ExampleXMLSchema" 
  xmlns:tns="http://www.example.org/ExampleXMLSchema" 
  xmlns:external="http://www.example.org/ExternalXMLSchema" 
  elementFormDefault="unqualified">
    <import schemaLocation="ExternalXMLSchema.xsd" 
      namespace="http://www.example.org/ExternalXMLSchema">
    </import>
    <complexType name="ExampleComplexType">
      <sequence>
        <element name="ExternalElement" 
          type="external:ExternalComplexType"></element>
      </sequence>
    </complexType>
</schema>

我想要一个工具来验证格式(没有缺少括号,没有缺少结束标签等(,但也要确保外部引用是正确的。在此示例中,如果验证程序找不到 ExternalXMLSchema.xsd 文件及其类型,则会失败。

对于这种情况,日食编辑器会给出此错误:

src-resolve:无法将名称"external:ExternalComplexType"解析为(n("类型定义"组件。

感谢您查看此内容!对不起,如果有什么不清楚的地方,请在这里发布第一个帖子,尽力而为。

任何架构验证程序都将内置架构文档的架构,因此任何架构验证程序都应该能够验证架构文档。

检查错误的外部引用不仅仅是检查模式文档

的模式有效性;对于我使用过的一些验证器,如果你要求验证架构文档,验证器会检查外部引用;对于其他验证器,它不会。

因此,一般来说,让验证程序检查架构文档的最可靠方法是尝试使用它来验证 XML 实例。我发现拥有一个具有很好理解的有效性错误的实例很方便。 如果验证程序在 XML 实例中发出有关该问题的错误消息,则架构正常;如果验证器根本没有发出任何错误消息,则它没有构建架构或其他错误。 如果它发出有关架构中问题的投诉列表,那么,这就是您要找的,不是吗?

可以从命令行调用的模式验证器包括Xerces-J,Xerces-C,Saxon,msv和libxml(但注意libxml对XSD的支持不完整(。

最新更新