Подавлять узлы XML во время маршалинга с помощью JAXB - PullRequest
2 голосов
/ 16 сентября 2011

Я использую JAXB для сериализации данных в XML из объектов Java. Я не хочу создавать некоторые узлы, если xml запрашивается неавторизованным пользователем.

Можно ли это сделать с помощью JAXB?

Несколько решений не-JAXB, о которых я могу подумать:

  1. Удаление узлов после генерации XML с помощью Regex или XSLT.
  2. Установить значения объектов, соответствующих скрытым узлам, равными нулю.

Каким будет предложенный подход?

1 Ответ

3 голосов
/ 16 сентября 2011

Примечание: Я - EclipseLink JAXB (MOXy) , и член JAXB 2 ( JSR-222 * 1008)*) группа экспертов.

Использование любой реализации JAXB

Вы можете использовать XSLT и использовать объект JAXBSource в качестве входных данных для преобразования.

JAXBSource source = new JAXBSource(jaxbContext, myPOJO);
Result result = new StreamResult(System.out);
transformer.transform(source, result);

Использование MOXy JAXB

Если вы используете реализацию JAXB для MOXy, вы можете использовать ее метаданные XML, чтобы применить второе отображение к вашей объектной модели.

Подробный пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...