Преобразование DTD в XSD с определенным корневым (начальным) элементом

У меня есть несколько больших файлов DTD. Я использовал trangдля преобразования их в файлы XSD, поэтому я мог легко использовать его из JAXB и других утилит. Однако в сгенерированном файле XSD все объявленные элементы находятся на верхнем уровне. Это означает, что любой элемент может быть корневым элементом входного XML. Я хочу указать только конкретный элемент.

Наличие этих нескольких корневых элементов вызывает несколько проблем, например. xjcгенерирует @XmlRootElementдля всех классов, поэтому мне нужно добавить больше дополнительных проверок.

Насколько я понимаю, мне нужно переписать сгенерированный XSD, переместив s в s, изменив element refs в element types и т. д., но это было бы слишком большой работой, без возможности проверить, все ли сделано правильно.

Есть ли более эффективный способ сделать это?

8
задан Perception 24 May 2012 в 10:24
поделиться