DTD指南(3)-DTD-Elements(元素)[原创]

Elements(元素)
在一个DTD中,XML元素是通过DTD的元素声明来声明的。

1. 声明一个元素
使用以下语法来使用DTD的元素声明来声明一个XML元素:
<!ELEMENT element-name category>
或者是
<!ELEMENT element-name (element-content)>

2. 空元素
空元素是通过关键字EMPTY来声明的。
语法格式为:
<!ELEMENT element-name EMPTY>

例:
<!ELEMENT br EMPTY>
在XML文档中使用为
<br />

3. 仅有字符数据的元素
使用(#PCDATA)来声明仅有字符数据的元素
语法格式为:
<!ELEMENT element-name (#PCDATA)>
例:
<!ELEMENT from (#PCDATA)>

4. 含有任意内容的元素
含有任意内容的元素是通过关键字ANY来声明的。
所谓任意内容是指能够包含任何结合的可被解析的数据。
语法格式为:
<!ELEMENT element-name ANY>
例:
<!ELEMENT note ANY>

5. 含有子元素的元素
如果包含一个或多个子元素的元素,它将通过含有括号的子元素名称来进行定义
语法格式为:
<!ELEMENT element-name
 (child-element-name)>
或者
<!ELEMENT element-name
 (child-element-name,child-element-name,.....)>

当子元素按照一定恰当分解的顺序进行声明时,那他们在文档中也必须以相同的顺序出现
在全声明中,子元素必须被全部声明,当然他们也可以有自己的子元素。

例:
以下是含有子元素的note元素的全声明
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>

6. 相同的元素只出现一次的声明
语法格式为:
<!ELEMENT element-name (child-name)>
例:
<!ELEMENT note (message)>
上述例子是指子元素message必须出现一次,并且在被包含的note元素里只出现一次。

7. 相同的元素至少出现一次的声明
语法格式为:
<!ELEMENT element-name (child-name+)>
例:
<!ELEMENT note (message+)>
例中的+是指子元素message必须在被包含的note元素里出现一次或者多次。

8. 相同的元素不出现或者多次出现的声明
语法格式为:
<!ELEMENT element-name (child-name*)>
例:
<!ELEMENT note (message*)>
例中的*是指子元素message能够在被包含的note元素里不出现或者出现多次。

9. 相同的元素不出现或者出现一次的声明
语法格式为:
<!ELEMENT element-name (child-name?)>
例:
<!ELEMENT note (message?)>
例中的?是指子元素message能够在被包含的note元素里不出现或者出现一次。

10. "或"的声明
例:
<!ELEMENT note (to,from,header,(message|body))>
上例是指note元素必须包含一个to元素,一个from元素,一个header元素,
以及一个message元素或body元素

11. 混合内容的声明
例:
<!ELEMENT note (#PCDATA|to|from|header|message)*>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题可能是由于使用了过时的DTD(Document Type Definition)文件导致的。DTD文件是用于定义XML文档结构的文件,而mybatis.org网站上的mybatis-3-mapper.dtd文件已经过时了。 如果在使用MyBatis时出现了这个问题,建议使用最新版本的MyBatis,并更新DTD文件。可以从MyBatis官方网站上下载最新版本的DTD文件,或者在MyBatis配置文件中使用以下URL来引用最新的DTD文件: http://mybatis.org/dtd/mybatis-3-mapper.dtd 这样可以避免DTD文件过时导致的问题。 ### 回答2: http://mybatis.org/dtd/mybatis-3-mapper.dtd爆红,是因为这个链接是一个 DTD(Document Type Definition)文件的链接。DTD 文件是一种用来定义 XML 文档结构的文件,它定义了元素和属性的规则,以及规定了它们之间的关系和约束。 然而,DTD 在现代的 XML 开发中已经被多数人弃用,因为它具有一些局限性。首先,DTD 不支持命名空间,这意味着在一个文件中定义的元素和属性可能会与其他文件中定义的相冲突。其次,DTD 不支持数据类型的定义,因此无法对数据进行更加精确的限制。最后,DTD 的语法相对较为复杂,不够直观和易读。这些因素导致了 DTD 在实际开发中的使用减少。 因此,建议在开发过程中不要使用 DTD 来定义 XML 文档结构,而是选择使用其他更为先进的替代方案,比如 XML Schema 或 Relax NG。这些替代方案具有更强大和灵活的功能,可以满足各种不同的需求。此外,对于 MyBatis 框架来说,它已经提供了更现代化的配置方式,可以直接使用 XML 或注解的方式来配置 SQL 映射,而无需依赖于 DTD 文件。 总之,http://mybatis.org/dtd/mybatis-3-mapper.dtd爆红主要是因为 DTD 过时且不推荐使用,开发者应该转向更加先进和强大的替代方案,以提高开发效率和代码质量。 ### 回答3: http://mybatis.org/dtd/mybatis-3-mapper.dtd 爆红的原因可能有以下几点: 1. 链接失效:链接地址所对应的DTD文件可能已经从服务器中移除或修改,导致无法访问。这可能是因为文件被移动到了新的位置,或者服务器不再提供该DTD文件的访问。 2. 版本不匹配:如果使用的是不兼容的MyBatis版本,可能会导致无法正确解析DTD文件。检查使用的MyBatis版本与DTD文件的兼容性,确保版本匹配。 3. 网络问题:可能是由于网络连接问题,无法正常下载DTD文件。可以尝试使用其他网络环境或者代理服务器重新访问链接,确认是否可以正常下载。 解决这个问题的方法可以是: 1. 更新链接地址:尝试在官方网站或其他可信来源中查找最新的DTD文件链接,并将链接地址替换为最新版本的DTD文件地址。 2. 修改MyBatis配置:在MyBatis的配置文件中,可以指定一个本地的DTD文件地址,而不是直接调用网络上的DTD文件。将DTD文件下载到本地,指定本地DTD文件地址可以规避因网络问题导致的无法访问的情况。 3. 切换版本:如果无法解决版本不匹配的问题,可以尝试切换到与DTD文件兼容的MyBatis版本,确保能够正确解析DTD文件。 总之,爆红的原因可能是由于链接失效、版本不匹配或网络问题等,可以根据具体情况逐一排查并采取相应的解决方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值