我正在使用XSD文件来验证一些XML文件。一个规则是xml或在本例中的xhtml文档中不允许脚本。 我认为我们需要在XSD文件中指定整个文档中不允许使用标签名=“ script”。如何实现这种控制?
作为初学者,我尝试过XSD世界
<xs:element name="script" maxOccurs="0"/>
但显然不起作用。
答案 0 :(得分:0)
您不能直接表达文档中可能没有script
元素的约束,但是您可以省略script
并不允许它进入其中:请勿在任何内容模型中使用它任何元素,请勿将xsd:any
与lax
或skip
一起使用@processContents
。
在XSD 1.1中,您可以使用xsd:assert
来进一步限制xsd:any[@processContents='strict']
(在任何需要xsd:any
的地方,甚至对于根元素的整个内容):
<xs:assert test="every $e in .//* satisfies $e[not(self::script)]"/>