xml基于DTD的XML文档有效性验证

实验工具:xmlspy2013、firefox;

实验问题:

1.分析下列XML实例,编写DTD文档,并进行验证。

<?xml version=”1.0” encoding=”GB2312”>

<学生名册>

 <学生 学号="A">

       <姓名>张三</姓名>

       <性别>男</性别>

       <年龄>20</年龄>

</学生>

<学生 学号="A2">

       <姓名>李四</姓名>

       <性别>女</性别>

       <年龄>19</年龄>

</学生>

<学生 学号="A3">

       <姓名>王二</姓名>

       <性别>男</性别>

       <年龄>21</年龄>

</学生>

</学生名册>

2.分析下列DTD文档,上机编写有效的XML文档,并进行验证。

<!DOCTYPE NEWSPAPER[

<!ELEMENT NEWSPAPER (ARTICLE+)>

<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>

<!ELEMENT HEADLINE (#PCDATA)>

<!ELEMENT BYLINE (#PCDATA)>

<!ELEMENT LEAD (#PCDATA)>

<!ELEMENT BODY (#PCDATA)>

<!ELEMENT NOTES (#PCDATA)>

<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>

<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>

<!ATTLIST ARTICLE DATE CDATA #IMPLIED>

<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>

<!ENTITY NEWSPAPER "Vrevet Logic Times">

<!ENTITY PUBLISHRE "Vervet Logic Press">

<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">

]>

 

1.理解XML文档有效性的涵义;

DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档来查看文档是否符合规范,元素和标签的使用是否正确。

2.熟悉DTD元素与属性声明的基本语法;

a)   !ELEMENT表示开始元素设置

b)   element-name指明设置此元素的名称

c)   element-definition:指明对此元素进行怎样的定义

  1、ANY元素类型

<!ELEMENT 元素名 ANY>:将根元素设为ANY类型后,元素出现的次序和顺序将不受限制。

  2、EMPTY元素类型

<!ELEMENT 元素名 EMPTY>:使用空元素标记,既不能有内容,也不能有子元素

  3、#PCDATA类型的元素(纯文本元素)

<!ELEMENT 元素名(#PCDATA)>:PCDATA代表字符数据,为防止与关键字混淆,加#前缀。

  4、父元素类型

只包含子元素,并且除了这些子元素外没有文本。这类元素中可以包含子元素,在DTD中通过正则表达式规定子元素出现的顺序和次数。

  5、混合元素类型

<!ELEMENT 元素名(#PCDATA|子元素名1|子元素名2|……|子元素名n)*>:指包含子元素和文本数据的混合体。

3.理解DTD实体声明的基本语法;

<!DOCTYPE 文件名[

<!ELEMENT 实体名 “实体内容”>

]>

4.掌握XML的五种常用实体的用法;

表1-1 预定义实体

字符

实体引用

&It;

&gt;

&

&amp;

 '

&apos;

&quot;





<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE 学生名册 [
<!ELEMENT 学生名册 (学生+)>
<!ELEMENT 学生 (姓名, 性别, 年龄)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 性别 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ATTLIST 学生	学号 (A | A2 | A3) #REQUIRED>
]>
<学生名册>
	<学生 学号="A">
		<姓名>张三</姓名>
		<性别>男</性别>
		<年龄>20</年龄>
	</学生>
	<学生 学号="A2">
		<姓名>李四</姓名>
		<性别>女</性别>
		<年龄>19</年龄>
	</学生>
	<学生 学号="A3">
		<姓名>王二</姓名>
		<性别>男</性别>
		<年龄>21</年龄>
	</学生>
</学生名册>
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE NEWSPAPER[
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
<!ENTITY NEWSPAPER "Vrevet Logic Times">
<!ENTITY PUBLISHRE "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">
]>

<NEWSPAPER>
	<ARTICLE AUTHOR="必须写" EDITOR="可有可无" DATE="可有可无" EDITION="可有可无">
		<HEADLINE>123</HEADLINE>
		<BYLINE>123</BYLINE>
		<LEAD>123</LEAD>
		<BODY>123</BODY>
		<NOTES>©RIGHT;</NOTES>
	</ARTICLE>
	<ARTICLE AUTHOR="pshd1" EDITOR="可有可无" DATE="2017-10-11" EDITION="1.0">
		<HEADLINE>xml实验四</HEADLINE>
		<BYLINE>123</BYLINE>
		<LEAD>前言1</LEAD>
		<BODY>hello</BODY>
		<NOTES>&PUBLISHRE;</NOTES>
	</ARTICLE>
	<ARTICLE AUTHOR="pshd2" EDITOR="可有可无" DATE="2017-10-12" EDITION="1.0">
		<HEADLINE>world</HEADLINE>
		<BYLINE>123</BYLINE>
		<LEAD>123</LEAD>
		<BODY>123</BODY>
		<NOTES>&NEWSPAPER;</NOTES>
	</ARTICLE>
</NEWSPAPER>

注意问题:

    

xml文件--->DTD/schema文件的自动转换问题

DTD/schema文件-->xml文件的自动转换问题

xml文件和DTD内定义和外部引入问题

实体自定义和xml文件联系DTD文件的有效性问题



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值