Вставка кода с помощью XJC + xsd + jxb с использованием опций «-Xinject-code -extension»
Im ‘пытается использовать расширение «-Xinject-code» xjc, чтобы добавить код в мои сгенерированные classы. Для следующей простой схемы xsd …
.. Я связал следующее связывание:
@Override public String toString() { return this.getName();}
Запуск xjc производит следующий вывод:
- Марширование списка объектов, реализующих общий интерфейс, с JaxB
- Как создавать classы JAXB только из XML
- Что такое JAXB и почему я должен его использовать?
- Как выразить зависимость в maven на java ee для перехода на Java 9?
- JAXB unmarshall с пространствами имен и префиксом
$ xjc -target 2.1 -verbose -Xinject-code -extension -d . -p generated -b test.jxb test.xsd parsing a schema... compiling a schema... [INFO] generating code unknown location generated/MyItem.java generated/MyList.java generated/ObjectFactory.java
но файл «сгенерированный / MyItem.java» не содержит новый метод «toString». Как мне это исправить? Что это за сообщение «неизвестное местоположение»?
Заметка:
$ xjc -version xjc 2.2.4
РЕДАКТИРОВАТЬ:
изменение xsd: element в xsd: complexType делает работу:
а также
@Override public String toString() { return this.getName();}
Теперь я могу видеть код в файле «сгенерированный / MyItemType.java»
$ tail generated/MyItemType.java @Override public String toString() { return this.getName();} }
но как я могу сказать xjc генерировать код без изменения xsd-файла?
- Может ли JAXB быть маршалом сдерживанием сначала, а затем маршалом by @XmlIDREF для последующих ссылок?
- конвертировать xml в java-объект с помощью jaxb (unmarshal)
- Как создать class Java, который реализует интерфейс Serializable из xsd с помощью JAXB?
- JAXB: требуется префикс пространства имен для всех элементов
- Какова роль ClassOutline / JClass / CClass в CodeModel?
- Использование JAXB с Google Android
- JAXB отфильтровал parsing
- Исключение JAXB: class, не известный этому контексту
Попробуйте /xs:schema/xs:element[@name='MyItem']/xs:complexType
.