打字猴:1.700417309e+09
1700417309
1700417310
1700417311
1700417312 计算机是怎样跑起来的 [:1700412739]
1700417313 计算机是怎样跑起来的 11.6 可以为XML标签设定命名空间
1700417314
1700417315 XML文档并非因特网专用,但XML确实是一种主要通过因特网在全世界的计算机之间交换数据时使用的数据格式。这样的话就有可能遇到一个问题:虽然标签的名字相同,但标记语言的创造者们却为它们赋予了各种不同的含义。例如这个标签,有人用它来表示猫(CAT),有人会用它来表示连接(conCATenate)(如图11.13所示)(cat除了表示猫,还是一个Unix命令,该命令用于将多个文件连接在一起。在计算机行业中,应该也有不少人更倾向于由cat这个词联想到连接,而不是猫)
1700417316
1700417317 图11.13 在大千世界中人们会为相同的标签赋予不同的意义
1700417318
1700417319
1700417320
1700417321
1700417322 于是就诞生了一个W3C推荐标准–XML命名空间(Namespace in XML),旨在帮助防止这种同形异义带来的混乱。所谓命名空间,通常是一个能代表企业或个人的字符串,用于修饰限定标签的名称。在XML文档中,通过把“xmlns=“命名空间的名字””作为标签的一个属性记述,就可以为标签设定命名空间。Xmlns即XML NameSpace(命名空间)的缩写。通常用全世界唯一的标识符作为命名空间的名称。说到因特网世界中的唯一标识符,公司的URI就再好不过了。例如,在XML文件中,GrapeCity公司的矢泽创建的标签就可以写成如下这种格式:
1700417323
1700417324 Tom
1700417325
1700417326 这样就可以与使用了其他命名空间的标签区分开了
1700417327
1700417328 在本例中,作为标签的命名空间设置的http://www.grapecity.com/yazawa,仅作为一个全世界唯一的标识符来使用。就算把这个URI输入到Web浏览器地址栏中,也并不会显示出相应的网页
1700417329
1700417330
1700417331
1700417332
1700417333 计算机是怎样跑起来的 [:1700412740]
1700417334 计算机是怎样跑起来的 11.7 可以严格地定义XML的文档结构
1700417335
1700417336 除了之前讲解过的“格式良好的XML文档”还有一个词叫做“有效的XML文档(Valid XML document)”。所谓有效的XML文档是指在XML文档中写有DTD(Document Type Definition,文档类型描述)信息。前面没有说明,其实完整的XML文档包括XML声明、XML实例和DTD三部分。所谓XML声明,就是写在XML文档开头的,形如的部分。XML实例是文档中通过标签被标记的部分;而DTD的作用是定义XML实例的结构。虽然也可以省略DTD,但通过DTD可以严格地检查XML实例的内容是否有效。
1700417337
1700417338 图11.14展示了一个写有DTD的XML文档。
1700417339
1700417340 图11.14 具有DTD的XML文档
1700417341
1700417342
1700417343
1700417344
1700417345 请把它想成一个描述公司名称、地址和员工数量的XML文档。用和]>括起来的部分就是DTD。DTD定义了在标签中可以有一个以上标签;在标签中可以包含,
,标签。只要定义了这样的DTD,当遇到那些虽然记录了公司名称和地址,但还没有员工数量的数据时,就可以判断出这不是一个有效的XML实例
1700417346
1700417347 与DTD相同,还有一个名为XML Schema的技术也可用于定义XML实例的结构。在XML中,DTD借用了可称得上是标记语言始祖的SGMI(Standard Generalized Markup Language,标准通用标记语言)的语法。而XML Schema是为了XML新近研发的技术,因此它可以对XML文档执行更严格的检查,例如检查数据类型或数字位数等。DTD是1996年发布的W3C推荐标准,而XML Schema发布于2001年。今后将成为主流的是XML Schema,而不是古老的DTD
1700417348
1700417349
1700417350
1700417351
1700417352 计算机是怎样跑起来的 [:1700412741]
1700417353 计算机是怎样跑起来的 11.8 用于解析XML的组件
1700417354
1700417355 前面介绍过,如果用XML文档记录信息,计算机就可以自动地进行处理。那么编写处理XML文档的程序时应该怎么做呢?
1700417356
1700417357 也许有人会想:因为XML文档是纯文本文档,所以无论是用BASIC还是C语言,只要用某种编程语言编写一个能够读写文件的程序就可以了……当然没错!但,如果要亲手从零开始编写这样的程序太麻烦了。像是切分标签之类的处理,即便XML文档的内容不同,其步骤也大致相同。要是有谁能提供现成的这部分处理的代码就好了–这样想的人应该不止笔者一个吧
1700417358
[ 上一页 ]  [ :1.700417309e+09 ]  [ 下一页 ]