Los Angeles Chinese Learning Center, providing private Chinese Mandarin classes, Chinese tutors, Mandarin interpreter and translators, China investment report, investment opportunity report, China intelligence report, information on Chinese herbal medicines in Los Angeles
Corporate Services Other Services
Private Instruction Invest in China
Curriculum FAQ
Business Culture Health Education
Textbooks Our Staff
Hours and Location Contact Us
 

譯文: XML Base(http://chinese-school.netfirms.com/XMLBase-TC.html
原文: XML Base(http://www.w3.org/TR/2001/REC-xmlbase-20010627/
說明:          本文檔是根据2001年6月27日發布的XML Base推荐標准和2003年1月23日更新的勘誤表進行翻譯的。用修訂版本代替原文的地方已在譯文中注標出。

          本文檔的英文版是唯一的正式版本。

          雖然譯者已為翻譯之精确付出努力,不足之處仍難免存在。歡迎來信指正。

          譯注的內容是非正式的,僅代表譯者個人觀點。

          著作權聲明位于:

http://www.w3.org/Consortium/Legal/copyright-documents.html

Copyright  © 1998 W3C® (MIT, INRIA, Keio ), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.

譯者: 徐涵(Collin Hsu)Traditional Chinese Code Conversion: Samuel Chong
時間: 首次發布于2003年7月2日/最后更新于2003年7月20日

 致謝

特別感謝Jonathan MarshDanny Ayers在本文檔的翻譯過程中給予的支持和幫助!

 

W3C

XML Base

W3C推荐標准    2001年6月27日

當前版本:

http://www.w3.org/TR/2001/REC-xmlbase-20010627/ (available in HTML, XML)

最新版本:

http://www.w3.org/TR/xmlbase/

上一版本:

http://www.w3.org/TR/2000/PR-xmlbase-20001220/

編者:

         Jonathan Marsh, Microsoft mailto:jmarsh@microsoft.com

 


摘要

本文檔提出了一种為XML文檔中的某些部分[譯注//這里的某些部分特指元素、文檔實体和外部實体,不是泛指XML文檔中的任何部分。]定義基准URIs(base URIs)的机制(類似于HTML BASE)。

 

本文檔的狀態

本文檔已經過 W3C 成員和其他相關方面(interested parties)的審閱,并已被W3C Director[譯注//Director是W3C組織的最高行政職位,目前由Tim Berners-Lee擔任。]批准為 W3C推荐標准(W3C Recommendation)。本文檔是穩定的(stable)。這意味著本文檔可被用作參考資料或其他文檔的規范性參考文獻(normative reference)。W3C 制定推荐標准的任務是使之受到關注,并促使其被廣泛使用。這將增強Web的功能性(functionality)与互操作性(interoperablity)。

 

本文檔是W3C XML Linking工作組(Working Group)的工作成果。這項工作是W3C Architecture Domain中的XML Activity[譯注//Activity指的是W3C工作的一個領域]的一部分。關于這項工作的背景,請參見XML Activity Statement

 

如果發現本文檔[譯注//指原英文文檔]的錯誤,請發送錯誤報告至公開郵件列表www-xml-linking-comments@w3.org (該郵件列表的歷史記錄存放于http://lists.w3.org/Archives/Public/www-xml-linking-comments/)。錯誤被确認以后,將被存檔于已知錯誤列表http://www.w3.org/2001/06/xmlbase-errata

 

本規范的英文版是唯一的規范性版本(normative version)。如果需要其他語言的版本,請訪問http://www.w3.org/2001/06/xmlbase-translations

 

W3C推荐標准及其他技術文檔(technical document)的最新列表可從以下网址獲得:http://www.w3.org/TR

 

目錄

1. 介紹

2. 術語

3. xml:base屬性

3.1 URI引用的編碼和轉義 

4. 相對URI的解析

4.1. 与RFC 2396的關系

4.2. 基准URI信息的粒度

4.3. URI与基准URI的匹配

5. 一致性

附錄

A: 參考資料

B: 參考資料(非規范性的)

C: 對其他標准的影響(非規范性的)

 


1.        介紹(Introduction)

XML鏈接語言[XLink]定義了用于描述資源之間的鏈接(links)的XML构造元素(constructs)。對XLink的要求之一是:它應以一种一般的方式(a generic way)來支持HTML [HTML 4.01]中的鏈接构造元素(constructs)。HTML BASE元素(element)是XLink工作組已經考慮到的這樣一個构造元素。通過使用BASE元素,文檔作者可以顯式地為文檔指定一個基准URI(base URI),以解析指向外部圖像、小程序(applets)、表單(form)處理程序以及樣式表(style sheets)等資源的相對URIs。

 

本文檔描述了一种為XLink提供基准URI服務的机制。將其作為一個單獨的文檔,是為了讓其他使用了相對URI、但沒有基于XLink的XML應用也能夠利用它。實現這一机制,只需使用一個名為xml:base的XML屬性。

 

施用XML Base的方法是將其列入新規范(比如XLink和XML Infoset)的規范性參考資料。這樣,基于這些新規范的應用或規范便自動支持XML Base。如果一個應用,它基于的規范都沒有直接或間接地規范性引用XML Base,則在該應用中,xml:base屬性的狀態是無定義的。

 

2.        術語(Terminology)

[定義:在本規范中,must、must not、required、shall、shall not、should、should not、recommended、may以及optional等關鍵字符合[IETF RFC 2119]中的定義。]

 

在本規范中,術語base URI(基准URI)relative URI(相對URI)符合 [IETF RFC 2396]中的定義。

 

3.        xml:base屬性(xml:base Attribute)  

對于除文檔實体和外部實体以外的資源[譯注//也就是元素],可以通過在XML文檔中嵌入xml:base屬性為其指定基准URI。該屬性的值在經過編碼和轉義處理(參見3.1節)之后,可被看作是一個URI引用(URI Reference)(關于URI引用的定義,請參見RFC 2396[IETF RFC 2396])。

 

在XML命名空間[XML Names]中介紹過,支持命名空間的XML處理器(namespace-aware XML processors)將把前綴“xml”綁定到命名空間名(namespace name)http://www.w3.org/XML/1998/namespace上。注意,在不支持命名空間的XML處理器(non-namespace-aware processors)中,仍可以使用xml:base屬性。

 

下面是一個在包含XLink的文檔中使用xml:base屬性的例子。為了解釋xlink:href屬性中的相對URI引用,XLink規范性地參考了XML Base。

 

<?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>
      &n
bsp; <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:

l              "what's new"被解析為URI "http://example.org/today/new.xml"

l              "Hot Pick #1"被解析為URI "http://example.org/hotpicks/pick1.xml"

l              "Hot Pick #2"被解析為URI "http://example.org/hotpicks/pick2.xml"

l              "Hot Pick #3"被解析為URI "http://example.org/hotpicks/pick3.xml"

 

3.1.                    URI引用的編碼和轉義(URI Reference Encoding and Escaping)

xml:base屬性值的合法字符集和XML一樣,都是[Unicode]。但是,有些Unicode字符不允許出現在URI引用(URI Reference)中。因此,處理器必須對這些字符進行編碼和轉義處理,以得到一個合法的URI引用。

 

不允許在URI引用中出現的字符包括:所有的非ASCII字符,以及在[IETF RFC 2396]2.4節列出的字符中去掉 “#”、“%”和方括號符號后剩下的符號。必須按照下面的方式對這些非法字符進行轉義處理:

1.         將每個非法字符轉換為UTF-8格式[IETF RFC 2279](UTF-8用一個或多個字節來表示原來的字符)。

2.         對于每個与非法字符相應的字節[譯注//每個非法字符轉換為UTF-8格式后,有一個或多個与它相應的字節],按照URI轉義操作机制對它進行轉義(也就是說,轉換為%HH形式,這里HH是字節值的十六進制記法)。

3.         用最終的字符序列來替換原來的字符。

 

4.        相對URI的解析(Resolving Relative URIs)

4.1.         与RFC 2396的關系(Relation to RFC 2396)

RFC 2396 [IETF RFC 2396]規定了嵌入在文檔中的基准URI信息(base URI information)[譯注//注意基准URI信息与基准URI的區別。基准URI信息指的是xml:base屬性提供的信息,而基准URI是根据RFC 2396中的規則計算得到的URI。基准URI一定是絕對URI,而xml:base屬性的值則可能是相對URI也可能是絕對URI。]。确定基准URI的規則概括如下(以优先級高低排序):

1.        基准URI在文檔內容中被指定。

2.        基准URI是封裝實体(消息,文檔)的基准URI。

3.        基准URI是獲取當前實体的URI。

4.        基准URI由具体的應用場合定義。

注意:

在上述第二點和第三點中,術語“實体(entity)”特指RFC 2396中所使用的實体;而在本文檔的其余部分,術語“實体”均指XML中的實体。

 

本文檔詳細說明了將上述第一條規則用于在XML文檔中嵌入基准URI信息的細節。

 

4.2.         基准URI信息的粒度(Granularity of base URI information)

在XML文檔中,相對URI的解析總是相對于元素、文檔實体或外部實体的。對于更細粒度(比如:屬性、字符或實体)上的基准URI信息,則沒有規定。對于內部實体(無論是在內部子集中聲明還是在外部DTD中聲明)和外部實体中的獨立文本(即不被任何元素包含的文本),它們的基准URI与相應的實体引用所具有的基准URI是一樣的。

 

文檔實体(或外部實体)的基准URI是根据RFC 2396中的規則來确定的,即文檔實体(或外部實体)的基准URI就是被用來獲得該文檔實体(或外部實体)的URI。

 

某個具体元素的基准URI是:

 

1.        由該元素的xml:base屬性指定的。如果該元素沒有xml:base屬性的話,則是

2.        該元素的在文檔實体[譯注//“實体”二字是參照2002年10月21日發布的勘誤添加上去的。] (或外部實体)內部的父元素的基准URI。如果不存在這樣的父元素的話,則是

3.        包含該元素的文檔實体或外部實体的基准URI。

 

4.3.         URI与基准URI的匹配(Matching URIs with base URIs)

對于XML文檔中某個具体的相對URI,根据下面的規則确定它的基准URI:

1.        對于文本內容(text content)中的URI引用,其基准URI是包含該文本的元素的基准URI。

2.        對于xml:base屬性中的URI引用,其基准URI是擁有該xml:base屬性的元素在文檔實体(或外部實体)內部的父元素的基准URI。如果不存在這樣的父元素,則其基准URI是包含該元素的文檔實体(或外部實体)的基准URI。

3.        對于其他屬性中的URI引用(包括缺省的屬性值),其基准URI是擁有該屬性的元素的基准URI。

4.        對于PI中的URI引用,其基准URI是該PI在文檔實体(或外部實体)內部的父元素的基准URI。如果不存在這樣的父元素,則其基准URI是包含該PI的文檔實体(或外部實体)的基准URI。

 

注意:[譯注//下面這段文字的英文原文采用的是2003年1月23日發布的修正版本]

如果xml:base屬性的值沒有在XML文檔實体中被直接給出,而是通過缺省屬性給出的話,則可能會導致一些意外的結果。比如,那些基于無驗証的XML處理器(non-validating XML processor)的軟件可能不會讀取外部實体中的缺省屬性聲明。通過外部机制(比如XML Schema)實現屬性的缺省也可能會導致一些意外的結果;即使應用使用的是一個有驗証的處理器(validating processor),在信息集(infoset)的創建之后,增加缺省屬性會導致xml:base屬性与信息集中的屬性[base URI]不一致。由于這些原因,xml:base屬性的值應該直接在XML文檔實例中給出,或者通過在DTD內部子集中聲明的缺省屬性來給出。

 

5.        一致性(Conformance)

如果一個應用根据本規范來計算基准URI,則它符合XML Base。

A.       參考資料

IETF RFC 2119

RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (See http://www.ietf.org/rfc/rfc2119.txt)

IETF RFC 2279

RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998.

(See http://www.ietf.org/rfc/rfc2279.txt)

IETF RFC 2396 [譯注//推荐閱讀]

RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995.

(See http://www.ietf.org/rfc/rfc2396.txt)

IETF RFC 2732

RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999.

(See http://www.ietf.org/rfc/rfc2732.txt)

Unicode

The Unicode Standard. The Unicode Consortium.

(See http://www.unicode.org/unicode/standard/standard.html)

XML

Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000.

(See http://www.w3.org/TR/2000/REC-xml-20001006)

XML Names

Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999.

(See http://www.w3.org/TR/1999/REC-xml-names-19990114/)

B.       參考資料(非規范性的)

HTML 4.01

Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. HTML 4.01 Specification. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-html401-19991224/.)

XLink

Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. XML Linking Language (XLink). World Wide Web Consortium, 2000.

(See http://www.w3.org/TR/2001/REC-xlink-20010627/.)

XML Datatypes

Paul V. Biron, Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium Working Draft. (See http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.)

XHTML

Steven Pemberton, et al. XHTML(TM) 1.0: The Extensible HyperText Markup Language. World Wide Web Consortium, 2000. (See http://www.w3.org/TR/2000/REC-xhtml1-20000126/.)

XML Infoset

John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/2001/CR-xml-infoset-20010514/)

XPath

James Clark and Steven DeRose, editors. XML Path Language World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-xpath-19991116.)

XSLT

James Clark, editor. XSL Transformations. World Wide Web Consortium, 1999.

(See http://www.w3.org/TR/1999/REC-xslt-19991116.)

C.      對其他標准的影響(非規范性的)

XML Base定義了一种在XML文檔中嵌入基准URI信息的机制。但XML Base沒有定義一种識別哪些內容或屬性值可能含有URI的机制。只有為這些詞匯指派了語義的規范和應用才知道這些信息。

 

XML Base的目標是:未來的規范和對XML詞匯的修訂識別出XML文檔中的哪些部分可被看作是URI,并對本規范進行規范性引用,以确保相對URI在整個XML文檔中被一致地處理。

 

XML Base對其他標准(到本文檔發布之日為止)的影響如下:

l          XML 1.0 [XML]用URI引用作為標識外部實体的系統標識符(system identifier)。由于外部實体聲明出現在文檔元素(document element)的外部(DTD的內部或外部子集中),因此這些外部實体聲明中的URIs不在xml:base屬性值的作用范圍之內。

l          XML Infoset[XML Infoset]為各元素信息項(element information items)定義了base URI屬性。為了确定這個屬性的值,最新版本的Infoset規范支持了XML Base。引用了這個infoset屬性的接口、應用和規范將自動支持XML Base。

l          XML命名空間(Namespaces in XML)[XML Names]使用了URI引用。在當前的版本中,對那些被用來標識命名空間的URI引用的解析不應相對于xml:base定義的基准URI。XML命名空間規范中沒有涉及那些解除引用(dereference)命名空間URI[譯注//即試圖(比如在瀏覽器中)訪問命名空間URI。關于解除引用(dereference)的解釋,請參見W3C工作草案Architecture of the World Wide Web]的高層處理。但可能會規定使用xml:base來獲得那些URI所指向的資源。

l          XPath [XPath]數据模型沒有保留基准URI信息,也沒有保留外部實体的邊界。因此,盡管這些外部實体能被正确解析,但對于其中的相對URI引用(包括xml:base屬性中的相對URI引用),XPath卻無法解析。

l          XSLT[XSLT]對XPath數据模型(data model)的擴展規定了要被保留的基准URI信息,但是這一信息的定義排斥了對XML Base的支持。未來版本的XSLT也許希望要求支持XML Base。

l          XML模式 第二部分:數据類型(XML Schema Part 2: Datatypes)[XML Datatypes]定義了一個uriReference簡單數据類型(primitive datatype)。XML數据類型規范也許想要求那些識別這個數据類型并解析這個URI的應用了解XML Base。

l          XLink[XLink]規范需要對XML Base的支持。

l          XHTML[XHTML]中使用的URI引用超出了XLink所規定的范圍。應用可能會根据XML Base定義的基准URI來解析這些URI引用。XHTML規范也許希望描述它們對XML Base支持的級別。

 

 

 
All contents copyright ? Los Angeles Chinese Learning Center, unless otherwise noted. Website Hosting and Promotion  Cortiloss, Cortislim, Enzyte, Ogoplex, 5 HTP, Chitosan, Stacker 2, Stacker 3, Stamina, Zantrex