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

[XML学习笔记]004DTD的使用

发布时间:2020-12-15 23:23:19 所属栏目:百科 来源:网络整理
导读:DTD有三种内置、外置和内外结合 第一种内置 ?xml version="1.0" encoding="UTF-8"?!DOCTYPE poem[!ELEMENT poem (author,title,content)!ELEMENT author (#PCDATA)!ELEMENT title (#PCDATA)!ELEMENT content (#PCDATA)]poemauthor王维/authortitle鹿柴/title

DTD有三种内置、外置和内外结合


第一种内置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem[
<!ELEMENT poem (author,title,content)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT content (#PCDATA)>
]>

<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空间不见人,但闻人语声</content>

</poem>

第二种外置

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT poem (author,content)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT content (#PCDATA)>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem SYSTEM "2.dtd">
<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空间不见人,但闻人语声</content>
</poem>

第三种,内外结合

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem SYSTEM "dtd_2.dtd"[
<!ELEMENT poem (author,content)>
<!ELEMENT content (#PCDATA)>

]>

<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空间不见人,但闻人语声</content>
</poem>


DTD的修饰符号:

() 用来给元素分组 例如 (金庸|古龙|梁羽生),(王朔|余杰),毛毛 分成三组

| 在列出的元素中选择一个 (金庸|古龙|梁羽生) 三者必须出现其一

+ 出现至少一次 人+ 至少出现一个人

* 出现0次或者多次 猫*

? 要么出现要么不出现

,对象必须按照一定的顺序出现


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem[
<!ELEMENT poem (author+,title*,content?)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT content (#PCDATA)>
]>

<poem>
	<author>王维</author>
	<author>王维</author>
	<title>鹿柴</title>
</poem>

属性的定义:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem[
<!ELEMENT poem (author+,content?)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT content (#PCDATA)>
<!ATTLIST title name CDATA #REQUIRED >
]>

<poem>
	<author>王维</author>
	<title name="zhangsan">鹿柴</title>
	<content>空山不见人</content>
</poem>

注意CDATA与CDATA节的区别

以及#PCDATA与CDATA的区别

ID属性的取值必须是唯一的。

IDREF指向其他已经定义的ID值。


关于普通实体与参数实体

1)普通实体实在dtd中定义,xml中使用,使用的时候格式为:&address

2)参数实体实在dtd中定义,dtd中使用,定义的时候使用%,使用的时候也需要使用%,%address

3)外部普通实体的定义方式是:

<!ENTITY address SYSTEM "http://www.shengsiyaun.com/xml/xml">

表示使用http://www.shengsiyaun.com/xml/xml网址的内容替换掉address ,而不是字符串“http://www.shengsiyaun.com/xml/xml”

4)外部参数实体:

<!ENTITY % address SYSTEM "http://www.shengsiyaun.com/xml/xml">使用的时候: %address

(编辑:李大同)

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

    推荐文章
      热点阅读