快速业务通道

使用Java技术将Atom转换为RDF - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
nnel");  xmlw.writeAttribute(RDF_PREFIX, RDF_URI, "about",   "http://www.twitter.com");  xmlw.writeCharacters("\n");  xmlw.writeCharacters("     ");  xmlw.writeStartElement("title");  xmlw.writeCharacters(channel.getTitle());  xmlw.writeEndElement();  xmlw.writeCharacters("\n");  xmlw.writeCharacters("     ");  xmlw.writeStartElement("description");  xmlw.writeCharacters(channel.getDescription());  xmlw.writeEndElement();  xmlw.writeCharacters("\n");  xmlw.writeCharacters("     "); ...

这是您第二次在输出中看到 about 属性。了解它为什么在那里很重要,其原因是 about 属性定义 “主语-谓语-宾语” 三元组中的主语。在这个例子中主语是一个 URL(这种情况很普遍)。每个子元素(比如 <title>)代表一个谓语。每个元素的内容是宾语。

在两个格式化行之后,创建 <title> 元素并使用从 Atom 提要收集的标题填充,然后创建 <description> 元素等。

即使 清单 10 中只提供了两个元素,您可能还是注意到了一种模式出现。首先创建一个元素,然后使用来自 Channel 对象的内容填充这个元素,然后元素结束。这个过程将对包含在 Channel 对象中的所有数据重复。

使用Java技术将Atom转换为RDF(7)

时间:2009-10-14 ibm Brian M. Carey

为了使事情更直观,Channel 对象中的属性名称与 <channel> 节中的元素名称相同,这使在代码和输出之间进行正确映射更加容易。

在 清单 11 中,writeItems() 方法有一些不同,因为它不是写一个节,而是很多节。它对 Atom 提要中的每个 <entry> 元素写一个节。指向该方法开始处的 for 循环确保这一点得以实现。

清单 11. writeItems() 方法

  private void writeItems(XMLStreamWriter xmlw) throws Exception {    xmlw.writeCharacters("\n");    xmlw.writeCharacters("  ");  for (Item item : itemList) {  xmlw.writeStartElement("item");  xmlw.writeAttribute(RDF_PREFIX, RDF_URI,   "about", item.getLink());  xmlw.writeCharacters("\n");  xmlw.writeCharacters("     ");  xmlw.writeStartElement(DUBLIN_CORE_PREFIX,"format",   DUBLIN_CORE_URI);  xmlw.writeCharacters(item.getFormat());  xmlw.writeEndElement();  xmlw.writeCharacters("\n");  xmlw.writeCharacters("     "); ...

对于 itemList 中的每个 Item 对象,将创建一个新的 <item> 元素。同样,一个特定于名称空间的 about 属性指向该文档的链接。在这个例子中,这个链接指向 Twitter 上的一个特定用户的一篇文章。

经过一些格式化之后,创建了一个称为 format 的子元素。这个 format 元素描述文档中的输出格式。在这里,这个元素是 text/html 格式。注意,这里使用了 Dublin Core 元数据而不是 RDF Site Syndication 标准或 RDF 标准指定的元数据。那是因为这两种标准都不支持定义文档格式。

在以上代码块中,出现了一种模式。对于 Item 类中的每个属性,一个新元素被创建并关联到一个与该属性名对应的元素。

总之,这就是那段代码,现在让我们来看看它实际上是否像所说的那样有效。

测试代码

将包含本文的这个压缩文件 — AtomToRdf.zip — 解压到您选择的一个测试目录。您将看到已经大致介绍过的三个文件

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号