2017-01-30 14 views
0

В настоящее время я работаю над приложением, которое выполняет задачу импорта или экспорта некоторых объектов. Формат файла, используемый для него, - XML. JAXB используется для привязки XML.Поддержка XSD-версии с JAXB

В данной задаче XSD, которая определяет структуру сущностей, не имеет права на управление версиями. Как мне начать с определения версии XSD и последующего XML документов экземпляра, предоставленных JAXB, лежит в качестве основной структуры привязки?

Я читал, что существует три возможных варианта введения версий в XSD.
1) Изменение атрибута версии внутренней схемы
2) Создайте атрибут типа schemaVersion для корневого элемента
3) Измените целевое пространство имен схемы.
Какой из них лучше всего подходит для усечения, упомянутого ниже?

Вариант использования: Изменения, внесенные в XSD в следующей версии, могут привести к аннулированию существующих элементов. Хотя сама схема не может быть обратной совместимостью, но приложение должно обеспечивать поддержку для обработки всех версий схемы.

+0

Если следующая версия не поддерживает обратную совместимость, то вариант 3, чтобы изменить пространство имен, кажется очень важным. – ulab

ответ

1

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

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