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

XML约束--DTD约束

发布时间:2020-12-16 08:25:02 所属栏目:百科 来源:网络整理
导读:2.XML 约束: 2.1 引入 XML 语法:规范的 XML 文件的基本编写规则。(有 w3c 组织制定的) XML 约束:规范 XML 文件数据内容格式的编写规则。(由开发者自定义) 2.2 XML 约束的技术 DTD 约束:语法相对简单,功能相对简单,学习成本相对低 Schema 约束:语

2.XML约束:

2.1 引入

XML语法:规范的XML文件的基本编写规则。(有w3c组织制定的)

XML约束:规范XML文件数据内容格式的编写规则。(由开发者自定义)

2.2 XML约束的技术

DTD约束:语法相对简单,功能相对简单,学习成本相对低

Schema约束:语法相对复杂,功能相对复杂,学习成本相对高(名称空间)

2.3 DTD约束

1)导入DTD方式

a)内部导入

<?xmlversion="1.0"?>

<!DOCTYPEnote[

<!ELEMENTnote(to,from,heading,body)>

<!ELEMENTto(#PCDATA)>

<!ELEMENTfrom(#PCDATA)>

<!ELEMENTheading(#PCDATA)>

<!ELEMENTbody(#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend</body>

</note>

b)外部导入

i.本地文件系统:

<!DOCTYPEnoteSYSTEM"note.dtd">

ii.公共的外部导入:

PUBLIC"文件名">//文件名一般是在互联网上的如:http://gz.itcast.dtd

2)DTD语法:

约束标签

<!ELEMENT 元素名称 类别> <!ELEMENT 元素名称 (元素内容)>

类别:

空标签:EMPTY,表示元素一定是空元素。<!ELEMENT 元素名称 EMPTY>

普通字符串:(#PCDATA),表示元素内容一定是普通字符串(不能包含子标签)

任何内容:ANY,表示元素的内容可以是任意内容(包含子标签)

(元素内容)

顺序问题:

<!ELEMENT 元素名称 (子元素名称1,子元素名称2,...)>:按顺序出现子标签

次数问题:

标签:必须且只出现一次

标签+:表示至少出现一次

标签*:表示0次或多次

标签?:表示0次或1

约束属性:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

默认值:

#REQUIRED 属性值是必须的

#IMPLIED 属性不是必须的

#FIXED value 属性值是固定的

属性类型:

CDATA:表示普通字符串

(en1|en2|...):表示任选其中的一个值

ID:表示在一个XML文档中该属性值必须唯一,值不能以数字开头

约束文件:note.dtd

<!ELEMENT note (to?,from*,heading+,body)>
<!ELEMENT to       (#PCDATA)>
<!ELEMENT from     (#PCDATA)>
<!ELEMENT heading  (#PCDATA)>
<!ELEMENT body     (#PCDATA)>
<!ATTLIST to name CDATA #REQUIRED><!--设置标签to必须要有name属性-->
<!ATTLIST from name CDATA #IMPLIED><!--设置标签from标签有name属性,但是非必须的-->
<!ATTLIST heading name CDATA #FIXED "标题"><!--设置标签heading标签有name属性,但是是非必须的,但如果写了,其值必须是固定的-->

根据约束文件写的XML文件:note.html

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
	<to name="abc">Tove</to>
	<from>Jani</from>
	<heading>Reminder</heading>
	<body>Don't forget me this weekend</body>
</note>

(编辑:李大同)

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

    推荐文章
      热点阅读