使用自己的标签而不是<;是否正确;rdf:Description/>;为了限制一些资源? 例如,考虑下面的例子 <?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn"> <dc:title>Tony Benn</dc:title> <dc:publisher>Wikipedia</dc:publisher> </rdf:Description> </rdf:RDF> 托尼·本 维基百科

使用自己的标签而不是<;是否正确;rdf:Description/>;为了限制一些资源? 例如,考虑下面的例子 <?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn"> <dc:title>Tony Benn</dc:title> <dc:publisher>Wikipedia</dc:publisher> </rdf:Description> </rdf:RDF> 托尼·本 维基百科,xml,rdf,Xml,Rdf,这里我们描述资源。我们知道他是一个人。 使用自己的标记而不是是正确的/可能的? 例如,像这样: <?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:z="http://www.zebooka.com/"> <z:Person

这里我们描述资源。我们知道他是一个人。 使用自己的标记而不是是正确的/可能的? 例如,像这样:

<?xml version="1.0" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:z="http://www.zebooka.com/">
    <z:Person rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
        <dc:title>Tony Benn</dc:title>
        <dc:publisher>Wikipedia</dc:publisher>
    </z:Person>
</rdf:RDF>

托尼·本
维基百科

稍后,我将回答您关于更改元素名称或至少其含义的问题。但是,我想指出,description元素描述的是一个文档,而不是那个人。我将添加一个person元素来获取您正在寻找的符合已在使用的模式的元信息。文档的主题是一个人或此人的姓名,dc命名空间定义了一个主题元素。这是我建议的解决方案,我能从您的问题中收集到的是您的用例

否则,如果这个解决方案对您来说不可行,这里有一点关于从这里开始的更多信息。首先,您需要检查示例中由rdf名称空间定义的方案。如果RDF元素包含允许任何名称空间的任意元素定义,那么这是可能的。可能还有其他更高级的方案概念,允许您进行所需的扩展,例如允许替换组的描述。在这个网站上有两个例子,使用搜索

只有在考虑互操作性的情况下,您可以通过替换组进行扩展,这才是真正可行的。使用没有取代基的新元素似乎很简单。但是,如果您希望通过兼容的实现来创建和传输文档,那么解析器不会对该数据进行相同的处理,因为它不知道元素的语义。如果您正在为处理XML的端点编写代码,那么您可以做任何您想做的事情,而不需要验证文档或根据您自己的相似性进行验证。不过,这需要比遵守这些类型的模式做更多的工作

如果将元素名称更改为模式中已定义的元素(没有替换组),则数据将无法与外部源进行互操作。在最好的情况下,外部供应商会删除自定义元素中的所有数据,在最坏的情况下,它根本不会读取或处理任何数据。元素描述似乎可以接受任何其他元素(我无法验证,因为模式的URL现在已关闭),因此我建议为描述定义自己的子元素,例如type,如果您需要此信息,如果您的目标是使用自己定义的元素,则可以包含value person。这样,如果不理解该元素,退出的实现可能会忽略该元素,但同时不会丢失所有其他信息


如果您担心数据在表示层上的外观,我建议您在此时使用xslt转换或任何最适合您的视图的方法来转换数据。没有必要改变数据模型

稍后,我将回答您关于更改元素名称的问题,或者至少更改其含义的问题。但是,我想指出,description元素描述的是一个文档,而不是那个人。我将添加一个person元素来获取您正在寻找的符合已在使用的模式的元信息。文档的主题是一个人或此人的姓名,dc命名空间定义了一个主题元素。这是我建议的解决方案,我能从您的问题中收集到的是您的用例

<z:Person
  xmlns:z="http://www.zebooka.com/" 
  rdf:about="http://en.wikipedia.org/wiki/Tony_Benn" />
否则,如果这个解决方案对您来说不可行,这里有一点关于从这里开始的更多信息。首先,您需要检查示例中由rdf名称空间定义的方案。如果RDF元素包含允许任何名称空间的任意元素定义,那么这是可能的。可能还有其他更高级的方案概念,允许您进行所需的扩展,例如允许替换组的描述。在这个网站上有两个例子,使用搜索

只有在考虑互操作性的情况下,您可以通过替换组进行扩展,这才是真正可行的。使用没有取代基的新元素似乎很简单。但是,如果您希望通过兼容的实现来创建和传输文档,那么解析器不会对该数据进行相同的处理,因为它不知道元素的语义。如果您正在为处理XML的端点编写代码,那么您可以做任何您想做的事情,而不需要验证文档或根据您自己的相似性进行验证。不过,这需要比遵守这些类型的模式做更多的工作

如果将元素名称更改为模式中已定义的元素(没有替换组),则数据将无法与外部源进行互操作。在最好的情况下,外部供应商会删除自定义元素中的所有数据,在最坏的情况下,它根本不会读取或处理任何数据。元素描述似乎可以接受任何其他元素(我无法验证,因为模式的URL现在已关闭),因此我建议为描述定义自己的子元素,例如type,如果您需要此信息,如果您的目标是使用自己定义的元素,则可以包含value person。这样,如果不理解该元素,退出的实现可能会忽略该元素,但同时不会丢失所有其他信息

如果您担心数据在表示层上的外观,我建议您在此时使用xslt转换或任何最适合您的视图的方法来转换数据。没有必要改变数据模型


<z:Person
  xmlns:z="http://www.zebooka.com/" 
  rdf:about="http://en.wikipedia.org/wiki/Tony_Benn" />
是一样的,因为

<rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
    <rdf:type rdf:resource="http://www.zebooka.com/Person" />
</rdf:Description>

只要确保
http://www.zebooka.com/Person
及其源类型
rdfs:Class