2011-01-07 6 views
1

En ActionScript 3, comment décoder du format XML en classe ActionScript?En ActionScript 3, comment décoder du format XML en classe ActionScript?

Je pourrais encoder de la classe ActionScript en XML en utilisant XmlEncoder.

Le schéma xml que j'ai utilisé à ce moment est celui-ci.

[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> 

Ce schéma est créé par Ant (schemagen) tâche à l'aide POJO (User.java) sans annotations.

Mais je ne pouvais pas décoder de xml en classe ActionScript en utilisant ce schéma et XmlDecoder. (Correctement, je ne peux pas terminer la conversion du type d'objet en type d'utilisateur.)

Je ne souhaite placer aucune annotation comme @XmlRootElement ou @XmlType dans la classe Java.

Cependant, j'ai besoin d'un fichier de schéma pour le côté client d'ActionScript pour marshaler et unmarshall.

S'il vous plaît me dire des solutions ou des exemples ...

Répondre

0

La classe suivante:

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; 
    } 

} 

Peut être utilisé pour désorganiser le code XML suivant:

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

En utilisant le code suivant sans nécessitant des annotations dans la classe User:

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

Merci Blaise! En Java, je pense que je serai capable d'écrire comme ça. Mais comment écrire en ActionScript 3 pour utiliser ce fichier XML? – Take