为什么W3C RDF验证器用自己的RDF URI替换?

时间:2014-11-12 04:51:30

标签: validation rdf w3c-validation

我们假设我们在http://www.w3.org/RDF/Validator/向W3C RDF验证器输入以下RDF代码。

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#">

  <rdf:Description rdf:about="949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>

一旦我要求解析RDF代码,我发现在三元组中,RDF URI已被替换为验证器的URI。

enter image description here

三元组的主题不应该是http://www.w3.org/1999/02/22-rdf-syntax-ns#949352吗?

为什么验证器会这样做?

1 个答案:

答案 0 :(得分:6)

rdf:about attribute将IRI作为值。

您有949352作为值,这是相对IRI。它将被解析为基础文档的IRI(在您的情况下是验证器)。

例如,您可以提供绝对IRI(示例1),或指定xml:base(示例2)。

示例1:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#">

  <rdf:Description rdf:about="http://my-site.example.com/my-page/949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>

示例2:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#"
    xml:base="http://my-site.example.com/my-page/">

  <rdf:Description rdf:about="949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>