2016-09-01 7 views
0

Я пытаюсь создать классы POJO для следующих XML, отдых в порядке, но я не могу получить значения параметра tag i.e valueB, valueC.Класс Pojo (XML to Object)

Я создал классы pojo, Input и Parameter для ниже xml, из которых ниже указан код класса параметров.

Ниже XML:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE step SYSTEM "step.dtd"> 
<step> 
    <class>Step</class> 
    <description> test </description> 
    <input> 
     <parameter name="A" overwrite="yes"/> 
     <parameter name="B" overwrite="yes">valueB</parameter> 
     <parameter name="C" overwrite="yes">valueC</parameter>  
</input> 
</step> 

Pojo Класс:

public class Parameter 
{ 
    private String name; 
    private String parameter; 

    private String content; 

    public String getContent() 
    { 
     return content; 
    } 

    public String setContent() 
    { 
     return content; 
    } 



    private String overwrite; 
    @XmlAttribute 
    public String getName() 
    { 
     return name; 
    } 

    public void setName (String name) 
    { 
     this.name = name; 
    } 

    public String getOverwrite() 
    { 
     return overwrite; 
    } 

    public void setOverwrite (String overwrite) 
    { 
     this.overwrite = overwrite; 
    } 

    @Override 
    public String toString() 
    { 
     return "ClassPojo [content = "+content+",name = "+name+", overwrite = "+overwrite+", parameter="+parameter+"]"; 
    } 
} 

Input Класс:

public class Input 
{ 
    private Parameter[] parameter; 

    public Parameter[] getParameter() 
    { 
     return parameter; 
    } 

    public void setParameter (Parameter[] parameter) 
    { 
     this.parameter = parameter; 
    } 



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

Шаг Класс:

@XmlRootElement(name="step") 
public class Step 
{ 
    private Input input; 

    private String description; 

    private String class1; 

    private Output output; 

    public Input getInput() 
    { 
     return input; 
    } 

    public void setInput (Input input) 
    { 
     this.input = input; 
    } 

    public String getDescription() 
    { 
     return description; 
    } 

    public void setDescription (String description) 
    { 
     this.description = description; 
    } 

    public String getClass1() 
    { 
     return class1; 
    } 

    public void setClass (String class1) 
    { 
     this.class1 = class1; 
    } 

    public Output getOutput() 
    { 
     return output; 
    } 

    public void setOutput (Output output) 
    { 
     this.output = output; 
    } 

    @Override 
    public String toString() 
    { 
     return "ClassPojo [input = "+input+", description = "+description+", class = "+class1+", output = "+output+"]"; 
    } 
} 
+0

проверка метод setContent() в POJO классе Он возвращается содержание, изменить его –

+0

я попытался добавить getContent(), setContent() в классе параметров есть ли аннотации должны быть добавлены над этими gettter сеттеров, чтобы сделать их Работа . –

+0

Какой парсер вы использовали? –

ответ

1

Добавьте @XmlValue в свой контент Строка в классе параметров.

Вам также нужно будет добавить @XmlAttribute к вашему методу getOverwrite(), чтобы он работал.

+0

После добавления @XmlValue я получаю следующее исключение: –

+0

com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 count of IllegalAnnotationExceptions Если класс имеет @ XmlElement, он не может иметь свойство @ XmlValue. \t эта проблема связана со следующим адресом: \t \t в частном java.lang.String Parameter.content \t \t в параметре \t \t на казенный Parameter [] Input.getParameter() \t \t на входе \t \t на входе Step.getInput общественности() \t \t на этапе \t эта проблема связана со следующим адресом: \t \t на общественном J ava.lang.String Parameter.getOverwrite() –

+0

Аннотировать свой переписывающий getter с помощью '@XmlAttribute –