Данные XML в типе String - PullRequest
0 голосов
/ 05 июня 2009

Я подключаюсь к веб-сервису, у которого есть определение сервиса следующего формата

<main>
  <header>
     <data>xyz</data>
  </header>
  <test>
   <![CDATA[<xml><a></a><b></b></xml>]]>
  </test> 
</main>

Как использовать jaxb для создания файла класса для структуры cdata

Ответы [ 2 ]

1 голос
/ 05 июня 2009

Сначала определите вашу схему, используя формат xml-schema (XSD), а затем запустите компилятор xjc (Java-компилятор xsd) для генерации ваших классов. Создав классы, вы можете создать свой веб-сервис с помощью аннотации @WebService. Несколько месяцев назад я разместил несколько примеров в своем блоге: http://plindenbaum.blogspot.com/2006/12/java-16-mustang-jaxb-and.html и http://plindenbaum.blogspot.com/2008/11/web-service-for-onsolubility.html.

надеюсь, это поможет

0 голосов
/ 08 июня 2009

JAXB не сможет анализировать что-либо, заключенное в объявление CDATA: синтаксический анализатор XML всегда будет сообщать о строке.

Если вы хотите разобрать это, вам нужно сделать следующее:

  • Запустите JAXB для исходной схемы, которая будет указывать содержимое «теста» в виде строки или «любого» (это необходимо, в противном случае оно не может содержать объявление CDATA!)

  • Запустите JAXB на вторичной схеме, которая определяет содержимое элемента «test».

Во время выполнения вам необходимо проанализировать документ XML с помощью JAXB, затем перейти к элементу «test» и снова проанализировать этот элемент с помощью JAXB. Другого пути не будет.

Надеюсь, это поможет.

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