** 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 属性所指定的。