QTAssistant имеет функцию сравнения с поддержкой XSD, которая является частью модуля рефакторинга схемы XML (XSR);Будучи осведомленным о XSD, он иногда удивляет людей, которые скорее привыкли сравнивать на основе файлов, будь то сравнение текста или XML.
QTAssistant фактически не сравнивает файлы XSD;вместо этого он сравнивает «скомпилированные» наборы XSD-файлов.Так что, если кто-то решит просто разделить XSD на два файла, связанных вместе, используя, а затем сравнить эти два набора, результат будет возвращаться как «идентичный».Хорошим примером является стандарт ACORD , который изменил способ выпуска XSD.Ниже приведен пример, показывающий выпуски 2.21 против 2.26, организованные как наборы в QTAssistant ...
![ACORD Collections](https://i.stack.imgur.com/1ljyz.jpg)
... и взаимосвязи между файлами в выпуске 2.21 (используетs).
![File relationships in ACORD 2.21](https://i.stack.imgur.com/GYqOs.jpg)
Другой пример: если между версиями удален атрибут minOccurs или maxOccurs = ”1”, это различие не будет помечено, так как эти 1 в любом случае являются значениями по умолчанию…
Другой интересной особенностью является гранулярность, предоставляемая отчетом о разнице ...
![Diff report](https://i.stack.imgur.com/brMkh.jpg)
В дополнение к тому, чтобы результат был доступен на уровне каждого компонента XSD, он также делится на две части: один результат, Status , для определения того, был ли компонент схемы изменен напрямую (ниже LastRaceDate был «заменен» выбором между LastRaceDate и LastDatePartialDate)...
![Directly modified XSD component](https://i.stack.imgur.com/7E2xY.jpg)
... и другой, Расширенный статус , который рассматривает анализ воздействия на основе зависимостей (нижеатрибут был изменен с обязательного на необязательный).
![Dependency modified](https://i.stack.imgur.com/j5Kml.jpg)
Отчет можно экспортировать для дальнейшей интеграции с другими инструментами.