2008-09-17 15 views
4

Я рассматриваю Altova MapForce (или что-то подобное) для создания класса XSLT и/или Java или C# для перевода. Сегодня мы извлекаем данные прямо из базы данных и вручную создаем XML-строку, которую мы отправляем в веб-сервис.Сопоставление внутренних элементов данных с XML-схемой внешних поставщиков

Должен ли быть db -> (внутренний) XML -> XSLT -> (внешний) XML? Что вы делаете в мире?

ответ

3

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

На рынке существует множество редакторов XSLT, которые помогут вам выполнять сопоставления, но я предпочитаю использовать обычный редактор XML.

1

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

Удалите более дорогие варианты (например, BizTalk), если вам действительно не нужна интеграция и оркестровка B2B.

+0

Да, BizTalk слишком дорога, хотя, по правде говоря, мы могли бы использовать некоторые функциональные возможности (я думаю).Кажется, что XSLT - это приятное решение для средних групп. Но мне нужно сделать некоторые перфекционные тесты. Наш исходный XML относительно небольшой по размеру. – BryanB 2008-09-17 03:28:35

0

Что вы используете? У Oracle есть хорошие инструменты для сопоставления XML. Есть некоторые инструменты привязки Java (один - http://java.sun.com/developer/technicalArticles/WebServices/jaxb). Однако, если у вас есть роскошь, подумайте об использовании Ruby, у которого есть хорошие встроенные методы «to_xml».

+0

мы используем Sql Server 2005. В первую очередь мы являемся магазином CF с некоторыми склонностями к .NET в ближайшем будущем. – BryanB 2008-09-17 03:25:46

0

Совет № 1: Избегайте использования XSLT.

Инструмент поддержки сосет. Полученное решение будет недостижимым.

Совет № 2: Исключите все ненужные шаги.

Просто переведите ваш набор результатов (при условии, что вы используете JDBC или equiv) для исходящего XML.

Совет № 3: Предположим, что все использование инструмента на основе схемы является неправильным и соответствующим образом спланировано.

Другими словами, просто подделайте его. Если вам нужно выбросить какую-то мутантную SOAP (избыточную, я знаю) полезную нагрузку, просто макет рабочего SOAP-сообщения, а затем превратить его в шаблон. Скорость не сосать.

Это, лучший/правильный ответ, заключается в использовании решения стиля «XML Writer». Есть несколько.

Лучшее, что я написал, LOX (Lightweight Objects for XML).

Открытый API использует шаблон проектирования Builder. Из-за некоторой магии под капотом невозможно создать искаженный XML.

Обратите внимание: Если XML является ответом, вы задали неправильный вопрос. Иногда мы вынуждены противостоять нашей воле, чтобы использовать ее в некотором роде. Когда это происходит, крайне важно использовать инструменты, которые минимизируют усилия разработчиков и улучшают обслуживание кода.

+0

re: «если xml - это ответ» - ссылаетесь ли вы на использование xml в качестве промежуточного, внутреннего, формата для наших данных или в качестве исходящего формата? Если последнее, то да, мы вынуждены использовать его. xml как промежуточный, вероятно, мне нужна гибкость и удар по стене YAGNI ... – BryanB 2008-09-17 11:22:37

 Смежные вопросы

  • Нет связанных вопросов^_^