2017-01-30 12 views
0

Все, Я пытаюсь создать вывод XML как -JAXB Сортировочные хз: любой пружинного ботинке

<Row> 
    <City>Boston</City> 
    <Runners>7000</Runners> 
</Row> 

Сформированный тип из XSD является:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "RowType", propOrder = { 
    "any" 
}) 
public class RowType { 

    @XmlAnyElement(lax = true) 
    protected List<Object> any; 
    public List<Object> getAny() { 
     if (any == null) { 
      any = new ArrayList<Object>(); 
     } 
     return this.any; 
    } 

} 

Демаршаллизация работает отлично, в то время как Маршаллинг дает выходные данные, как показано ниже.

<Row> 
    <any> 
     <name>CITY</name> 
     <declaredType>java.lang.String</declaredType> 
     <scope>javax.xml.bind.JAXBElement$GlobalScope</scope> 
     <value>Boston</value> 
     <nil>false</nil> 
     <globalScope>true</globalScope> 
     <typeSubstituted>false</typeSubstituted> 
    </any> 
    <any> 
     <name>RUNNERS</name> 
     <declaredType>java.lang.String</declaredType> 
     <scope>javax.xml.bind.JAXBElement$GlobalScope</scope> 
     <value>7000</value> 
     <nil>false</nil> 
     <globalScope>true</globalScope> 
     <typeSubstituted>false</typeSubstituted> 
    </any> 
</Row> 

Любая идея, как я мог бы сделать эту работу с помощью Spring boot?

+0

Это довольно неудобно для создания XSD из (очень простого) xml - как вы видите, результат «довольно общий». Обычно вы пишете xsd «вручную» или генерируете его из класса «fine» jaxb (-annotated). – xerx593

ответ

0

POJO сгенерирован неправильный. Это должно было

ROWTYPE:

public class RowType 
{ 
    private Row Row; 

    public Row getRow() 
    { 
     return Row; 
    } 

    public void setRow (Row Row) 
    { 
     this.Row = Row; 
    } 

    @Override 
    public String toString() 
    { 
     return "ClassPojo [Row = "+Row+"]"; 
    } 
} 

Row.java:

public class Row 
{ 
    private String Runners; 

    private String City; 

    public String getRunners() 
    { 
     return Runners; 
    } 

    public void setRunners (String Runners) 
    { 
     this.Runners = Runners; 
    } 

    public String getCity() 
    { 
     return City; 
    } 

    public void setCity (String City) 
    { 
     this.City = City; 
    } 

    @Override 
    public String toString() 
    { 
     return "ClassPojo [Runners = "+Runners+", City = "+City+"]"; 
    } 
} 

Перекрестная проверка с помощью этого инструмента: http://pojo.sodhanalibrary.com/Convert

+0

Не уверен, что это имеет к этому какое-то отношение. Если я создаю свой собственный маршал Jaxb и маршал его, он печатает прекрасный маршаллер Marshaller = JAXBContext.newInstance (....). CreateMarshaller(); marshaller.marshal (outputType, System.out); – basu76

 Смежные вопросы

  • Нет связанных вопросов^_^