XML

缩写

说明

Namespaces

防止不同软件使用名字因为重复而发生冲突

XPath

定位文档中的数据

XPointer

说明在文档中的位置

Xquery

在文档集中查找数据

XSLT

对数据进行格式转换

XSL

以页面格式表示数据

Xlink

连接来自不同文档的数据

N/A

说明比DTD 更广泛的格式定义

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这一篇简单介绍一下XML的特性标准。

首先是命名空间,在实际利用XML的过程中,存在一种现象,就是不同的程序使用同一张XML文档,但是不同程序可能用了同样的名字去表示其实是不一样的数据,为了解决这个问题,引入了命名空间的概念,将XML的元素或属性跟唯一的命名空间联系起来,以区分不同数据。比如,一张订单可以用XML表示,部分数据如下:

 

     <Reconciliation>

          <Customer>

               <Name>John</Name>

               <Address>Accounts Payable-Bar Corporation</Address>

               <Order>

                   <Status>.....</Status>

               </Order>

          </Customer>

      </Reconciliation>

 

Status 表示订单的状态,如果是财务程序处理这张 XML ,那么 Status 的值为‘invoiced’(已开票)或‘uninvoiced’;如果是交货程序处理,是“shipped”(已交货)“unshipped”,即同样一个元素,对不同部门可能意义不同,这时就可以用命名空间;

 

       <Reconciliation

            xmlns:acct=http://www.foocompany.com/names/acct-rev10

             xmlns:ful=http://www.foocompany.com/names/ful-rev10>

          <Customer>

               <Name>John</Name>

               <Address>Accounts Payable-Bar Corporation</Address>

               <Order>

                   <acct:Status>.....</acct:Status>

                   <ful:Status>.....</ful:Status>

               </Order>

          </Customer>

      </Reconciliation>

 

当越多的人使用同一个XML时,命名空间就越重要,对开发商而言,所有产品可以定义为一张XML,但不同产品应该有不同的命名空间;企业内部不同部门也应该对应不同的命名空间;

 

      Xpath XPointer XQuery 都有定位数据的功能,XPath 是基础,XPath 的语法提供了利用类似文件目录那样的层级结构表示树状结构(因为两者是对应的),XPointer 是比 XPath 更 精确的方式,而 XQuery 是从一个文档集而不是一篇文档中搜集符合条件的节点。这方面详细的内容同样可以参考W3CSchool.

 

      http://www.w3school.com.cn/

 

     XSL XSLT 从名字上就可以看出是相关的,它们的关系是由于历史原因;最初,人们想要为 XML 文档设计一种通用的显示方式,就是 XSL;它的作用相当于 CSS HTML  的作用,要达到这个目标,XSL需要满足两方面要求,第一是重新组织文档的内容(这是显示的关键),第二是将显示属性与内容相关联;问题在于,第一方面的研究进展很快,而且发现这种对XML文档的重组不仅对显示有用,对很多其他方面也很有用,最简单的就是,两个公司各自有各自的XML标准,现在要对两个公司的业务进行自动化处理,而业务都是以XML存储的,那么这个过程势必需要对XML结构进行改变,以使两种标准能统一,这就是XSLT!而第二方面,合适显示属性的研究还存在争议,所以单独作为 XSL,而XSLT先一步成为了标准。事实上,XSLT 不仅在数据转换方面发挥重要作用,在基于XML文档的数据抽取方面也有很大作用的,这个以后有机会再详细说;

     有一个问题需要知道,就是以上提到的几种特性标准,实际上用一般的程序语言也可以达到同样的操作,比如用javadomSAX,同样可以定位到某一节的去取值,所以,这些所谓特性标准其实是将这类比较经常的操作独立出来而已。所以,有些操作,用 XSLT 的效率还远比不上直接用 dom 写,但是复杂的问题,用 特性标准来做就可以使系统更清晰。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值