![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Необходимо превращать сложные вложенные бины (в том числе с листами и хэшмапами) в xml -- а затем из xml получать экземпляры соответсвующих бинов. Желательна возможность мапинга (класс -- xml шаблон) в отдельных конфигурационных файлах.
В обещем и целом пока что в колебаниях между Castor и XMLBeans. У кого есть какие соображения, опыт, что посоветуете? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я юзаю XML-Beans. Маппинг в отдельном файле у него есть, но вот возможности сложного маппинга, особенно всяких Map-ов, не уверен. Я пользуюсь тем классами, что он мне нагенерировал по схеме. В плюсы могу отметить хорошую скорость, даже быстрее чем JAXB.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
ИМХО, JAXB весьма неплох: он позволяет по XML Schema (xsd) сгенерировать java классы. При этом Sun гарантирует 100 % поддержку XML схем. Так же можно выполнить и обратную операцию, т.е. java класс -> XML Schema. На счет скорости работы - с другими не сравнивал, не знаю.
|
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
LSD
Что-то никак не могу разобраться как из объекта в процессе работы программы получить его xml представление... можно, плз, кусочек кода или пример ![]() MoonCat Если можно аналогичный кусочек (java класс -> XML Schema) для JAXB, буду очень признателен ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вот мой тест которым я проверял это дело на скорость. Там есть как генерация XML из объектов, так и парсинг XML в объекты.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
powerOn |
|
||||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Вот есть у нас схема:
Компилим её с помощью xjc:
полученные классы кидаем в проект вместе с JAXB библиотеками. Потом пишем тестовый код:
Надеюсь код будет понятен. |
||||||
|
|||||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
MoonCat, а в сгенерированные классы можно вносить изменения?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
MoonCat
Мммм, а что есть по сути своей ObjectFactory? Правильно ли я понял что сериализация bean -> xml возможно только для сгенерированных классов? И свой корректно написанный бин -- не сериализируеш...? |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Можно. Главное ничего не поломать. У JAXB есть некоторая методика по которой она может работать с XML. Если её соблюдать, то все должно быть в порядке. Хоть руками код пиши, лишь бы требованиям JAXB удовлетворяло. XCJ в данном случае позволяет избавитьтся от нудной процедуры самостоятельного написания необходимых классов и автоматически генерирует код. JAXB это механизм который позволяет работать с XML документами так же, как если бы это были простые классы. Собственно XCJ этим и занимается - генерирует классы-отображения XML. ObjectFatory представляет собой фабрику классов для различных узлов XML документа. Например, если Вы захотите создать новый XML документ, то можно с помощью ObjectFactory получить необходимые узлы и сформировать из них конкретный документ:
|
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
MoonCat
Понятно, большое спасибо. Но пока остановился на Castor. |
|||
|
||||
Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
посмотри XMLEncoder и XMLDecoder iz jdk
|
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 4 Всего: 16 |
Tony, +1
-------------------- |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Tony
![]() Возможно я ошибаюсь, но они дают xml в котором теги стого соответствуют именам методов бина. |
|||
|
||||
Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
не понал.XMLEncoder просто генерит хмл по методам обэкта.Всё.Это 4то тебе надо.Просто и со вкусом :] |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ему надо, чтобы XML имел определенный формат. Например XML Schema может быть заранее задана, как часть протокола обмена. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |