首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.2  分析问题

从回顾先前的葡萄酒酿造厂拥有者提供的记录开始,扩充您认为需要的数据,组织数据,以便根据业务和销售活动的需要使用这些信息。一开始,要弄清楚想做的事情:

●       至少要跟踪最好的顾客(或分销商)的订单。

●       与合作伙伴或旅行社共享本公司数据,同时用它们的数据扩充本公司数据。

●       为酿酒厂现有的Web站点准备信息,现有站点只是单一的HTML页面,包含了一幅涵盖地址和电话号码的大型图像——即丑陋又无法理解!

●       准备好销售产品派发给酿酒厂参观者或配销给当地餐馆。

随着酿酒厂业务的扩大,您就可以使用葡萄酒数据与分销商、杂志出版商和内部业务中心(会计、销售、配送)进行交互。要发展公司业务,必须简化某些酿酒厂内容。

内容必须调整成包括以下一些公司数据:

●       库存计算

●       分销商名称

同时可能要合并一些附加数据来支持其他商业用途,包括:

●       美国和加拿大定价(支持邻界地区的Internet销售)

●       关键字(支持更好地检索客户和分销商查找信息)

●       目录(例如,支持将佐餐酒和甜酒对照排序)

●       购买者联系信息(支持空运)

现在,对于所有的葡萄酒都必须修改它们的XML。计划增加的元素都需要新的数据。

2.2.1  生成格式良好的XML文档

格式良好的XML是遵循所有“XML文档规则”的XML文档,如下所列。这些规则规定了标记如何置于内容周围,如何按层次嵌套元素,如何为属性加标点以及怎样的元素名称是可接受的。

1. XML文档规则

创建XML文档时,必须遵循一些基本的指导原则,这样创建出的文档才是“格式良好的”。这表示XML元素编写恰当,遵循XML规则。具体规则如下:

●       XML文档必须有一个根标记,即一个单独的元素,其起始标记和结束标记位于元素剩余部分和文档内容周围。

●       对于每个元素,XML标记必须有相匹配的起始标记和结束标记。XML区分大小写,例如,<vintage>1994</vintage>是有效的,但<vintage>1994</Vintage>则是无效的。

●       元素名称可以包括字母、数字和下划线,但不能以数字开头,不能包含空格。

●       空元素——没有内容的元素——只含有一个以斜线结尾的标记。例如,<image file=“branding.png”/>。

●       属性值必须用引号引起。可以使用单引号或双引号,但是建议前后使用一致。在前面的规则示例中,file是属性名称,branding.png是属性值。每个属性都有一个名值对。

●       实体字符和特殊字符必须谨慎使用。例如,XML文档内容中的特殊字符,如大于号(>),在标记中显示为一个代码或实体。大于号在XML代码中显示为&gt,XML分析器可以识别它并显示为恰当的字符。

如果遵循了上述规则,XML文档将是格式良好的,大多数工具和浏览器都能对其完全解析。

格式良好的XML是XML能够使用的最低要求。高质量的XML,即有效的XML,将在本书稍后作介绍。

2. 元素的命名

元素名称在可用性方面几乎是没有限制的。通过实践可以熟练创建各种XML文档。下面是一些XML实例——文档。为了更好地理解XML文档规则,可以打开记事本或其他文本编辑工具,输入下列文档实例。实践是最有用的!

在第一个示例中,根标记为<grocery_list>。空格和换行符常常用来帮助分辨起始标记和结束标记,虽然实际上并不需要。事实上,有些工具不喜欢使用额外的空格和换行符,这时候可以删除它们。

<grocery_list>

<produce>

<item>banana</item>

<item>apple</item>

</produce>

<meat>

<item>chicken breast</item>

</meat>

<dairy>

<item>milk</item>

</dairy>

</grocery_list>

在第二个示例中,根标记为<game>。这里只使用了换行符(通过按Enter键创建)来帮助分辨起始标记和结束标记。换行符是可选的,通常只对手工编辑有帮助(分析器并不需要)。

<game>

<poker type="Omaha Hi Lo">

<players>

<player standing="17">Denis Ethier</player>

<player standing="23">Nancy Mallett</player>

<player standing="112">Kim Beaver</player>

<player standing="411">Leslie Thomas</player>

<player standing="517">Leatta Welch</player>

<player standing="711">Davie Dilts</player>

<player standing="720">Juli Allentine</player>

<player standing="809">Riley Dillon</player>

<player standing="905">Nadia Grace</player>

<player standing="1217">Eddie Cidade</player>

<player standing="2741">Pamela Harris</player>

<player standing="2977">Bernard Aslan</player>

</players>

<rules src="play.pdf" />

</poker>

</game>

倒数第三行——<rules src="play.pdf"/>——是一个空元素(在第1章中已讨论过),表示在两个标记之间没有内容。空元素没有起始标记和结束标记,只有一个以斜线结尾的标记,以尖括号括起。

最后一个示例显示了一些不同的标记,根标记是<party>。同时使用了空格和换行符(也是可选的):

<party>

<date>

<month>October</month>

<date>29</date>

<year>2005</year>

</date>

<time>

<start>7:30 <pm /></start>

<end>1:00 <am /></end>

</time>

<theme>Halloween</theme>

<guests costumes = "Yes">

<guest>Eric<costume>prisoner</costume></guest>

<guest>Sue<costume>ghoul</costume></guest>

<guest>Tom<costume>ghoul</costume></guest>

<guest>Mark<costume>Grim Reaper</costume></guest>

<guest>George<costume>Doctor Death</costume></guest>

<guest>Dianne<costume>Morticia Adams</costume></guest>

<guest>Steve<costume>Lurch</costume></guest>

</guests>

<guests costumes = "No">

</guests>

</party>

利用XML规则可以创建一个简单的XML文档。现在,您可以用所想到的任何元素名和任何层次结构来创建一个XML文档。

那么,可以用XML文档来做些什么呢?

如果正确建立了XML,就可以在Microsoft Internet Explorer等浏览器中打开文档。您可以看到相当直观的文档,以树视图形式显示,在有嵌套元素的地方进行了折叠,类似于第1章的图1-2中所示。

这个XML实例还可以做些什么呢?即使脑海中没有一个具体的结构或信息模型,这对于XML中包含哪些元素是没有影响的。您需要考虑的是哪些元素是为需求服务的,要确保标记的层次结构对于所需的检索信息方式是有意义的。您真正需要的是一个格式良好的XML文档,该文档可以被所有访问格式良好的XML工具或进程使用。

2.2.2  介绍有效的XML

也许您想获取一个“高质量”的XML,因为它更加具有可预测性——因此可能更有用。根据可预测结构建立的XML称为“有效的”XML。有效的XML首先是格式良好的,它使用了元素、属性和根据定义结构的文件创建的层次嵌套。这个文件可以是一个模式或一个DTD:

●       模式是一个ASCII文本格式的文件,它使用XML标记创建元素、属性和内容模型。

●       DTD(Document Type Definition,文档类型定义)是一个ASCII文本格式的文件,它使用具体的语法创建元素、属性和内容模型。

根据XML文档规则可以创建格式良好的XML,就像在第1章记事本中输入的那样。由此创建的文档可以被各种工具使用,包括Microsoft Internet Explorer。

本书中的示例使用了模式或DTD,并且结合使用了有效的XML。

2.2.3  开发结构

设计的本质是选择结构中所需的元素。第4章将介绍如何将数据的结构放入DTD或模式,以此检验数据是否符合所需的结构。

现在,考虑需要用来扩充现有酿酒厂和葡萄酒数据的结构类型,可能包括下列部分或全部内容:

●       库存

●       价格(美国和加拿大)

●       客户数据(地址、电话、电子邮箱)

●       客户类型(分销商、最终用户)

●       目录

●       关键字

●       公司细节(工作时间、对外公开日期、实际地址、证书)

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论