我需要xslt版本2在記錄或元素級別爲「xml」屬性前綴(xml:lang =「en-us」)生成域名:強制xslt生成「xml」域名
xmlns:xml="http://www.w3.org/XML/1998/namespace"
我試圖同時使用XSL:命名空間,並使用XSL:屬性...命名空間=
不論是對於我的工作 - 任何建議將是了不起的 感謝大衛
我需要xslt版本2在記錄或元素級別爲「xml」屬性前綴(xml:lang =「en-us」)生成域名:強制xslt生成「xml」域名
xmlns:xml="http://www.w3.org/XML/1998/namespace"
我試圖同時使用XSL:命名空間,並使用XSL:屬性...命名空間=
不論是對於我的工作 - 任何建議將是了不起的 感謝大衛
據http://www.w3.org/TR/REC-xml-names/#ns-decl「的前綴xml
由定義綁定到命名空間名稱http://www.w3.org/XML/1998/namespace
。它可以,但不必被聲明,也不能綁定到任何其他名稱空間名稱。「所以,雖然你當然可以在字面結果元素上使用該名稱空間,或者用xsl:namespace
輸出它,但我認爲不能保證串行器輸出它忽略它不改變XML的語義。
正如馬丁已經解釋的,前綴xml:
已經與命名空間URI http://www.w3.org/XML/1998/namespace
宣佈在一起。你可以把它看作
xmlns:xml="http://www.w3.org/XML/1998/namespace"
但作爲隱含的聲明在所有XML文檔中都可用,並且被所有符合的聲明ant XML應用程序。
因此,您的問題的答案是:您根本不需要聲明前綴xml:
,它可以默認使用。您可以使用attributes in this namespace(xml:lang
,xml:space
,和xml:id
)而不聲明其前綴。
順便說一句,你可以自己試試。只要沒有任何名稱空間聲明創建一個XML文件,並在其中使用xml:lang
作爲一個屬性:
<?xml version="1.0" encoding="UTF-8"?>
<root xml:lang="en"/>
沒有XML處理器會抱怨,甚至沒有你的XSLT引擎。
它被稱爲xml命名空間,而不是domian – PhillyNJ