加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 什么是空元素?

发布时间:2020-12-16 08:02:03 所属栏目:百科 来源:网络整理
导读:根据XML规范,这是一个空的元素的定义: An element with no content is said to be empty.] The representation of an empty element is either a start-tag immediately followed by an end-tag,or an empty-element tag. (见:http://www.w3.org/TR/REC-x
根据XML规范,这是一个空的元素的定义:

An element with no content is said to be empty.] The representation of an empty element is either a start-tag immediately followed by an end-tag,or an empty-element tag.

(见:http://www.w3.org/TR/REC-xml/#NT-content)

现在,我了解空元素标签没有任何问题:< i-am-empty />没有误会是可能的。但是在我看来,这个标准在另一种情况下与这个标准相矛盾:一方面说,没有任何内容的任何标签是空的,另一方面它表示这可以由开始标签表示,紧接着是一个结尾-标签。但是如果我们来看内容的定义:

[43] content ::= CharData? ((element | Reference | CDSect | PI | Comment) CharData?)*

在我看来,内容由两个可选部分组成,CharData?和一个组()*。但是由于这两个部分都是可选的,所以这意味着没有任何东西(如没有字符)匹配这个生产。如果我尝试将这个内容定义与< am-i-empty-or-not>< / am-i-empty-or-not&gt我会得到一个积极的比赛。所以,一方面这是一个空标签,因为它是一个紧跟着终结标签的起始标签,另一方面它不是空的,因为标签之间可以肯定地匹配生产规则的定义[ 43]内容,在这种情况下它包含内容,这意味着它不能为空。 任何人都可以解释什么规则优先?有没有人知道对此有不同意见的任何DOM或解析器实现?

But since both these parts are optional,it would mean that nothing (as in,absence of characters) matches this production.

这可能是正确的,但在这个问题上的规范中的措辞是很清楚的。在下一段中甚至有空元素的例子。

<IMG align="left"
 src="http://www.w3.org/Icons/WWW/w3c_home" />
<br></br>
<br/>

所以唯一的方法(在这个上下文中,用周围的措词和例子)来阅读

An element with no content

将包括“(匹配生产)的内容完全为空”(即零长度,甚至不是空格)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读