Инструмент для структурного объединения XSD? - PullRequest
0 голосов
/ 14 марта 2012

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

Я ищу инструмент, который может объединить эти схемы в одну "суперсхему", которая работает со всеми этими файлами XML.

Любые рекомендации?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2012

Я не знаю, насколько эффективным может быть слияние, так как было бы легко указать на пару вопросов, связанных с ним; например, предположим один и тот же XPath (к узлу) в двух (или более) разных XML; как должно работать слияние: сохранить оба узла как одноуровневые узлы; заменить одно на другое; сделать список из текстовых узлов (если применимо)? По моему мнению, вы в конечном итоге решаете множество вопросов, связанных с самим слиянием, а не просто позволяете XML говорить самим за себя.

На SO есть пост , который очень прост, но в нем показан один сценарий, с которым подход слияния не сможет справиться: если желаемый результат будет иметь выбор xsd :. Слияние контента в одном XML неизбежно приведет к созданию последовательности в выходном XSD.

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

Я нашел решение для вашего сценария, после того как слишком много раз столкнулся с проблемой быстрого запуска XSD, где образцы XML использовались в качестве моделей. Попробуйте этот инструмент ; есть команда XSD из XML на вкладке Инструменты , группа XML . (Я неравнодушен, так как я написал это). Я только попробовал это против поста, о котором я говорил выше, и, что не удивительно, это придумало ту же структуру. Сгенерированный XSD использует стиль разработки Russian Doll, поскольку ядро ​​ядра основано на XmlSchemaInference - другими словами, не вините меня в этом:) ..

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

0 голосов
/ 14 марта 2012

Другой подход может заключаться в том, что вы объединяете все XML-файлы в 1. Существуют инструменты сравнения / слияния, которые изначально поддерживают слияние XML.Хотя, если у вас есть n XML-файлов, вам придется выполнять в худшем случае n-1 слияний, потому что эти инструменты обычно могут объединять только 2-3 файла одновременно.

Некоторые примеры этих инструментов:

После того, как у вас есть «мастер» XMLвы можете использовать XSD.exe для генерации "главной" схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...