如何在XSLT樣式表中宣告命名空間

2021-06-27 11:03:43 字數 1627 閱讀 8570

xml技術確實是相當好,但其中的命名空間這個部分除外。事實上,幾乎所有xml開發人員都表示命名空間(namespace)的加入導致的麻煩遠甚於它原本可以帶來的好處。

雖然很多人都在反饋這個問題,但要想更改這個標準卻不是那麼容易。有乙個事實就是現在確實有不少xml文件已經包含了各種各樣的命名空間。

接下來我有幾篇文章分別介紹命名空間給xml文件驗證、轉換、讀取帶來的麻煩,以及相應的對策。這一篇中講解的是,如何在樣式表中新增命名空間,讓它可以針對含有特殊命名空間的xml資料檔案。

首先,假設我們有如下乙份的xml資料檔案

<?

xml version="1.0" encoding="utf-8"

?>

<

order

xmlns:d

="">

<

d:orderid

>10248

d:orderid

>

<

d:orderdate

>2009-1-1

d:orderdate

>

order

>

這個xml文件其實很簡單,表示了乙個訂單。實際上,定義了乙個特殊的命名空間並沒有太大的作用。我這裡只是作為演示目的而加入的。

其次,我們要編寫乙個xslt檔案,準備為其進行轉換

<?xml version="1.0" encoding="utf-8"?>

訂單編號

訂購日期

請注意,紅色粗體的部分,就是說,為了與資料檔案匹配,我們必須加入相同的命名空間定義,並且在繫結元素的時候,也是要加入相應的名稱字首的

最後,我們可以直接在xml檔案中,新增對樣式表的引用。這樣它就可以直接在一些通用的xml閱讀器(例如ie)中開啟了

<?

xml version="1.0" encoding="utf-8"

?>

<?

xml-stylesheet type="text/xsl" href="xsltfile1.xslt"

?>

<

order

xmlns:d

="">

<

d:orderid

>10248

d:orderid

>

<

d:orderdate

>2009-1-1

d:orderdate

>

order

>

對於在試圖取消引用命名空間 uri 的內容時應當返回什麼內容存在著爭論,這導致在 xml 領域中引起富有爭議的辯論,並且還成為 w3c 的 technical architecture group 目前爭論的焦點。當前版本的 xml 命名空間建議不要求命名空間 uri 實際上是可解析的,因為命名空間 uri 應當只是乙個用作唯一識別符號的命名空間名稱,而不是資源在 internet 上的位置。

tim bray(xml 語言和 xml 命名空間建議最初的編輯之一)已經撰寫了一篇詳盡的**,論述有關命名空間 uri 和命名空間文件的問題,可以(或者也許不可以)從 uri 中檢索到這些文件。此文包含在建立資源目錄描述語言 (rddl) 時涉及到的許多推理。rddl 設計用於建立命名空間文件。

**:

如何引用CSS樣式表

當瀏覽器讀到乙個樣式表,它就會按照這個樣式表來對文件進行格式化。有以下三種方式來插入樣式表 當樣式需要被應用到很多頁面的時候,外部樣式表將是理想的選擇。使用外部樣式表,你就可以通過更改乙個檔案來改變整個站點的外觀。head link rel stylesheet type text css href...

深入XSLT第六章 聯合樣式表

深入xslt第六章 聯合樣式表 xsl提供兩種機制來聯合樣式表 1.樣式表匯入,允許樣式表之間相互引用 2.樣式表包含,允許樣式表被原文組合 樣式表匯入 乙個 xsl樣式表可以包含 xsl import 元素.所有 xsl import 元素必須出現在樣式表的開頭 xsl import 元素有乙個 ...

Css樣式表中 margin paddi

css樣式表中 margin padding和border 相淋 樣式表的精髓 margin和padding和border 一 padding 我們可以把加過樣式表的html標記看成是乙個盒子。對這個盒子中的內容控制,用到的樣式 padding 它又分為 padding left padding r...