Как отобразить вывод XML базы данных в производную объектную модель JAXB - PullRequest
1 голос
/ 19 июля 2011

Я запрашиваю ссылки на источники / материалы, которые помогут мне решить следующую проблему (проблему, потому что я новичок в Java / JAXB и имею опыт работы с PHP).

Мне предоставляется сложный XSD, созданный и поддерживаемый организацией.Я создал объектную модель Java с использованием JAXB 2.1.Мне нужно сопоставить поля базы данных с производными классами java / jaxb.Поля / элементы базы данных отображаются с помощью простого вывода XML.Пример вывода записи базы данных XML выглядит следующим образом:

<PROBLEM>
<PID>262</ID>
<PROBLEM_DATE>14-DEC-10</PROBLEM_DATE>
<PROBLEM_TYPE>T</PROBLEM_TYPE>
<PROBLEM_CODE>244.9</PROBLEM_CODE>
</PROBLEM>

Пример производного класса JAXB:

protected IvlTs problemDate;

public IvlTs getProblemDate() {
            return problemDate;
        }

public void setProblemDate(IvlTs value) {
            this.problemDate = value;
        }

Как мне сопоставить элемент xml <PROBLEM_DATE> с problemDate?Пожалуйста, посоветуйте статью / учебник, который может помочь мне начать.Кроме того, экстракт базы данных XML имеет большой размер и содержит около 500 полей / XML-элементов. Есть ли способ автоматизировать отображение или все это нужно делать вручную?

1 Ответ

2 голосов
/ 19 июля 2011

Вы захотите прочитать JAXB аннотации .Для этой конкретной проблемы вы хотите аннотировать метод getProblemDate () с помощью

@XmlElement(name="PROBLEM_DATE")

Если есть общий шаблон, такой как problemDate -> PROBLEM_DATE и вообще fooBar -> FOO_BAR, то это должно быть довольно легконаписать регулярное выражение найти / заменить, чтобы получить то, что вам нужно.

...