Я обновляемом объект Java, который в настоящее время имеет представление XML в этом духе:аннотирования добавление атрибута к элементу
<myObjects>
<myObject uid="42" type="someEnum">
<name>Waldo</name>
<description>yada yada</description>
<myElement>some_string</myElement>
...
</myObject>
...
</myObjects>
MyElement не является обязательным - это может быть пустым в Java/опущено XML.
Я добавляю поле, которое только значение, если MyElement имеет фактическое значение (и сохранить совместимость с предыдущей XML, это необязательно сам по себе)
Я пытаюсь избежать этого:
<myElement>some_string</myElement>
<myAttr>foo</myAttr>
и предпочитают что-то вроде этого:
<myElement myAttr="foo">some_string</myElement>
но стучал головой в течение 2 дней не w о том, как его аннотировать.
- Я думал пометив его с XmlTransient и досадный XmlAnyElement поймать это вместо того, чтобы в то время как немаршалинг - но мне кажется, это вызовет проблемы, когда сортировочная объект обратно из Java в XML.
- Я попытался создать для элемента XmlAdapter, но метод unmarshal получает только внутренний контент («some_string»). Я что-то пропустил с помощью этой техники?
- Есть ли способ просто получить элемент в виде строки ("< MyElement myAttr = \ "Foo \" > some_string </MyElement >"), и я буду процесс это сам?
- Вы рекомендуете какой-либо другой подход?
Нам нужно увидеть ваш java – skaffman
Если это было непонятно - мне нужно только поддерживать совместимость с предыдущими файлами XML. И я могу делать все, что захочу, с помощью Java-кода. Поэтому я намеренно не поставлял его, чтобы не уклоняться от вас (Блейз Доуэн общался с ним довольно хорошо). – targumon