2016-03-17 229 views
0

QNames/CURI的本地部分是否允許使用非拉丁字符? 我有以下前綴定義:@prefix namespace <http://example.org/namespace/> .國際化QNames/CURIs

而下面的URI:

<http://example.org/namespace/Sense_en_aircraft> 
<http://example.org/namespace/Sense_ru_аэроплан> 

都是正確的QName?:namespace:Sense_en_aircraftnamespace:Sense_ru_аэроплан

這對我來說並不很清楚。 可能的來源:https://www.w3.org/2001/tag/doc/qnameidshttps://www.w3.org/TR/xml/https://www.w3.org/TR/curie/和RFC3987

回答

1

爲的QName和居里規則是相當相互無關的,所以這實際上是兩個獨立的問題。

術語QName具有幾個不同的含義,具體取決於您所指的規範,但它本質上是一個包含前綴,本地部分和名稱空間的三元組。前綴和本地部分都被定義爲NCNames,並且可以絕對包含非拉丁字符;確切的字符集取決於您引用的XML規範的哪個版本/版本。

命名空間部分允許的內容有點含糊不清。在Namespaces 1.0規範中,名稱空間名稱被定義爲URI引用(如RFC 3986中所定義);在命名空間1.1中被定義爲IRI(如RFC 3987中定義的)。 IRI當然可以包含非拉丁字母,但URI不能。但是,這兩份文件的一致性聲明聲明文檔符合條件,並且這些條件不包括命名空間名稱是有效的URI或IRI的要求。我明白這個疏忽是故意的。因此大多數處理QNames的軟件都接受任何字符串作爲合法的名稱空間名稱。