QNames/CURIs的本地部分是否允许使用非拉丁语字符?我有以下前缀定义:@prefix namespace <http://example.org/namespace/> .
和下列URI:
<http://example.org/namespace/Sense_en_aircraft>
<http://example.org/namespace/Sense_ru_аэроплан>QNames都是正确的吗?:namespace:Sense_en_aircraft和namespace:Sense_ru_аэроплан
这对我来说不是很清楚。可能来源:https://www.w3.org/2001/tag/doc/qnameids、https://www.w3.org/TR/xml/、https://www.w3.org/TR/curie/和RFC3987
发布于 2016-03-17 21:06:25
QNames和CURIEs的规则是完全不相关的,所以这实际上是两个独立的问题。
术语QName有几个不同的含义,取决于您所指的规范,但它本质上是一个由前缀、局部部分和命名空间组成的三重结构。前缀和本地部分都被定义为NCNames,并且可以非常肯定地包含非拉丁字符;确切的字符集取决于您引用的XML规范的版本/版本。
在名称空间部分中允许使用什么的问题有点含糊。在名称空间1.0规范中,名称空间名称被定义为URI引用(如RFC 3986中定义的那样);在命名空间中,1.1被定义为IRI (如RFC 3987中所定义)。当然,虹膜可以包括非拉丁字母,但URI不能。但是,这两个文档的一致性语句都说明了文档符合的条件,并且这些条件不包括名称空间名称为有效URI或IRI的要求。据我所知,这一遗漏是故意的。因此,大多数处理QNames的软件都接受任何字符串作为合法的命名空间名称。
发布于 2021-04-06 21:57:31
然而,在我的经验中,许多RDF验证器或解析器都不会接受非拉丁字符,抱怨它们不是有效的QNames。编辑:虽然我相信这是真的,但下面给出的例子是无效的,我感谢@Peeja指出这一点。我会找一个有效的。
我今天看到的例子是通过https://www.w3.org/2015/03/ShExValidata/,它喜欢前两个示例,但不喜欢第三个示例。
dct:source <http://test.org/simple>;
dct:source <http://example.org/namespace/Sense_en_aircraft>;
dct:source <<http://example.org/namespace/Sense_ru_аэроплан>;https://stackoverflow.com/questions/36067584
复制相似问题