Как указать сопоставления из проприетарной БД в XML? - PullRequest
0 голосов
/ 08 сентября 2010

Я пишу программный пакет, работа которого заключается в экспорте данных БД из основного продукта моей компании в произвольные форматы XML (для взаимодействия с другими приложениями). Следующим может быть разбор произвольных файлов данных XML в нашу базу данных.Я пишу на C / C ++, и база данных продукта хранится в виде файлов Pervasive BTRV в проприетарном формате.

Мне нужно написать формат отображения, который может отображать наши внутренние элементы данных в XML, так что если мойэкспортному пакету предоставляется файл сопоставления, он создаст желаемый выходной файл XML из содержимого базы данных.Какие стратегии или инструменты вы бы порекомендовали мне использовать для достижения этой цели?

Некоторые варианты, которые я рассмотрел:

  1. Разработка общей схемы экспорта XML для продукта, а затем написание файлов XSLT для преобразования этого формата.в произвольные файлы XML.
  2. Написать файл схемы XSD, который определяет структуру выходного файла, и разработать набор инструкций по обработке, которые сообщают моему пакету, какие элементы данных идут в какие элементы.

Я считаю себя новичком в использовании XML;Я знаком с XSLT и XPath и начинаю изучать Schema, но могут быть очевидные инструменты для решения этой проблемы, которые мне не хватает.

( Update, 8: 14p PDT :Пакет, который я пишу, предназначен для подключения к нашему универсальному внешнему интерфейсу для использования при экспорте данных, которые будут использоваться другими приложениями. При стандартном использовании, когда подмножество базы данных изменяется или «завершается», это подмножество будетавтоматически экспортируется в формат, понятный другому приложению. Я пытаюсь расширить модуль внешнего интерфейса, чтобы дать ему возможность выводить эти «завершенные» элементы данных в XML.

Моя задача - определить методуказания формата XML, которого ожидает другая система. Поскольку целевая схема может сильно различаться в разных приложениях, мне нужно решение, которое может обрабатывать различные возможные схемы XML, а также решение, которое легко настраивать / поддерживать для каждого интерфейса.

Код, который будет вызывать мой код, обрабатываетСодержит элементы базы данных в виде серии вложенных контейнеров и предоставляет хуки для форматирования каждого вложенного слоя.Эти хуки кажутся очень похожими на атрибут match наИменно это и привело меня к рассмотрению XSLT как возможного решения.)

1 Ответ

0 голосов
/ 08 сентября 2010

Я бы порекомендовал вывести вашу базу данных в файл XML и использовать XSLT для преобразования ее в любой формат XML, который требуется другой стороне, с использованием разных таблиц стилей XSLT для каждого преобразования. Таким образом, вам нужно будет только изменить файлы XSLT для взаимодействия с различными приложениями.

Если вы используете процессор с поддержкой схемы или такой инструмент, как Altova XMLSpy, я рекомендую вам создать схему для файла XML вашей базы данных. Это экономит вам много волос. Если XML другой стороны сложен, я бы также создал схему для этого.

Преимущества схем, помимо проверки ваших файлов и лучшего понимания структуры, заключаются в том, что такой инструмент, как XMLSpy, автоматически поможет вам с полями, поможет с XPath и так далее. Кроме того, такой инструмент, как MapForce, даже создает XSLT для вас, если вы предоставите ему две схемы (еще не пробовали).

...