XmlSerialize сторонний класс с использованием JAXB - PullRequest
3 голосов
/ 23 июня 2011

Чтение, которое я до сих пор делал на JAXB, предполагает, что его использование ограничено сериализацией классов, которые можно правильно аннотировать (то есть каждый имеет класс 'source').

Есть ли способ использовать JAXB для сериализации стороннего класса (т. Е. У источника нет) с использованием отражения?

На данный момент я делаю это вручную.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Примечание: Я - руководитель EclipseLink JAXB (MOXy) и являюсь членом группы экспертов JAXB 2 (JSR-222).

EclipseLink JAXB (MOXy) предлагает расширение, которое позволяет вам представлять ваши метаданные в качестве разрешения XML, что необходимо при отображении сторонних классов:

Sample

<?xml version="1.0"?>
<xml-bindings
    xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
    package-name="blog.bindingfile">
    <xml-schema
        namespace="http://www.example.com/customer"
        element-form-default="QUALIFIED"/>
    <java-types>
        <java-type name="Customer">
            <xml-root-element/>
            <xml-type prop-order="firstName lastName address phoneNumbers"/>
            <java-attributes>
                <xml-element java-attribute="firstName" name="first-name"/>
                <xml-element java-attribute="lastName" name="last-name"/>
                <xml-element java-attribute="phoneNumbers" name="phone-number"/>
            </java-attributes>
        </java-type>
        <java-type name="PhoneNumber">
            <java-attributes>
                <xml-attribute java-attribute="type"/>
                <xml-value java-attribute="number"/>
            </java-attributes>
        </java-type>
    </java-types>
</xml-bindings>

Для получения дополнительной информации

0 голосов
/ 23 июня 2011

Я не уверен, но вы можете посмотреть на xstream (http://x -stream.github.io / ), если вы просто попытаетесь сериализовать и десериализовать объекты в XML и обратно.

Привет -Саша-

...