XML Base学习笔记

** 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、 以下是一个例子:

 1<doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink">
 2    
 3    
 4      <head>
 5    
 6    
 7        <title>Virtual Library</title>
 8    
 9    
10      </head>
11    
12    
13      <body>
14    
15    
16        <paragraph>See <link xlink:href="new.xml" xlink:type="simple"/>what's  new!</paragraph>
17    
18    
19        <paragraph>Check out the hot picks of the day!</paragraph>
20    
21    
22        <olist xml:base="/hotpicks/">
23    
24    
25          <item>
26    
27    
28            <link xlink:href="pick1.xml" xlink:type="simple"/>Hot Pick #1
29    
30    
31          </item>
32    
33    
34          <item>
35    
36    
37            <link xlink:href="pick2.xml" xlink:type="simple"/>Hot Pick #2
38    
39    
40          </item>
41    
42    
43          <item>
44    
45    
46            <link xlink:href="pick3.xml" xlink:type="simple"/>Hot Pick #3
47    
48    
49          </item>
50    
51    
52        </olist>
53    
54    
55      </body>
56</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 属性所指定的。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus