XML实验---设计一个唱片(利用DTD)

江枫思渺然 提交于 2020-02-28 20:03:05

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"></备注>
       </订购人信息>
</唱片信息>

运行结果如下:

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!