DTD与XML基本语法规则-创新互联

DTD(文档类型定义)可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构。DTD分为内部DTD和外部DTD,所谓内部DTD是指该DTD在某个文档的内部,只被该文档使用。外部DTD是指该DTD不在文档内部,可以被其他所有的文档来共享。DTD文档与XML文档实例的关系可以看成是类和对象的关系。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的阿勒泰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

(1)外部DTD文件的编写及引用

新建一个外部family.dtd文件

DTD与XML基本语法规则

<!ELEMENT family (father,mother,son+)>
<!ELEMENT father (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT mother (name,age)>
<!ELEMENT son (name|wife|grandson)*>
<!ELEMENT wife (#PCDATA|name)*>
<!ELEMENT grandson (name)>
<!ATTLIST son status CDATA #REQUIRED>

编写XML文件引用DTD文件family.dtd

DTD与XML基本语法规则

DTD与XML基本语法规则

DTD与XML基本语法规则

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE family SYSTEM "file:///E:/Users/小爱爱/Desktop/family.dtd">
<family>
	<father>
		<name>张三</name>
          <age>40</age>
	</father>
	<mother>
		<name>刘丽</name>
		<age>36</age>
	</mother>
	<son status="bigson">
		<name>张天</name>
		<wife>
			<name>王华</name>
		</wife>
		<grandson>
			<name>张晓华</name>
		</grandson>
	</son>
	<son status="smallson">
		<name>张帅</name>
	</son>
</family>

(2)内部DTD文件

新建一个内部有DTD文件的XML文件class.xml

DTD与XML基本语法规则

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE class[
<!ELEMENT class (student*)>
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST class classId ID #REQUIRED>
<!ATTLIST student stuId IDREF #IMPLIED>
]>
<class classId="a01">
	<student stuId="a01">
		<name>张三</name>
		<age>18</age>
		<sex>男</sex>
	</student>
	<student stuId="a01">
		<name>李四</name>
		<age>18</age>
		<sex>女</sex>
	</student>
	<student>
		<name>王五</name>
		<age>17</age>
		<sex>女</sex>
	</student>
</class>

由以上的XML文件可以看出

#IMPLIED:表示该属性可以有也可以没有。

#REQUIRED:表示该属性必须有。

还有一种属性的特征

#FIXED:表示该属性的属性值固定。

被声明为IDREF属性类型的属性值必须引用ID属性类型的属性值。

(3)ANY的用法规则

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE company[
<!ELEMENT company ANY>
<!ELEMENT worker (name,sex,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ATTLIST worker workId ID #REQUIRED>
]>
<company>
	<worker workId="a10">
		<name>zhangsan</name>
		<sex>nv</sex>
		<age>28</age>
	</worker>
	<company></company>
	<name>lisi</name>
	<age>30</age>
	<name>wangwu</name>
	<sex>nan</sex>
</company>

ANY类型表示可以包含多个子元素且不受限制,也可包含字符串数据。但ANY一般用在对根元素的声明中。

(4)NMTOKEN和NMTOKENS

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE student[
<!ELEMENT student (#PCDATA)>
<!ATTLIST student stuId NMTOKEN #REQUIRED>
<!ATTLIST student classId NMTOKENS #REQUIRED>
]>
<student stuId="a10"  classId="   a10"></student>

以上代码可以通过编译,当XML为以下代码时会出现下图的错误信息

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE student[
<!ELEMENT student (#PCDATA)>
<!ATTLIST student stuId NMTOKEN #REQUIRED>
<!ATTLIST student classId NMTOKENS #REQUIRED>
]>
<student stuId="a   10"  classId="   a10"></student>

DTD与XML基本语法规则

NMTOKEN类型要求属性值中不能包含空格且必须以下划线、数字或字母开头。

NMTOKENS类型与NMTOKEN类型类似,NMTOKENS类型要求属性值必须以下划线、数字或字母开头。但可以包含空格。

(5)枚举类型

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE people[ 
<!ELEMENT people (person+)>
<!ELEMENT person (#PCDATA)>
<!ATTLIST person 性别 (男|女) #IMPLIED> 
<!ATTLIST person 学历 (高中|大学|研究生|博士) #IMPLIED> 
	]>
<people>
	<person 性别="女" 学历="大学">lily</person>
	<person ></person>
</people>

列举出要选的项,与下拉列表类似。

DTD与XML基本语法规则

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章题目:DTD与XML基本语法规则-创新互联
转载源于:https://www.cdcxhl.com/article34/cshese.html

成都网站建设公司_创新互联,为您提供App开发网站策划ChatGPT网页设计公司定制网站网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设