XSD 断言空值测试

XSD assert test for null values

我正在使用 XSD 1.1 来验证传入的 XML。我有一个断言可以正常工作,除非值为空。

这是测试:

<xs:assert test="ELEM1 = ' ' and ELEM2 = ' '
    or ELEM1 != ' ' and matches(ELEM2, '.*')"/>

这里是有问题的 XML 显示的内容:

<ELEM1 />
<ELEM2 />

我已经尝试了 "is null""is nil""= null""= nil",但似乎没有任何效果。

如何测试空元素?

术语说明:元素ELEM1ELEM2通常被称为而不是 null 值。

这个xs:assert,

<xs:assert test="ELEM1[not(node())] and ELEM2[not(node())] "/>

表示必须有两个空的子元素,ELEM1ELEM2