您的位置:首页 > 其它

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

2018-03-14 13:47 513 查看
实验工具: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代表字符数据,为防止与关键字混淆,加#前
a45c
缀。

  4、父元素类型
只包含子元素,并且除了这些子元素外没有文本。这类元素中可以包含子元素,在DTD中通过正则表达式规定子元素出现的顺序和次数。
  5、混合元素类型
<!ELEMENT 元素名(#PCDATA|子元素名1|子元素名2|……|子元素名n)*>:指包含子元素和文本数据的混合体。
3.理解DTD实体声明的基本语法;
<!DOCTYPE 文件名[
<!ELEMENT 实体名 “实体内容”>
]>
4.掌握XML的五种常用实体的用法;

表1-1 预定义实体 [align=center]
字符实体引用
&It;
>;
&&;
 '&apos;
";
[/align]
<?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文件的有效性问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: