0

只是想了解一下 RDF 语句。给定一些命名空间:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:ex="http://example.org/#"
     xmlns:people="http://example.org/people/#"
>

语句之间有什么区别:

<rdf:Description rdf:about="people:James_Brown">
    <rdf:type rdf:resource="ex:person"> 
</rdf:Description>

和:

<ex:person rdf:resource="people:James_Browm" />
4

2 回答 2

5

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:ex="http://example.org/#"
     xmlns:people="http://example.org/people/#"
>
<ex:person rdf:resource="people:James_Browm" />
</rdf:RDF>

W3C 验证器返回:

Error: {E201} rdf:resource not allowed as attribute here.[Line = 6, Column = 48]

它应该是:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:ex="http://example.org/#"
     xmlns:people="http://example.org/people/#"
>
<ex:person rdf:about="people:James_Browm" />
</rdf:RDF>

RDF 是三元组(主题、谓词、宾语),@resource 是主题的 URI。

于 2012-07-26T17:21:57.977 回答
1

我不知道你想表达什么样的观点,但我很确定这两种说法彼此完全不同。命名空间通常是附加到标签的前缀,例如<c:name>Bill Gates</c:name>在这种情况下命名空间是 c。您正试图以某种方式将名称空间组合到您的实际节点的值中,这不是正确的方法。每当您在引号中引用某些内容时"people:James_Brown"您是说将整个语句视为该节点的值。因此,您在内部拥有的任何命名空间引用都是无用的。命名空间更多地用于将一组节点组合在一起,而不是像您所做的那样尝试标记每个数据条目。我建议四处浏览并寻找一些示例 XML 文档以查看名称空间/值关系,因为我认为您在这里拥有的不是标准的。再说一次,我也是新手,可能完全错了。

于 2012-07-26T17:20:01.720 回答