Сериализация/десериализация произвольного значения элемента с помощью Simple-XML

В моем XML-документе есть один конкретный элемент, который может содержать любые произвольные данные XML или быть пустым (в основном это поле типа cookie, куда клиент может отправлять любые данные, которые он хочет, а сервер отправляет их обратно).

Как я могу поддерживать это как для сериализации, так и для десериализации с помощью простой структуры? По сути, я просто хочу десериализовать элемент из запроса клиента, каким бы он ни был, а затем сериализовать его обратно в XML как часть ответа. Но я не уверен, какой класс я мог бы использовать для этого поля, или есть ли способ написать для него преобразователь.


person brianmearns    schedule 04.09.2015    source источник


Ответы (1)


Если вы можете отличить тип по имени элемента, вы можете использовать @ElementUnion следующим образом.

@ElementUnion({
   @Element(name="x", type=X.class),
   @Element(name="y", type=Y.class),
   @Element(name="z", type=Z.class)
})

Помимо этого, можно использовать стандартный атрибут class=.

person ng.    schedule 05.09.2015
comment
Спасибо за идею, но мне это не подходит. Я буквально хочу принять любой допустимый XML внутри этого элемента, и меня не волнует десериализация его в определенный класс, я просто хочу иметь возможность хранить его данные без потерь и сериализовать его в XML в ответ. - person brianmearns; 08.09.2015