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文档中,可能会出现标识名相同而代表意义不相同的状况。命名空间通过在元素名前增加独特的标识符,制定元素名的有效空间,来区分两个同名元素。
答:数据库是结构化的数据存储,而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"></备注> </订购人信息> </唱片信息>
运行结果如下: