试图让我的头脑围绕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" />
答案 0 :(得分: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>
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。
答案 1 :(得分:1)
我不知道你试图做出什么样的观点,但我很确定这两种说法完全不同。命名空间通常是附加到<c:name>Bill Gates</c:name>
之类的标记的前缀,在这种情况下,命名空间就是c。您试图以某种方式将名称空间组合到实际节点的值中,这不是正确的方法。每当你有像"people:James_Brown"
这样的引号时,你会说这个整个语句都是这个节点的值。因此,您内部的任何命名空间引用都是无用的。命名空间更多地用于将一组节点分组在一起,而不是像您一样尝试标记每个数据条目。我建议浏览并寻找一些示例XML文档来查看命名空间/值关系,因为我不认为这里有什么是标准的。然后我又是新人,可能完全错了。