使用XSD在整个XML文档中禁止元素名称

时间:2018-12-05 12:14:13

标签: xml xsd xsd-validation xml-validation

我正在使用XSD文件来验证一些XML文件。一个规则是xml或在本例中的xhtml文档中不允许脚本。 我认为我们需要在XSD文件中指定整个文档中不允许使用标签名=“ script”。如何实现这种控制?

作为初学者,我尝试过XSD世界

      <xs:element name="script" maxOccurs="0"/>

但显然不起作用。

1 个答案:

答案 0 :(得分:0)

XSD 1.0

您不能直接表达文档中可能没有script元素的约束,但是您可以省略script并不允许它进入其中:请勿在任何内容模型中使用它任何元素,请勿将xsd:anylaxskip一起使用@processContents

XSD 1.1

在XSD 1.1中,您可以使用xsd:assert来进一步限制xsd:any[@processContents='strict'](在任何需要xsd:any的地方,甚至对于根元素的整个内容):

<xs:assert test="every $e in .//* satisfies $e[not(self::script)]"/>