Хобрук: Ваш путь к мастерству в программировании

Атрибуты XML не демаршалируются с помощью JAXB 2 при использовании синтаксического анализатора SAX.

У меня есть классы Java, полученные из XSD с помощью инструмента XJC. Unmarshaling отлично работает с настройками по умолчанию. Однако я переключился на реализацию парсера SAX (из SAXSource здесь: http://docs.oracle.com/javase/6/docs/api/index.html?javax/xml/bind/JAXBContext.html), и теперь unnmarshalling, конечно, 2 раз быстрее, но XML-атрибуты не демаршалируются. Это означает, что атрибут, который определен как

@XmlAttribute(required=true)
@XmlSchemaType(name = "anySimpleType")
protected String messageId;

установлено значение null. В XML у меня есть

<Message messageId="123">
...
</Message>

Все остальное разбирается должным образом. У меня есть эта проблема со всеми объектами, которые используют атрибуты.

У меня есть реализация Apache Xerces парсера SAX.

14.08.2012

Ответы:


1

Кажется, что JAXB не работает должным образом с синтаксическим анализатором SAX, если синтаксический анализатор не настроен на осведомленность о пространстве имен и не установлены правильные пространства имен. Парсер DOM отлично работает, если для свойства осведомленности о пространстве имен установлено значение false.

16.08.2012
  • У меня была та же проблема, я добавил setNamespaceAware(true) на фабрику, и это решило проблему. Спасибо 10.05.2013
  • Новые материалы

    Пример O (n²)
    Две суммы: найти все пары, сумма которых равна целевому значению const arr = [1,4,5,7,9,3,1,2,-4,-6] Целевое значение = 9 Использование Brute Force для этого случая будет выполняться с..

    Правильное тестирование машинного обучения: обнаружение ошибок в данных.
    Эта статья была первоначально размещена на нашем сайте компании . Платформа для разработчиков Lakera позволяет командам машинного обучения создавать отказоустойчивые модели компьютерного..

    Обучение SAP FICO в NOIDA.
    Лучший провайдер SAP Training с целевым размещением SAP-коучинга в Нойде. Наш курс SAP концентрируется от коучинга базового уровня до продвинутого уровня и охватывает как функциональные, так и..

    Sinkhorn Knopp: поиск оптимального транспорта для выравнивания данных
    В области выравнивания данных и оптимального транспорта алгоритм Синкхорна-Кноппа стал мощным инструментом для решения задач оптимизации транспорта. С приложениями, варьирующимися от сопоставления..

    Мой начальный путь к микросервисам с Spring Boot
    Почему мы используем микросервисы? Микросервисы — это шаблон проектирования программного обеспечения, который включает создание большого приложения в виде набора небольших независимых..

    Уменьшите количество шаблонов при запуске тестов Kotlin
    Используя изящный трюк Kotlin, вы можете сделать свои тесты чистыми и простыми для понимания и обслуживания. Тестирование должно быть легким. Если ваши тесты слишком сложны и сложны в..

    Понимание React.js: гармоничная симфония компонентов и модульность в стиле LEGO
    Понимание React.js: гармоничная симфония компонентов и модульность в стиле LEGO Представляем искусство и науку, лежащую в основе строительных блоков React.js, React Components, которые помогают..