powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Unmarshaller разных xml
7 сообщений из 7, страница 1 из 1
Unmarshaller разных xml
    #38961049
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Есть проблема. На вход подается XML, ее 2 вида и есть 2 класса с JAXB аннотациями, которые используется для unmarshal + 2 XSD схемы.

Проблема в том, у меня нету никаких признаков, по которым я бы смог подать нужный класс анмаршалеру.

Каким образом можно решить эту проблему?
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961097
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EDUARD_2,

по хорошему вам нужно делать 2 точки входа.

Можно конечно предварительно искать в сыром xml определенные теги, и по ним определять принадлежность к классу, но этот вариант плохой, не сейчас так потом этот костыль всплывет большой проблемой.
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961103
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olzhas,

как мне сделать эти 2 точки входа, если веб-сервис возвращает base64 данные, расшифровывая их, получаю XML. Просто разрабы веб-сервиса после обновления версии, не стали парится с конвертацией в новые сущности, а тупо возвращают и сущность старой версии или сущность новой (зависит от свежести данных).

в общих чертах они похожу, но некоторые теги переименованы, из-за этого при анмаршалинге, я просто теряю эти данные при трансформации их в объект и не получаю при этом никакого экзепшина.
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961115
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EDUARD_2,

Значит должны быть информация о номере версии.
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961148
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olzhas,

это шлюз ГИС ГМП, и этого номера нету.

Ответ вот такой (новая версия):

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<MessageData>
	<AppData>
		<mes:ResponseMessage xmlns:mes="http://roskazna.ru/gisgmp/xsd/116/Message" xmlns:rev="http://smev.gosuslugi.ru/rev120315" xmlns:smev="http://roskazna.ru/gisgmp/02000000/SmevGISGMPService/" Id="..." rqId="..." senderIdentifier="..." timestamp="2015-05-15T13:11:45.184+03:00">
			<mes1:ExportChargesResponse xmlns:mes1="http://roskazna.ru/gisgmp/xsd/116/MessageData" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
				<pgu:Charges xmlns:pgu="http://roskazna.ru/gisgmp/xsd/116/PGU_ChargesResponse" hasMore="false">
					<pgu:ChargeInfo>
						<pgu:ChargeData>PENoYXJnZSBTdXBwbGllckJpbGxJRD0iMTg4MTAwNjAxNDAwMDAzMDQ1NDIiPjxCaWxsRGF0ZT4yMDE0LTA0LTA3PC9CaWxsRGF0ZT48VmFsaWRVbnRpbD4yMDE0LTA3LTA4PC9WYWxpZFVudGlsPjxTdXBwbGllck9yZ0luZm8+PE5hbWU+0J7Qk9CY0JHQlNCUINCj0JzQktCUINCg0L7RgdGB0LjQuCDQv9C+INCzLiDQn9GB0LrQvtCy0YMgPC9OYW1lPjxJTk4+NjAyNzAzNDU3NjwvSU5OPjxLUFA+NjAyNzAxMDAxPC9LUFA+PEFjY291bnQga2luZD0iMSI+PEFjY291bnQ+NDAxMDE4MTA0MDAwMDEwMTAwMDI8L0FjY291bnQ+PEJhbms+PE5hbWU+0JPQoNCa0KYg0JPQoyDQkdCw0L3QutCwINCg0L7RgdGB0LjQuCDQv9C+INCf0YHQutC+0LLRgdC60L7QuSDQvtCx0LvQsNGB0YLQuCwg0LMu0J/RgdC60L7QsjwvTmFtZT48QklLPjA0NTgwNTAwMTwvQklLPjwvQmFuaz48L0FjY291bnQ+PC9TdXBwbGllck9yZ0luZm8+PEJpbGxGb3I+0KjQotCg0JDQpCDQn9CeINCQ0JTQnNCY0J3QmNCh0KLQoNCQ0KLQmNCS0J3QntCc0KMg0J/QoNCQ0JLQntCd0JDQoNCj0KjQldCd0JjQriDQn9Ce0KHQotCQ0J3QntCS0JvQldCd0JjQlSDihJYxODgxMDA2MDE0MDAwMDMwNDU0MjwvQmlsbEZvcj48VG90YWxBbW91bnQ+NTAwMDA8L1RvdGFsQW1vdW50PjxDaGFuZ2VTdGF0dXM+MTwvQ2hhbmdlU3RhdHVzPjxUcmVhc3VyZUJyYW5jaD7Qo9Ck0Jog0L/QviDQn9GB0LrQvtCy0YHQutC+0Lkg0L7QsdC70LDRgdGC0LggKNCj0JzQktCUINCg0L7RgdGB0LjQuCDQv9C+INCz0L7RgNC+0LTRgyDQn9GB0LrQvtCy0YMpPC9UcmVhc3VyZUJyYW5jaD48S0JLPjE4ODExNjMwMDIwMDE2MDAwMTQwPC9LQks+PE9LQVRPPjU4NzAxMDAwPC9PS0FUTz48QnVkZ2V0SW5kZXg+PFN0YXR1cz4wPC9TdGF0dXM+PFBheW1lbnRUeXBlPjA8L1BheW1lbnRUeXBlPjxQdXJwb3NlPjA8L1B1cnBvc2U+PFRheFBlcmlvZD4wPC9UYXhQZXJpb2Q+PFRheERvY051bWJlcj4wPC9UYXhEb2NOdW1iZXI+PFRheERvY0RhdGU+MDwvVGF4RG9jRGF0ZT48L0J1ZGdldEluZGV4PjxBcHBsaWNhdGlvbklEPjExNTgwMzUxODgxMDA2MDE0MDAwPC9BcHBsaWNhdGlvbklEPjxBbHRQYXllcklkZW50aWZpZXI+MjIwMDAwMDAwMDAwNjDQntCgMTAyMTk3NjQzPC9BbHRQYXllcklkZW50aWZpZXI+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjZ29zdHIzNDEwMjAwMS1nb3N0cjM0MTEiLz48ZHM6UmVmZXJlbmNlIFVSST0iIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNnb3N0cjM0MTEiLz48ZHM6RGlnZXN0VmFsdWU+bEpWVWxQVTBCZ1NBMGNoZUhIT01FbmtuS2ZrSWVjamVZY1VhcGxzaHN6MD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWU+WGpzYTVBdkUvb240ejg3a1ZuWTJ3UHFmV3dCeVc1N0xYSXhCTDMzSUtEdFNBTldCMU5GeEc0ZWtNQUR5SE5CcUM3VzkzNGNBUDQ3bkt0QjVhaWNJenc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJR09UQ0NCZWlnQXdJQkFnSURKVEpVTUFnR0JpcUZBd0lDQXpDQ0FrTXhJVEFmQmdrcWhraUc5dzBCQ1FFV0VuVjFZMTltYTBCeWIzTnJZWHB1WVM1eWRURWlNQ0FHQTFVRUNRd1owWVBRdXk0ZzBKalF1OUdNMExqUXZkQzYwTEFnMExRdU56RVpNQmNHQTFVRUJ3d1EwTE11SU5DYzBMN1JnZEM2MExMUXNER0JvakNCbndZSktvWklodmNOQVFrQ0RJR1IwSlRRc05DOTBMM1JpOUM1SU5HQjBMWFJnTkdDMExqUmhOQzQwTHJRc05HQ0lOQyswWUxRdXRHQTBZdlJndEMrMExQUXZpRFF1dEM3MFk3Umg5Q3dJTkM0MFlIUXY5QyswTHZSak5DMzBZUFF0ZEdDMFlIUmp5RFJnZEMrSU5HQjBZRFF0ZEMwMFlIUmd0Q3kwTDdRdkNEUW9kQ2EwSmZRbUNEUW10R0EwTGpRdjlHQzBMNGcwSi9SZ05DK0lFTlRVREVMTUFrR0ExVUVCaE1DVWxVeGNqQndCZ05WQkFzTWFkQ2owTC9SZ05DdzBMTFF1OUMxMEwzUXVOQzFJTkdBMExYUXR0QzQwTHpRc0NEUmdkQzEwTHJSZ05DMTBZTFF2ZEMrMFlIUmd0QzRJTkM0SU5DeDBMWFF0OUMrMEwvUXNOR0IwTDNRdnRHQjBZTFF1Q0RRdU5DOTBZVFF2dEdBMEx6UXNOR0cwTGpRdURFNE1EWUdBMVVFQ2d3djBLVFF0ZEMwMExYUmdOQ3cwTHZSak5DOTBMN1F0U0RRdXRDdzBMZlF2ZEN3MFlmUXRkQzUwWUhSZ3RDeTBMNHhmekI5QmdOVkJBTU1kdENqMEwvUXZ0QzcwTDNRdnRDODBMN1JoOUMxMEwzUXZkR0wwTGtnMFlQUXROQyswWUhSZ3RDKzBMTFF0ZEdBMFkvUmp0R0owTGpRdVNEUmh0QzEwTDNSZ3RHQUlOQ2swTFhRdE5DMTBZRFFzTkM3MFl6UXZkQyswTFBRdmlEUXV0Q3cwTGZRdmRDdzBZZlF0ZEM1MFlIUmd0Q3kwTEF3SGhjTk1UUXdNekEyTVRBME5EQTJXaGNOTVRVd016QTJNVEEwTkRBMldqQ0NBWkF4Q3pBSkJnTlZCQVlUQWxKVk1Sa3dGd1lEVlFRSURCRFFzeTRnMEp6UXZ0R0IwTHJRc3RDd01SVXdFd1lEVlFRSERBelFuTkMrMFlIUXV0Q3kwTEF4T0RBMkJnTlZCQW9NTDlDazBKWFFsTkNWMEtEUWtOQ2IwS3pRbmRDZTBKVWcwSnJRa05DWDBKM1FrTkNuMEpYUW1kQ2gwS0xRa3RDZU1VY3dSUVlEVlFRTEREN1FvOUMvMFlEUXNOQ3kwTHZRdGRDOTBMalF0U0RRdU5DOTBZVFF2dEdBMEx6UXNOR0cwTGpRdnRDOTBMM1JpOUdGSU5HQjBMalJnZEdDMExYUXZERXlNREFHQTFVRUtnd3AwTGpRdmRHRTBMN1JnTkM4MExEUmh0QzQwTDdRdmRDOTBZdlJoU0RSZ2RDNDBZSFJndEMxMEx3eEhUQWJCZ05WQkFRTUZOQ2owTC9SZ05DdzBMTFF1OUMxMEwzUXVOQzFNVEF3TGdZRFZRUU1EQ2ZRbmRDdzBZZlFzTkM3MFl6UXZkQzQwTG9nMFlQUXY5R0EwTERRc3RDNzBMWFF2ZEM0MFk4eFJ6QkZCZ05WQkFNTVB0Q2owTC9SZ05DdzBMTFF1OUMxMEwzUXVOQzFJTkM0MEwzUmhOQyswWURRdk5DdzBZYlF1TkMrMEwzUXZkR0wwWVVnMFlIUXVOR0IwWUxRdGRDOE1HTXdIQVlHS29VREFnSVRNQklHQnlxRkF3SUNKQUFHQnlxRkF3SUNIZ0VEUXdBRVFCVmhLMUk3d2JWS2ZVbFNoQ25jYkw4OVhUK2wwaUE5aVhUNWwvYlRNN0JQem5zaWI3cnZxakpBVlQvendTNHNONHU2cHJVWFNuWlk0dnN2bFBBNU95aWpnZ0Z3TUlJQmJEQU1CZ05WSFJNQkFmOEVBakFBTUJnR0ExVWRJQVFSTUE4d0RRWUxLb1VEQXoyZTF6WUJBZ0l3Z1pVR0ExVWRFUVNCalRDQmlxQVNCZ05WQkF5Z0N4TUpNekEyTVRRek1qRXpvQTRHQ0NxRkF3T0JBd0VCb0FJVEFLQVFCZ29xaFFNRFBaN1hOZ0VIb0FJVEFLQVFCZ29xaFFNRFBaN1hOZ0VGb0FJVEFLQU5CZ2NxaFFNQjREa0JvQUlUQUtBUEJna3Foa2lHOXcwQkNSU2dBaE1Bb0JBR0NpcUZBd005bnRjMkFRaWdBaE1Bb0FzR0JTcUZBMlFCb0FJVEFJWUJNREFPQmdOVkhROEJBZjhFQkFNQ0JzQXdJQVlEVlIwbEJCa3dGd1lJS3dZQkJRVUhBd0lHQ3lxRkF3TTludGMyQVFZRU1COEdBMVVkSXdRWU1CYUFGR2VkKzIvdldUcnpDeUVwTzROWXd4WU5FTU9pTURnR0ExVWRId1F4TUM4d0xhQXJvQ21HSjJoMGRIQTZMeTlqY213dWNtOXphMkY2Ym1FdWNuVXZZM0pzTDB4QlUxUmZibVYzTG1OeWJEQWRCZ05WSFE0RUZnUVUyeGFUZHBNc3U1WXBiSDN1UEYrTTNiaWR1RUF3Q0FZR0tvVURBZ0lEQTBFQUF3NW44ZlJ6azNGTVNYWkRUVlFIZCtnSDE5UUNORGF4UUYxRkR2NVZvNVdWUGJYaDkxMmhtT3c5ODdCbllSUHZCckJvRHgwOGt0K3hjUXRTUTFMY2tRPT08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48ZHM6WDUwOVN1YmplY3ROYW1lPkNOPdCj0L/RgNCw0LLQu9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdGL0YUg0YHQuNGB0YLQtdC8LFQ90J3QsNGH0LDQu9GM0L3QuNC6INGD0L/RgNCw0LLQu9C10L3QuNGPLFNVUk5BTUU90KPQv9GA0LDQstC70LXQvdC40LUsR0lWRU5OQU1FPdC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdGL0YUg0YHQuNGB0YLQtdC8LE9VPdCj0L/RgNCw0LLQu9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdGL0YUg0YHQuNGB0YLQtdC8LE890KTQldCU0JXQoNCQ0JvQrNCd0J7QlSDQmtCQ0JfQndCQ0KfQldCZ0KHQotCS0J4sTD3QnNC+0YHQutCy0LAsU1Q90LMuINCc0L7RgdC60LLQsCxDPVJVPC9kczpYNTA5U3ViamVjdE5hbWU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9DaGFyZ2U+</pgu:ChargeData>
						<pgu:AmountToPay>39887</pgu:AmountToPay>
					</pgu:ChargeInfo>
				</pgu:Charges>
			</mes1:ExportChargesResponse>
		</mes:ResponseMessage>
	</AppData>
</MessageData>



старая версия
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<MessageData>
	<AppData>
		<mes:ResponseMessage xmlns:mes="http://roskazna.ru/gisgmp/xsd/116/Message" xmlns:rev="http://smev.gosuslugi.ru/rev120315" xmlns:smev="http://roskazna.ru/gisgmp/02000000/SmevGISGMPService/" Id=..." rqId="..." senderIdentifier="...." timestamp="2015-05-15T13:13:13.309+03:00">
			<mes1:ExportChargesResponse xmlns:mes1="http://roskazna.ru/gisgmp/xsd/116/MessageData" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
				<pgu:Charges xmlns:pgu="http://roskazna.ru/gisgmp/xsd/116/PGU_ChargesResponse" hasMore="false">
					<pgu:ChargeInfo>
						<pgu:ChargeData>PGNoZzpDaGFyZ2UgeG1sbnM6YmRpPSJodHRwOi8vcm9za2F6bmEucnUvZ2lzZ21wL3hzZC8xMTYvQnVkZ2V0SW5kZXgiIHhtbG5zOmNoZz0iaHR0cDovL3Jvc2them5hLnJ1L2dpc2dtcC94c2QvMTE2L0NoYXJnZSIgeG1sbnM6Y29tPSJodHRwOi8vcm9za2F6bmEucnUvZ2lzZ21wL3hzZC8xMTYvQ29tbW9uIiB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgeG1sbnM6b3JnPSJodHRwOi8vcm9za2F6bmEucnUvZ2lzZ21wL3hzZC8xMTYvT3JnYW5pemF0aW9uIiB4bWxuczpwaXI9Imh0dHA6Ly9yb3NrYXpuYS5ydS9naXNnbXAveHNkLzExNi9QR1VfSW1wb3J0UmVxdWVzdCIgeG1sbnM6Z2lzZ21wPSJodHRwOi8vcm9za2F6bmEucnUvZ2lzZ21wL3hzZC8xMTYvTWVzc2FnZSIgeG1sbnM6bXNnZD0iaHR0cDovL3Jvc2them5hLnJ1L2dpc2dtcC94c2QvMTE2L01lc3NhZ2VEYXRhIiB4bWxuczpwZHI9Imh0dHA6Ly9yb3NrYXpuYS5ydS9naXNnbXAveHNkLzExNi9QR1VfRGF0YVJlcXVlc3QiIHhtbG5zOnNtZXY9Imh0dHA6Ly9zbWV2Lmdvc3VzbHVnaS5ydS9yZXYxMjAzMTUiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnNvYXBlbnY9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIiB4bWxuczppbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDQvMDgveG9wL2luY2x1ZGUiIHhtbG5zOm1lcz0iaHR0cDovL3Jvc2them5hLnJ1L2dpc2dtcC94c2QvMTE2L01lc3NhZ2UiIHhtbG5zOm1lczE9Imh0dHA6Ly9yb3NrYXpuYS5ydS9naXNnbXAveHNkLzExNi9NZXNzYWdlRGF0YSIgeG1sbnM6cmV2PSJodHRwOi8vc21ldi5nb3N1c2x1Z2kucnUvcmV2MTIwMzE1IiB4bWxuczp3c3NlPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2QiIHhtbG5zOndzdT0iaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXV0aWxpdHktMS4wLnhzZCIgeG1sbnM6eGQ9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJJRF8wMDU3IiBiaWxsRGF0ZT0iMjAxNC0xMC0xNFQwOTozMDo0Ny4wWiIgc3VwcGxpZXJCaWxsSUQ9IjE4ODAwMDAwMzMzNTU1MDAwMzAxIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaGc6U3VwcGxpZXJPcmdJbmZvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9yZzpOYW1lPtCQ0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGAINC90LDRh9C40YHQu9C10L3QuNC5INGC0LXRgdGCPC9vcmc6TmFtZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcmc6SU5OPjU2Nzg5MDEyMzE8L29yZzpJTk4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3JnOktQUD41Njc4OTAxMjE8L29yZzpLUFA+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3JnOkFjY291bnQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3JnOkFjY291bnROdW1iZXI+NDA2MDI4MTAwMDAzODAwMDAwMjA8L29yZzpBY2NvdW50TnVtYmVyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9yZzpCYW5rPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9yZzpCSUs+MDQ0NTI1NzE2PC9vcmc6QklLPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcmc6QmFuaz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3JnOkFjY291bnQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NoZzpTdXBwbGllck9yZ0luZm8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hnOkJpbGxGb3I+0KjRgtGA0LDRhDwvY2hnOkJpbGxGb3I+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hnOlRvdGFsQW1vdW50PjEwMDAxPC9jaGc6VG90YWxBbW91bnQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29tOkNoYW5nZVN0YXR1cyBtZWFuaW5nPSIxIi8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hnOktCSz4xODg1MTExMTExMTExMTExMTExMzwvY2hnOktCSz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaGc6T0tUTU8+MTIzNDU2NzM8L2NoZzpPS1RNTz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaGc6QnVkZ2V0SW5kZXg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmRpOlN0YXR1cz4wMTwvYmRpOlN0YXR1cz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZGk6UHVycG9zZT4wPC9iZGk6UHVycG9zZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZGk6VGF4UGVyaW9kPjA8L2JkaTpUYXhQZXJpb2Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmRpOlRheERvY051bWJlcj4xMjM0NTwvYmRpOlRheERvY051bWJlcj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZGk6VGF4RG9jRGF0ZT4wPC9iZGk6VGF4RG9jRGF0ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZGk6UGF5bWVudFR5cGU+MDwvYmRpOlBheW1lbnRUeXBlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jaGc6QnVkZ2V0SW5kZXg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hnOkFsdFBheWVySWRlbnRpZmllcj4wMTAwMDAwMDAwMDIzNDU2Nzg5MDEyNjQ5PC9jaGc6QWx0UGF5ZXJJZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNoZzpUcmVhc3VyZUJyYW5jaD7QotC10YHRgtC+0LLQvtC1INCj0KTQmiAxPC9jaGc6VHJlYXN1cmVCcmFuY2g+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6U2lnbmF0dXJlIElkPSJJRF8zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpTaWduZWRJbmZvIElkPSJJRF80Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy5hbHRvdmEuY29tIj50ZXh0PC9kczpDYW5vbmljYWxpemF0aW9uTWV0aG9kPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cuYWx0b3ZhLmNvbSI+dGV4dDwvZHM6U2lnbmF0dXJlTWV0aG9kPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlJlZmVyZW5jZSBJZD0iSURfNSIgVHlwZT0iaHR0cDovL3d3dy5hbHRvdmEuY29tIiBVUkk9Imh0dHA6Ly93d3cuYWx0b3ZhLmNvbSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy5hbHRvdmEuY29tIj50ZXh0PC9kczpEaWdlc3RNZXRob2Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6RGlnZXN0VmFsdWU+VWpCc1IwOUViR2hqWjBkVFFVeE5RVUZCVVVOQlJVMXRRMXAwZFUxR1VYaEVVemhpPC9kczpEaWdlc3RWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6UmVmZXJlbmNlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kczpTaWduZWRJbmZvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlNpZ25hdHVyZVZhbHVlIElkPSJJRF82Ij5VakJzUjA5RWJHaGpaMGRUUVV4TlFVRkJVVU5CUlUxdFExcDBkVTFHVVhoRVV6aGk8L2RzOlNpZ25hdHVyZVZhbHVlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kczpTaWduYXR1cmU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NoZzpDaGFyZ2U+</pgu:ChargeData>
						<pgu:AmountToPay>10001</pgu:AmountToPay>
					</pgu:ChargeInfo>
				</pgu:Charges>
			</mes1:ExportChargesResponse>
		</mes:ResponseMessage>
	</AppData>
</MessageData>
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961199
olzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EDUARD_2,

Это не доработка со стороны разработчиков которые предоставляют сервис. И на них я так полагаю вы не сможете повлиять?!

Тогда остается вариант который я уже говорил, проверяйте сырой xml на наличие тегов или атрибутов. и в зависимости от этого выбираете тот или иной unmarshal.


Есть еще вариант сделать универсальный класс, который будет в себе содержать поля с обоих классов. И над ним сделать фасад, с логикой по выбору полей.
Что то типа такого.

Код: java
1.
2.
3.
4.
5.
6.
String oldField;
String newFields;

public String getField() {
  oldField!=null ? oldField : newField;
}
...
Рейтинг: 0 / 0
Unmarshaller разных xml
    #38961390
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olzhas,

я в eclipslink видел DynamicJAXB, мне интересно как они это реализовали.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Unmarshaller разных xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]