xml实验报告
一.书上题目
Ø 345题:
代码:
<?xml version="1.0" encoding="UTF-8"?>
<项目组 xmlns="http://schemas.microsoft.com/"
xmlns:duty="http://schemas.microsoft.com/ado/">
<项目组角色>
<职位>
<duty:名称>项目经理</duty:名称>
<工作年限>五年以上</工作年限>
<技能要求>精通J2EE,掌握管理技能</技能要求>
<职责>控制项目进度、品质、任务分配</职责>
</职位>
<![CDATA[
<职位>
<duty:名称>架构设计师</duty:名称>
<工作年限>五年以上</工作年限>
<技能要求>精通J2EE架构设计、有项目开发经验</技能要求>
<职责>设计项目架构,并在项目组中实施</职责>
</职位>
]]>
<职位>
<duty:名称>需求分析师</duty:名称>
<工作年限>3年以上</工作年限>
<技能要求>熟悉财务系统,有开发经验</技能要求>
<职责>收集客户需求,编写需求规格书</职责>
</职位>
<职位>
<duty:名称>高级程序员</duty:名称>
<工作年限>3年以上</工作年限>
<技能要求>精通structs+Hibernate+MS SQL</技能要求>
<职责>编写详细设计书,编码实现业务模块</职责>
</职位>
</项目组角色>
</项目组>
运行图:
Ø 9题:
代码:
<?xml version="1.0" encoding="GB2312"?>
<PERSON>
<NAME>AEon Yuzz</NAME>
<CALL>021-54657798 </CALL>
<TITLE>项目经理</TITLE>
<COMPANY>SAP 中国有限公司....</COMPANY>
<ADDRESS>上海浦东张江软件园</ADDRESS>
</PERSON>
<!--
<PERSON>
<NAME>AEon Yuzz</NAME>
<:CALL>021-54657798
<TITLE>项目经理</TITLE>
</:CALL>
<COMPANY>SAP 中国有限公司....</COMPANY>
<ADD RESS>上海浦东张江软件园</ADD RESS>
</PERSON>
-->
<!--
problem1:ADDRESS不能分开写
problem2:电话标签不能嵌套
problem3:标签开头不能用:
-->
运行图:
二.回答题目
(1)如果允许XML中的元素相互交叉,其缺点是什么?
答:1.文档缺乏规范化;2.结构不够清晰,不利于维护和阅读;3.容易造成内容与现实混合;4.没有做到严格嵌套
(2)XML文件中的名字空间有什么用处?
答:XML 命名空间提供了避免元素名称冲突的方法。
因为XML的元素名都是自己定义的,在大型XML文档中,可能会出现标识名相同而代表意义不相同的状况。命名空间通过在元素名前增加独特的标识符,制定元素名的有效空间,来区分两个同名元素。
(3)XML的标记与关系数据库中的列名有什么区别?
答:数据库是结构化的数据存储,而XML是半结构化的数据存储,区别就在于,结构化的关系表中,如果你有个字段的数据是null,那么这个位置也要空着,保证关系结构。而XML文档中你只需要添加有数据内容的节点(标签)就行了。这就是半结构化数据的一个优点。
(4 ) 根据实际业务需求,定义格式良好的XML文件。
某音像店,用XML文件来存放下列唱片信息:每一种唱片包含唱片的基本信息和多个订购人信息。基本信息包含:唱片名字,发行日期,曲目数,单价,数量(含有一个属性是单位)。而订购人信息包含:姓名,详细地址(街道,城市,省,国家,邮政编码),备注(包含属性付款方式和订货日期)等。
首先得到树形图:
由题目可知包含多个订购人信息,需要使用DTD来约束。根据题目要求得到如下xml代码:
<?xml version="1.0" encoding="utf-8" ?>
<!--a start of DTD-->
<!DOCTYPE 唱片信息[
<!--elems defines-->
<!ELEMENT 唱片信息 (基本信息,(订购人信息)+)>
<!ELEMENT 基本信息 (唱片名称,发行日期,曲目数,单价,数量)>
<!ELEMENT 订购人信息 (姓名,详细地址,备注)>
<!ELEMENT 详细地址 (街道,城市,省,国家,邮政编码)>
<!ELEMENT 唱片名称 (#PCDATA)>
<!ELEMENT 发行日期 (#PCDATA)>
<!ELEMENT 曲目数 (#PCDATA)>
<!ELEMENT 单价 (#PCDATA)>
<!ELEMENT 数量 (#PCDATA)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 备注 (#PCDATA)>
<!ELEMENT 街道 (#PCDATA)>
<!ELEMENT 城市 (#PCDATA)>
<!ELEMENT 省 (#PCDATA)>
<!ELEMENT 国家 (#PCDATA)>
<!ELEMENT 邮政编码 (#PCDATA)>
<!--属性定义-->
<!ATTLIST 数量 个数 CDATA #REQUIRED>
<!ATTLIST 备注 付款方式 CDATA #REQUIRED>
<!ATTLIST 备注 订货日期 CDATA #REQUIRED>
]>
<唱片信息>
<基本信息>
<唱片名称>迪克-牛仔</唱片名称>
<发行日期>1990-7-26</发行日期>
<曲目数>52</曲目数>
<单价>¥1999</单价>
<数量 个数="5"></数量>
</基本信息>
<订购人信息>
<姓名>arc</姓名>
<详细地址>
<街道>四川农业大学三区</街道>
<城市>雅安市</城市>
<省>四川省</省>
<国家>中国</国家>
<邮政编码>623000</邮政编码>
</详细地址>
<备注 付款方式="网上支付" 订货日期="2016-11-2"></备注>
</订购人信息>
<订购人信息>
<姓名>cat</姓名>
<详细地址>
<街道>四川川农业小学二区</街道>
<城市>雅安市</城市>
<省>四川省</省>
<国家>中国</国家>
<邮政编码>623000</邮政编码>
</详细地址>
<备注 付款方式="线下支付" 订货日期="2016-10-25"></备注>
</订购人信息>
</唱片信息>
运行结果如下:
来源:oschina
链接:https://my.oschina.net/u/2481244/blog/779933