XSD中的空元素是否有效?

时间:2014-11-10 12:43:46

标签: xml xsd

今天继续我的XSD questions

在XSD文档中,有以下内容:

<element />

有效的构造?也就是说,它是一个没有名称,类型,任何东西的元素。完全是匿名的。

如果这是一个有效的XSD,那是什么意思?这样的元素将如何出现在XML中?

2 个答案:

答案 0 :(得分:1)

不,@name属性必须出现在全局XSD元素声明中。

请参阅3.3.2 XML Representation of Element Declaration Schema Components,包括它所声明的位置(强调添加):

  

请注意,上面允许两个级别的默认值   未指定的类型定义。没有引用的<element>或   包含的类型定义将对应于元素声明   它的类型定义与其替换的头部相同   如果它识别一个组,否则为·ur-类型定义·。的 此   具有最小有效元素的重要结果   声明,即只有name属性而没有内容的声明,   也是(几乎)最通用的 ,验证任何文本组合   和元素内容,允许任何属性,并提供   在可能的情况下进行递归验证。

如果您希望允许任何元素,请考虑使用wildcards,例如xs:any。但请注意,您至少需要命名根元素。

答案 1 :(得分:1)

取决于它的放置位置。

xs:appInfoxs:documentation(以及其他一些结构)中,任何内容都可能有效。

接下来这个元素:

<element />

不指定命名空间。所以它要么在错误的命名空间中,要么在上下文中的某个地方有xmlns="http://www.w3.org/2001/XMLSchema"

假设后者可能是全局(topLevelElement)或本地(localElement)元素定义。

在这两种情况下均无效:

  

2如果项目的父项不是,则必须满足以下所有条件:

     

2.1必须存在引用或名称之一,但不能同时存在。

相关问题