2

我们有一个需求,我们需要将给定的 rdf 文件转换为特定的 xml 文件。所以我们有三个输入 RDFS 文件、RDF 文件和 XSD 文件。有了这些,我们需要创建包含 RDF 文件数据的 XML 文件(应该符合 XSD)。RDF 模式包含简单、复杂的关系实体。RDF 中定义的关系不同于 XSD 中定义的关系。

我们看到了几种实现相同的方法:

  1. 创建一个 XSLT,定义将 RDF 文件转换为 XML 文件的逻辑。
  2. 构建自定义 C# 应用程序。做同样的事情(使用 RDF 库,如 LinqToRDF 等)

请指导哪个选项会更好以及任何相同的指针。

问候,

4

2 回答 2

0

XSLT 通常不适合将 RDF/XML 转换为其他格式,因为相同的 RDF 数据可以以不同的方式在 RDF/XML 中编码。

因此,除非您的 RDF/XML 输入受到严格控制,否则纯 XSLT 转换通常非常困难且难以维护。

对于 RDF 的 C# 操作,您可能想尝试dotNetRDF免责声明 - 我开发了库),它为您提供了在 Triple 级别使用 RDF 的 API。如果您的 RDF 中有规则的重复结构,那么提取该数据的最简单方法是使用 SPARQL 查询从 RDF 中获取与您相关的数据。一旦获得结果(在结构上类似于 DataTable 并且可以转换为 DataTable,如果这对您来说更容易使用),您就可以根据需要生成 XML 文件。

如果这看起来对您来说可能是一个可行的选择,那么如果您需要任何帮助/建议,请随时在项目邮件列表中给我发一封电子邮件。

于 2011-04-12T14:10:30.033 回答
0

首先:这不是一个“要么……要么”的决定。您可以轻松地将 XSLT 转换与自定义 C# 代码相结合。那说:

根据我的经验,如果转换不包含太多逻辑,XSLT 是一个不错的选择。重命名标签、展平或重新排列层次结构……使用 XSLT 很容易,但如果您需要“if-then-else”逻辑,例如“创建标签 A if 的值……但仅当 . .. 否则创建标签 B"。

这句话

RDF 中定义的关系不同于 XSD 中定义的关系。

听起来像是一个复杂的转换,其中涉及相当多的“if-then-else”和“look up”逻辑。在那种情况下,我可能会选择更以 C# 为中心的解决方案。

于 2011-04-12T05:37:32.643 回答