[Java lista] JAXB & @XmlAttribute

Avramucz István avramucz at gmail.com
2010. Jún. 1., K, 16:39:25 CEST


Hello!

Az alábbiakban felvázolt osztályokat a következő módon használom JAX-RS
esetén:

    @POST
    @Path("/addidopont")
    @Produces("application/xml")
    public ValidationError addIdopont(...) {
        List<Error> errorList = new ArrayList<Error>();
        if (...) {
            errorList.add(new Error("kezdDatum","Helytelen dátum!"));
        }
        ...
        return new ValidationError(errorList);
    }

Ez szépen előállítja a kívánt struktúrát (nem XML-t :D ), kivéve a
<message success="false"> elemet. :(

AI

2010-06-01 15:57 keltezéssel, Verhás István írta:
> Mindig csak a kifogások :-)
> Mi jaxb úgy szoktunk használni, hogy XSD-t készítünk és utána a jaxb
> generálja ezeket az annotált osztályokat. Ennek az az egyszerű oka,
> hogy az IDE támogatás jobb az XSD-re mint a jaxb annotációkra, meg
> talán jobban is átlátható.
> ĂĽdv
> vi
>
> Zsombor wrote:
>> Nem beszélve a sehol sem használt Message belső osztályról :)
>>
>> Zs
>>
>> 2010/6/1 István Viczián <viczian.istvan at gmail.com
>> <mailto:viczian.istvan at gmail.com>>
>>
>>     Szia!
>>
>>     Ez nem XML, mert nem egy root tag van!
>>
>>     Viczi
>>
>>     2010/6/1 Avramucz István <avramucz at gmail.com
>>     <mailto:avramucz at gmail.com>>:
>>     > Hello javalist!
>>     >
>>     > JAXB annotációk segítségével szeretném előállítani a következő
>>     XML-t:
>>     >
>>     > <?xml version="1.0" encoding="UTF-8"?>
>>     > <message success="false">
>>     > <errors>
>>     >       <field>
>>     >               <fieldID>befIdo</fieldID>
>>     >               <msg>Helytelen időpont!</msg>
>>     >       </field>
>>     > </errors>
>>     >
>>     > import java.util.ArrayList;
>>     > import java.util.List;
>>     > import javax.xml.bind.annotation.XmlAccessType;
>>     > import javax.xml.bind.annotation.XmlAccessorType;
>>     > import javax.xml.bind.annotation.XmlAttribute;
>>     > import javax.xml.bind.annotation.XmlElement;
>>     > import javax.xml.bind.annotation.XmlRootElement;
>>     >
>>     > @XmlRootElement(name = "errors")
>>     > public class ValidationError {
>>     >
>>     >     @XmlAccessorType(XmlAccessType.FIELD)
>>     >     class Message {
>>     >         @XmlAttribute
>>     >         private Boolean success = false;
>>     >     }
>>     >
>>     >     @XmlElement
>>     >     protected ArrayList<Error> field;
>>     >
>>     >     public ValidationError() {
>>     >     }
>>     >
>>     >     public ValidationError(List<Error> list) {
>>     >         field = new ArrayList<Error>();
>>     >         for (Error error : list) {
>>     >             field.add(error);
>>     >         }
>>     >     }
>>     >
>>     >     public ArrayList<Error> getErrors() {
>>     >         return field;
>>     >     }
>>     >
>>     > }
>>     >
>>     >
>>     > import javax.xml.bind.annotation.XmlElement;
>>     > import javax.xml.bind.annotation.XmlRootElement;
>>     >
>>     > @XmlRootElement(name = "field")
>>     > public class Error {
>>     >
>>     >     private String fieldID;
>>     >     private String msg;
>>     >
>>     >     public Error() {
>>     >     }
>>     >
>>     >     public Error(String fieldID, String msg) {
>>     >         this.fieldID = fieldID;
>>     >         this.msg = msg;
>>     >     }
>>     >
>>     >     @XmlElement
>>     >     public String getFieldID() {
>>     >         return fieldID;
>>     >     }
>>     >
>>     >     public void setFieldID(String fieldID) {
>>     >         this.fieldID = fieldID;
>>     >     }
>>     >
>>     >     @XmlElement
>>     >     public String getMsg() {
>>     >         return msg;
>>     >     }
>>     >
>>     >     public void setMsg(String msg) {
>>     >         this.msg = msg;
>>     >     }
>>     > }
>>     >
>>     > Sajnos a <message success="false"> elemet nem sikerĂĽl
>>     előállítanom a fenti
>>     > mĂłdszerrel. Mit javasoltok?
>>     >
>>     > AI
>>     > _______________________________________________
>>     > Javalist mailing list
>>     > Javalist at javagrund.hu <mailto:Javalist at javagrund.hu>
>>     > http://javagrund.hu/mailman/listinfo/javalist
>>     >
>>     >
>>     _______________________________________________
>>     Javalist mailing list
>>     Javalist at javagrund.hu <mailto:Javalist at javagrund.hu>
>>     http://javagrund.hu/mailman/listinfo/javalist
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>   
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>   

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20100601/73ba840b/attachment.html 


További információk a(z) Javalist levelezőlistáról