Запутался, как использовать адаптер JAXB XML для моего требования

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

<SampleRequest  user="testUser"  account="testAccount"    Specifier=  "value1a,value1b,value1c : name2a,value2b,value2c"/>

Мое требование состоит в том, что атрибут Specifier имеет несколько серий значений (:, разделенных двоеточием ), мне нужно сопоставить каждую серию значений с моим пользовательским классом Java

Я пробовал так

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SampleRequest {

    @XmlAttribute
    private String user;

    @XmlAttribute
    private String account;


    @XmlAttribute(name="Specifier")
    private List<Specifier> specifier;


}

Спецификатор.java

@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {



}

SpecifierAdapter.java

public class SpecifierAdapter  extends XmlAdapter{

    @Override
    public Object marshal(Object arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Object unmarshal(Object arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

}

Отредактированная часть

Класс Specifier имеет 3 свойства String.

class Specifier
{
String value1;
String value2;
String value3;
}

И мне нужно, чтобы каждая серия Specifier, например (value1a, value1b, value1c ), должна быть сопоставлена ​​​​со значением1, значение2, значение3 соответственно

Отредактированная Часть 3

Привет, Спасибо за ответ, я попытался разобрать этот пример, но обнаружил, что получаю null

Это запрос, который я передал

<sampleRequest user="user" account="account" Specifier="v1,v2,v3 : a1,a2,a3"/>

Просто хочу убедиться, что мой класс Specifier правильный или нет? (Поскольку я не использовал здесь никаких аннотаций)

package com;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {


    Specifier(String v1, String v2, String v3)
    {

    }

    String value1;

    public String getValue1() {
        return value1;
    }

    public void setValue1(String value1) {
        this.value1 = value1;
    }

    public String getValue2() {
        return value2;
    }

    public void setValue2(String value2) {
        this.value2 = value2;
    }

    public String getValue3() {
        return value3;
    }

    public void setValue3(String value3) {
        this.value3 = value3;
    }

    String value2;
    String value3;

}
8
задан Pawan 10 August 2012 в 15:08
поделиться