JAXB в java 6 не префиксует правильный префикс пространства имен в упорядоченном XML-файле - PullRequest
1 голос
/ 28 октября 2010

У меня есть схема со следующими атрибутами в элементе схемы:

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://abc.example.com" targetNamespace="http://abc.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">

Я могу скомпилировать ее и получить классы Java.Используя эти классы, я заполнил данные в объект и упорядочил их, чтобы получить файл XML.

Но элементы XML в этом файле упорядочения не имеют префикса "abc".

Iнемного подправил, используя XMLStreamWriter.setPrefix во время маршалинга, и я мог получить XML-файл со всеми элементами с префиксом «abc».

Теперь, когда я пытаюсь отменить маршалинг одного и того же XML-файла, выдается сообщение об ошибке:

[org.xml.sax.SAXParseException: префикс «abc» для элемента «abc: Name» не связан.]

Пожалуйста, помогите мне, как сообщить JAXB, что abc является правильным префиксом.

Спасибо, Прадип

Ответы [ 2 ]

2 голосов
/ 28 октября 2010

В статье ниже я демонстрирую, как этого можно достичь, используя NamespacePrefixMapper из JAXB RI и аннотацию @XmlSchema с EclipseLink JAXB (MOXy) :

1 голос
/ 28 октября 2010

Название префикса не имеет смысла.Все, что он делает, это устанавливает связь между пространством имен и тегами, которые принадлежат этому пространству имен.Префикс abc или namespace01 или префикс отсутствует, поскольку используется пространство имен по умолчанию, не имеет значения.Насколько я знаю, вы не можете принудительно использовать префикс или конкретное имя префикса в JAXB.

...