C # - преобразование файла RDF в конкретный файл XML - PullRequest
2 голосов
/ 12 апреля 2011

У нас есть требование, в котором нам нужно преобразовать данный rdf-файл в определенный xml-файл. Итак, у нас есть три входных файла RDFS, файл RDF и файл XSD. С их помощью нам нужно создать файл XML (который должен соответствовать XSD), содержащий данные файла RDF. Схема RDF содержит простые, сложные сущности отношений. Отношения, определенные в RDF, отличаются от отношений, определенных в XSD.

Мы видим несколько способов реализации одного и того же:

  1. Создайте XSLT, определяющий логику для преобразования файла RDF в файл XML.
  2. Создайте собственное приложение на C #. за то же самое (используя библиотеки RDF, такие как LinqToRDF и т. д.)

Пожалуйста, укажите, какой вариант будет лучше, и какие-либо указатели на него.

С уважением,

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

XSLT, как правило, плохая идея для преобразования RDF / XML в другие форматы, поскольку одни и те же данные RDF могут кодироваться в RDF / XML по-разному.

Таким образом, если ваш вход RDF / XML строго контролируется, чистое XSLT-преобразование обычно довольно сложно и трудно поддерживать.

Для C # манипулирования RDF вы можете попробовать dotNetRDF ( disclaimer - я разрабатываю библиотеку ), которая дает вам API для работы с RDF на уровне Triple. Если в вашем RDF есть регулярные повторяющиеся структуры, то самым простым способом извлечения этих данных будет использование запросов SPARQL, чтобы получить релевантные для вас данные из RDF. Если у вас есть результаты (которые похожи на DataTable по структуре и могут быть преобразованы в DataTable, если вам проще с ними работать), вы можете сгенерировать XML-файл по своему усмотрению.

Если это выглядит как приемлемый вариант для вас, не стесняйтесь, пишите мне по электронной почте в списки рассылки проекта, если вам нужна помощь / совет.

0 голосов
/ 12 апреля 2011

Прежде всего: это не решение "или ... или".Вы можете легко комбинировать XSLT-преобразование с пользовательским кодом C #.Тем не менее:

По моему опыту, XSLT - отличный выбор, если преобразование не содержит слишком много логики.Легко переименовывать теги, выравнивать или переупорядочивать иерархии, ... используя XSLT, но это может быть неприятно, если вам нужна логика типа if-then-else, создающая тег A, если значение ... но только если... else create tag B ".

Предложение

Отношения, определенные в RDF, отличаются от отношений, определенных в XSD.

звучит как сложное преобразование, которое включает в себя довольно логику «если бы потом» и «искать».В этом случае я бы, вероятно, выбрал более ориентированное на C # решение.

...