XML Base学习笔记
张小根
1、XML Base提供了一种通过显式的指定一个基准URI(base URI),并通过此base URI来解析指向外部资源的相对URI的方式。具体是通过指定XML元素的xml:base属性来实现的。
2、目前只有三个有关XML的规范是基于XML Base的,将其作为他们标准引用的一部分:XLink、XML InfoSet、Cannonical XML。其他的很少或者基本上和XML Base无关。XML Namespace使用了URI但不是通过xml:base属性来解析的。XPath没有使用相对URI引用,所以也没有使用XML Base,XSLT使用了与XML Base不兼容的基URI的方式。
3、以下是一个例子: <?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc>
本例中的URIs被解析为下列完整的URIs:
Ø "what's new"被解析为URI "http://example.org/today/new.xml"
Ø "Hot Pick #1"被解析为URI "http://example.org/hotpicks/pick1.xml"
Ø "Hot Pick #2"被解析为URI "http://example.org/hotpicks/pick2.xml"
Ø "Hot Pick #3"被解析为URI "http://example.org/hotpicks/pick3.xml"
4、基准URI一定是绝对URI,是根据RFC 2396中的规则计算得到的URI,通过xml:base属性指定的值是基准URI信息,并且xml:base的值可以是绝对URI,也可以是相对URI。
5、某个具体元素的基准URI是由该元素的xml:base属性指定的,如果该元素没有指定xml:base属性,则是由该元素的父元素的URI指定的,如果父元素也没有指定xml:base的话,则是由该文档的xml:base属性所指定的。 
|