我们假设我们在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。
三元组的主题不应该是http://www.w3.org/1999/02/22-rdf-syntax-ns#949352
吗?
为什么验证器会这样做?
答案 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>