|
|
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
Приветствую! Кровавые слезы скатились по моим щекам, открыв я полученный wsdl от одной госконторы. Элементы схемы любезно поименованы там русскими названиями. Отсюда, собственно при работе с генерилкой java бинов (xjc) появляются веселые куски когда типа Код: java 1. 2. 3. Вопрос - как абстрагировать этот ад, чтобы работать непосредственно с православными английскими символами в коде, а обмениваться на уровне сервиса то, чем он там хочет. Читал про custom bindings, но решения так и не пододбрал. Кто как с этим работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 11:59:24 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
Переименовать можно, например, так: Код: java 1. 2. 3. 4. 5. Будет ли работать с русскими названиями, хз, но скорее всего - да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 12:06:18 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
ivanra, Ну, руками лезть в сгенерированные файлы - это не комильфо. Надо как-то на уровне биндингов что ли задать, но вот как - пока не приходит в голову. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 12:32:46 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
То, что нагенерил xjc, обязательно надо править руками, это же всего лишь заготовка. Вот, например, что дает xjc при обработке схемы для приведенного выше примера (комментарии я выкинул): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Ну и как, какой код лучше и понятнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 12:43:48 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
ivanra, Нет, я не согласен, что код от генератора надо править, потому что это очень большой шанс что-то пропустить, забыть при следующей перегенерации и т.п. плюс объемы сгенерированного и т.п. Сгенерированный код по xsd - это эфемерная вещь. Ее может вообще не быть в другой среде выполнения, но ее всегда можно сгенерировать по существующей версии схемы. Отсюда следует, что заниматься улучшением его читаемости смысла нет. Но это мы отвлеклись от главного вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 13:28:25 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
Если с этим кодом нужно работать серьезно и долго, лучше отредактировать. Ну что плохого в том, чтобы сделать правильный reverse engineering объектной модели? А в данном случае (русские элементы) - это, наверное, единственное решение (ну, может еще xslt, но там работы не меньше). Генерация и правка делается 1 раз, далее, если меняется wsdl/xsd схема, просто сравниваются версии (инструменты можно найти), а по результатам сравнения вносятся правки в классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 14:01:05 |
|
||
|
jaxb и русские элементы в xsd
|
|||
|---|---|---|---|
|
#18+
А что с биндингами не получается? С русскими названиями не работал, но вложенные типы приходилось бороть. Вот например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Подменяется имя сгенеренного класса, и все ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2013, 18:53:03 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=233&tid=2129532]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
40ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 276ms |
| total: | 448ms |

| 0 / 0 |
