2011-01-07 6 views
1

Wie dekodiert man in ActionScript 3 von XML in die ActionScript-Klasse?Wie dekodiert man in ActionScript 3 von XML in die ActionScript-Klasse?

Ich könnte mithilfe von XmlEncoder aus ActionScript-Klasse in Xml codieren.

Das XML-Schema, das ich zu dieser Zeit verwendete, ist dies.

[Schema1.xsd]

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:complexType name="user"> 
    <xs:sequence> 
     <xs:element name="id" type="xs:string" minOccurs="0"/> 
     <xs:element name="password" type="xs:string" minOccurs="0"/> 
     <xs:element name="userDate" type="xs:dateTime" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

Dieses Schema von Ant (schemagen) Aufgabe erstellt wird POJO (User.java) ohne Anmerkungen.

Aber ich konnte nicht von XML zu ActionScript-Klasse mit diesem Schema und XmlDecoder dekodieren. (In korrekter Weise kann ich nicht vom Objekttyp zum Benutzertyp umwandeln.)

Ich möchte keine Anmerkungen wie @XmlRootElement oder @XmlType in Java-Klasse setzen.

Ich benötige jedoch eine Schemadatei für die Clientseite von ActionScript zum Marshal und Unmarshall.

Bitte sagen Sie mir irgendwelche Lösungen oder Beispiele ...

Antwort

0

Die folgende Klasse:

import java.util.Date; 

public class User { 

    private String id; 
    private String password; 
    private Date userDate; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public Date getUserDate() { 
     return userDate; 
    } 

    public void setUserDate(Date userDate) { 
     this.userDate = userDate; 
    } 

} 

Kann verwendet werden, die folgende XML zu entpacken:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <id>123</id> 
    <password>foo</password> 
    <userDate>2011-01-07T09:15:00</userDate> 
</root> 

Verwendung des folgenden Codes ohne erfordert Anmerkungen zur Benutzerklasse:

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.JAXBElement; 
import javax.xml.bind.Unmarshaller; 
import javax.xml.transform.stream.StreamSource; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     JAXBContext jc = JAXBContext.newInstance(User.class); 

     StreamSource source = new StreamSource("input.xml"); 
     Unmarshaller unmarshaller = jc.createUnmarshaller(); 
     JAXBElement<User> root = unmarshaller.unmarshal(source, User.class); 

     User user = root.getValue(); 
     System.out.println(user.getId()); 
     System.out.println(user.getPassword()); 
     System.out.println(user.getUserDate()); 
    } 
} 
+0

Danke Blaise! In Java glaube ich, dass ich so schreiben kann. Aber wie schreibe ich in ActionScript 3 für die Verwendung dieser XML? – Take

Verwandte Themen