Никакой @XmlRootElement не сгенерирован JAXB

Вы можете использовать регулярное выражение:

str = str.replace(/\s*$/,"");

Он говорит, заменить все пробелы в конце строки пустой строкой.

Разбивка:

  • \s*: любое количество пробелов
  • $: конец строки

Подробнее о регулярных выражениях :

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

199
задан Peter Rosemann 15 April 2015 в 05:40
поделиться

2 ответа

Чтобы связать вместе, что другие уже говорили или намекали на правила, правила, с помощью которых JAXB XJC решает, следует ли поставить @xmlRootelement аннотацию на сгенерированном классе без тривиала ( см. Статья ).

@XMLROTELEMETEMENT существует, потому что время выполнения JAXB требует определенной информации, чтобы Marshal / Mondarshal данный объект, в частности, имя элемента XML и пространства имен. Вы не можете просто передать какой-либо старый объект в Marshaller. @xmlROutelement предоставляет эту информацию.

Аннотация - это просто удобство, однако - JAXB не требует этого. Альтернатива является использование Jaxbelement Объекты обертки, которые обеспечивают ту же информацию, что и @xmlrootelement , но в виде объекта, а не аннотации.

Тем не менее, JAXBBELEMENT объекты неловко построят, поскольку вам нужно знать имя элемента XML и пространство имен, которые обычно не используют бизнес-логику.

К счастью, когда XJC генерирует модель классов, она также генерирует класс под названием ObjectFactory . Это частично там для обратной совместимости с JAXB V1, но именно также там, как место для XJC, чтобы поставить сгенерированные заводские методы, которые создают JAXBELEMET . Он обрабатывает имя XML и пространство имен для вас, поэтому вам не нужно беспокоиться об этом. Вам просто нужно посмотреть через ObjectFactory методы (и для большой схемы, их могут быть сотни), чтобы найти тот, который вам нужен.

256
ответ дан 23 November 2019 в 05:09
поделиться

У нас тоже не работает. Но мы нашли широко цитируемую статью, которая добавляет НЕКОТОРЫЕ предыстории ... Я сделаю ссылку на нее здесь для следующего человека: http://weblogs.java.net/blog/kohsuke/archive/ 2006/03 / why_does_jaxb_p.html

6
ответ дан 23 November 2019 в 05:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: