首页 > 解决方案 > XSD 要求 XML 文档中存在特定的根元素?

问题描述

我想验证一个 XML 文件并确保它有一个这样的根元素speak

<speak>
  <!--other node here...-->
</speak>

speak元素必须存在于 XML 中并且只能出现一次。我尝试在我的 XSD 文件中添加以下代码:

<xsd:element name="speak" type="speak" minOccurs="1" maxOccurs="1"/>

但它不起作用。

标签: xmlxsdxsd-validationxml-validation

解决方案


在架构本身中,您不能对根元素必须是什么施加约束。(这是设计使然,尽管不是每个人都认为这是一个好的设计。)任何全局元素声明都可以匹配根元素。

一些用于调用验证的 API 可能允许您约束根元素。例如,如果您使用 Saxon 模式验证器并从命令行运行它,您可以指定-top:speak要求顶级元素命名为speak


推荐阅读