频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.2.4 决定葡萄酒酿造厂的XML信息模型

作者: Mitch Amiano等著 焦瑜净等译 出处:清华大学出版社  2007-11-07 09:47    砖    好    评论   进入论坛
阅读提示:《XML案例解析教程》第1章的主要内容是XML与企业,本小节讲的是决定葡萄酒酿造厂的XML信息模型。

1.2.4  决定葡萄酒酿造厂的XML信息模型

XML文档的元素标记提供关于内容的描述信息。这就使得我们可以格式化信息模型,创建内容的具体规则。

为数据建立信息模型时,必须识别组成文档结构的所有部分,以及各内容之间的所有层次关系。在前面的示例中,标记将内容识别为<wine>元素的一部分。

1. XML元素
XML可以对需要的每个元素进行命名和定义,并为这些元素指定元数据(属性)。可以按自己喜欢的方式对元素进行命名。这种描述性很强的标记可以用来检索、重用和传递内容。

    Here is an example of an XML document using element names defined for accounting
data.
<accounting>
<invoice>
<inv_number>8559</inv_number>
<inv_recipient>
<company_name>Mad Melvin Inc.</company_name>
<contact_name>Melvin Brock</contact_name>
<address1>100 Brockway Hill, Suite 1</address1>
<city>Kenmore</city>
<state>NY</state>
<zip>14223</zip>
</inv_recipient>
<amount>199.00</amount>
<due_date>2006/11/02</due_date>
</invoice>
</accounting>

会计数据与酿酒厂的目录数据截然不同,会计数据对元素命名和层次结构的组织提供了指导。本例中,<invoice>元素是<accounting>元素唯一的子元素,是<inv_number>、<inv_recipient>、<amount>和<due_data>元素的父元素。

<inv_recipient>是<company_name>、<contact_name>、<address1>、<city>、<state>和<zip>的父元素。所有<invoice>和<inv_recipient>的子元素都是<accounting>元素的子孙。这些标记的运用使得调用发票金额、发票支付日期或采购者地址信息更加简单。

在为内容选择最适合的信息模型时,需要考虑拥有哪些信息、如何使用这些信息、数据集内需要增加哪些额外信息。然后根据需要创建元素标记和XML文档。

注意:不要力求建立一个完美的结构,这是不切实际的。不可能建立一个完全错误或完全正确的结构,只要它符合逻辑、满足需要就可以了。在实行过程中,可能会发现必须调整结构,以适应XML的扩展性设计。

为了确保数据的完整性,不仅要在开始之前还要在开始后的每个阶段分析情况。只要有必要,就可以通过删除元素、增加元素、重命名元素或调整层次结构来修改元素集。本书中对分析原则进行了介绍。

2. XML声明
所有的XML文档都可以从XML声明开始,XML声明告诉处理程序、工具和用户:该文档使用的是XML而不是其他标记语言。声明是可选择的,并不一定要使用。可以按如下方式进行声明:
<?xml version="1.0"?>

如果使用声明,则必须将它置于XML文件的开头,在根元素的起始标记之前,如下所示:

   <?xml version="1.0"?>
<accounting>
<invoice>
<inv_number>8559</inv_number>
<inv_recipient>
<company_name>Mad Melvin Inc.</company_name>
<contact_name>Melvin Brock</contact_name>
<address1>100 Brockway Hill, Suite 1</address1>
<city>Kenmore</city>
<state>NY</state>
<zip>14223</zip>
</inv_recipient>
<amount>199.00</amount>
<due_date>2006/11/02</due_date>
</invoice>
</accounting>

如果生成的XML实例是可重用的小型数据块,可能就不用进行声明,因为它们可能在文件中的任意位置作为组合的程序块结束,除了文件开头以外的任何地方的XML声明将会抛出错误。如果有独立的XML,并且可以由自动化进程来验证是否为XML文件,那么就可以包含XML声明,以确保将文件正确识别为XML文档。

3. 属性与信息建模
XML元素在尖括号内除了包含名称外,还可以包含属性。属性是元素的附加信息,位于元素的起始标记内。

例如,本章之前的示例中的<chapter>元素可以具有author属性。这就表示,作者的姓名虽然不是文档内容部分,但也可以包含在XML标记中。同样也可以包含作者所属大学。结构中的属性可以是必需的,也可以是可选的。标记中通常都会有作者,但有些作者可能不属于某个大学。在这种情况下,姓名属性有值(具体的姓名),但大学属性则不需要。利用这些属性可以通过具体的作者或大学进行搜索来定位信息。下面是一个使用author属性的XML标记:
<chapter author="William Penn">

结束标记仍然是</chapter>,其中不包含属性数据。

有多个属性的元素在属性之间要留一些空格。下面是同时具有author和university属性的<chapter>元素:
<chapter author="William Penn" university="Duquesne">

可以通过元素和相应属性的标记来创建内容。你可以按自己想要的方式设计元素和属性,根据用户的偏好创建动态内容,以便通过不同的介质传递多种格式。

4. 创建XML文档
打开记事本或其他文本编辑器,输入下列数据:

    <?xml version="1.0"?>
<wine id="Muscadine_750ml" type="dessert">
<name>Muscadine</name>
<varietal>Scupp</varietal>
<vintage>1998</vintage>
<bottlesize>750ml</bottlesize>
<description>Our complex purple <keyword>Muscadine</keyword> grape lends an
<keyword>assertive</keyword> aroma and flavor, with a semi-sweet velvety
<keyword>smooth</keyword> finish.</description>
</wine>

注意:记住,书的页宽并不总是能容纳整个代码行。 符号表示此处还不能按Enter键,而是继续键入下一行代码。在一条代码结束后按Enter键。

从现在开始,将以下面的示例展开讨论。第3章介绍了创建XML文档必须遵循的规则,学习这些规则之后将了解基本的语义,并能够从零开始创建自己的XML文档。根据这些规则可以创建格式良好的文档,这样分析器——或者浏览器——才可以使用这些文档。

将文件保存为muscadine.xml。所创建的文档可能与图1-1中显示的相似。

 

图  1-1

注意:如果文本编辑器是以.txt而不是以.xml为扩展名,那么先将文件重命名为以.xml为扩展名。
现在用支持XML的网页浏览器打开该文件,如使用Microsoft Internet Explorer。元素用视图树表示,每一层可以清楚地显示嵌套层次关系。您的文档可能与图1-2中所显示的相似。

图  1-2

这是确保XML文档可用的第一步。如果不能在浏览器中显示,那么标记中就可能存在错误。
从图1-2中可以看到,在wine和description标记的开始标记之前都有一个小的减号。所有具有后代的元素前面都有一个减号。单击这些减号可以隐藏元素的后代。一旦隐藏了后代,这些减号将显示为加号,单击这些加号就可以显示后代,同时将加号还原为减号。

你可能想让XML按一定的方式显示。如果不是用来显示而是由进程使用,你很可能想让它看起来比视图树更友好一些。

XML可以用字体、颜色和图像定义格式,从而更好地显示在浏览器中,而不是像图1-2那样以视图树的方式显示在Internet Explorer中。使用样式表,如HTML常用的层叠样式表(Cascading Style Sheets,简写为CSS),可以使XML的显示效果更好。XML格式和转换语言——可扩展样式转换语言(Extensible Stylesheet Language Transformation,简写为XSLT)——也可以用来生成XML或者将XML转换成其他类型的基于文本的文档(本书稍后将作介绍)。

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节
· 1.4 小结(11/07)
· 2.4 小结(11/07)
专题
XML可扩展标识语言详解
Ajax+JSP网站开发从入门到精通
ASP.NET Ajax网站开发从入门到精通
非常网管——网络管理从入门到精通
ANT IN ACTION 第2版 中文版
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用