1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Simple Framework - Reihenfolge für XML-Elemente festlegen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von J4y, 26.08.2011.

  1. J4y, 26.08.2011 #1
    J4y

    J4y Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    2
    Registriert seit:
    12.06.2011
    Hallo alle miteinander,

    ich versuche mithilfe des SimpleFramework eine XML Datei zu schreiben.
    Leider scheint es dem Framework egal zu sein in welcher Reihenfolge ich die Attribute in der Klasse definiere.
    Hier mal eine Beispielklasse:
    Code:
    @Root(name="doc")
    public class MyXMLDoc {
        
        
        @Element(name="name")
        private String name;
        
        @Element(name="id")
        private int id;
        
        @Element(name="address")
        private String address;
    }
    Wenn ich die XML Datei serialisiere, kommt das hier dabei heraus:
    HTML:
    <doc>
       <address>home</address>
       <name>Paul</name>
       <id>123</id>
    </doc>
    Die Reihenfolge wird also geändert.
    Für mich ist es aber wichtig, dass die beibehalten wird. Die Datei soll nämlich serverseitig ausgewertet werden und der verweigert mir ansonsten den Dienst.

    Weiß jemand Rat?
     
  2. J4y, 26.08.2011 #2
    J4y

    J4y Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    2
    Registriert seit:
    12.06.2011
    Hallo,

    wieder einmal hat richtiges Googeln geholfen :-D
    Es gibt in dem Framework neben den Annotationen @Element usw auch noch die Annotation @Order - wird natürlich nicht in den Tutorials erwähnt^^
    Order
    Damit kann man die Reihenfolge der Elemente fest vorschreiben. die Annotation nimmt die Argumente attributes und elements entgegen, die beide als Wert einen String-Array erwarten. Hier kann man dann die Namen der Elemente bzw. Attribute eingeben.
    Für mein Beispiel sieht das dann so aus:
    Code:
    @Root(name="doc")
    @Order(elements={"name", "id", "address"})
    public class MyXMLDoc {
        
        @Element(name="name")
        private String name;
        
        @Element(name="id")
        private int id;
        
        @Element(name="address")
        private String address;
    }
    :)
     

Diese Seite empfehlen