Проблема с префиксом пользовательского пространства имен JAXB

Есть ли другой способ управления пользовательскими префиксами пространства имен с помощью аннотаций, отличных от аннотации на уровне пакета @Xmlns,

Можно ли это сделать на уровне элементов? Также возможно ли иметь одно пространство имен с несколькими префиксами?

1 ответ

Решение

Что вы на самом деле хотите сделать? Почему префиксы пространства имен важны для вас?

Нет стандартных аннотаций на уровне элементов для префиксов пространства имен.

Варианты управления префиксами пространства имен, которые я знаю:

  • @XmlNS Вы уже упоминали.
  • Предоставление кастома NamespacePrefixMapper,
  • Низкоуровневая обработка XML (например, на уровне StAX, SAX или DOM).

Что я тоже могу себе представить:

  • @XmlElementRef / @XmlElementRefs обычно используют JAXBElements с QNames, которые имеют префиксы. Может быть, этот префикс будет использоваться.
  • Вы можете иметь QName свойство (xs:QName в XSD) также может использоваться для добавления сопоставления пространства имен.
  • Вероятно, что-то в направлении @XmlAnyElement (содержащий элемент DOM).
  • Я думаю, что я также видел что-то в направлении XmlAdapter - Я думаю, что где-то была возможность NamespacePrefixMapper -aware. (На самом деле требуется для типов с поддержкой пространства имен, таких как QName).
Другие вопросы по тегам