XML-схема к классам Java с XJC

Я использую xjc для генерации классов Java из XML-схемы, и следующее является выборкой XSD.


  
    
      
         
        
          
           
        
      
      
    
  

По большей части сгенерированные классы прекрасны, но для вышеупомянутого блока я получил бы что-то как:

public List getContent() {
  if (content == null) {
    content = new ArrayList();
  }
  return this.content;
}

со следующим комментарием выше его:

* You are getting this "catch-all" property because of the following reason: 
* The field name "UnstructuredName" is used by two different parts of a schema. See: 
* line XXXX of file:FILE.xsd
* line XXXX of file:FILE.xsd
* To get rid of this property, apply a property customization to one 
* of both of the following declarations to change their names: 
* Gets the value of the content property.

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

В данный момент я не думаю, что будет легко изменить схему, так как это было решено между поставщиками, и я не захочу идти этим путем (если возможный), поскольку это замедлит прогресс вполне немного.

Я искал и нашел эту страницу, внешняя настройка, что я хочу сделать? Я был главным образом рабочим со сгенерированными классами, таким образом, я не совсем знаком с процессом, который генерирует эти классы. Простой пример "настройки свойства" был бы ярким! Альтернативный метод генерации классов Java был бы прекрасен, пока схема может все еще использоваться.

Править: Я должен разъяснить что два UnstructuredName действительно тот же элемент.

9
задан nevets1219 26 April 2010 в 23:23
поделиться

1 ответ

Существенная проблема здесь в том, что у вас есть , состоящий из , что на Java переводится как « Список вещей». Структура типов Java недостаточно гибкая, чтобы лучше представить это.

Настройка привязки может помочь вам, но в этом случае я подозреваю, что нет, поскольку я не вижу лучшего способа представления этой информации.

Альтернативный метод, который я использовал в прошлом, заключается в том, чтобы сначала передать схему через простое преобразование XSLT, переупорядочивая компоненты во что-то более дружественное к JAXB, сохраняя при этом те же структуры, которые будут иметь документы в действительности. Таким образом, вы можете «изменить» схему, не изменяя исходную.

1
ответ дан 4 December 2019 в 22:27
поделиться
Другие вопросы по тегам:

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