Документация JAXB похожа на учебник, и мне просто не нужно время, чтобы узнать все JAXB, прежде чем я буду использовать его.JAXB Work-Flow - как вы переходите на использование JAXB
У меня есть XSD, если я хочу использовать JAXB для маршала и без маршала, что такое рабочий процесс?
Мне не нужны какие-либо подробности, только вид на высоком уровне.
То, что я уже знаю: 1. JAXB может быть использован для приема объектов и создавать XML-документы из них, и наоборот 2. Он использует какой-то загадочный инструмент под названием «XJC», который я не смог найти скачать ANYWHERE на своем веб-сайте 3. XJC создает для вас классы на основе XSD
Во-первых, Как найти XJC? Я действительно знаю, что он установлен в моей системе, но не уверен, откуда я его получил.
Во-вторых, каков бы этот инструмент и как он попал на мою машину, как мне заставить его работать с самой современной версией JAXB? В-третьих, поэтому, если мои изменения XSD действительно мне нужно воссоздать весь объект Java, поэтому, возможно, недействительны все мои тесты? Или я могу определить объект для сопоставлений XSD, чтобы я контролировал отображение, а не какое-то генерирование кода по умолчанию?
В основном я использую XML и использую что-то вроде xStream для ручного развязывания, но это не вариант для моих целей.
Во-первых, большой ответ, оценили его. Вопрос: Как вы обычно создаете объекты java, а затем просто скопируйте их в свой проект? Вы говорите, что это часто будет частью сценария сборки, но это кажется мне обратным, потому что тогда как вы узнаете, что код, который вы пишете, который использует эти объекты, будет компилироваться, а тем более бегать, как ожидалось? Кроме того, такие вещи, как автозаполнение, не могут работать, потому что объекты не существуют до тех пор, пока вы не создадите проект. – walnutmon
Конечно, «копировать/вставлять» сгенерированный код в норму - недостаток - это вы просто должны помнить, когда это происходит при изменении схемы. Если вы сделаете это как часть своей сборки, автозаполнение будет работать нормально, вы просто должны сначала запустить сборку. Независимо от того, компилируется или работает ваш проект в ожидании, ничем не отличается от запуска xjc «вручную», и у вас может быть блок-тест, улавливающий большинство таких ошибок. – nos