2011-01-07 19 views
1

ActionScript 3では、xmlからActionScriptクラスへのデコード方法は?ActionScript 3では、xmlからActionScriptクラスへのデコード方法は?

XmlEncoderを使用して、ActionScriptクラスからxmlにエンコードできます。

私が当時使用していたxmlスキーマはこれです。

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

このスキーマはない注釈でPOJOを使用したAnt(schemagen)タスク(User.java)によって作成されます。

しかし、私はこのスキーマとXMLDecoderのを使用してActionScriptクラスをXMLからデコードすることができませんでした。 (正確には、オブジェクト型からユーザー型へのキャストはできません)

Javaクラスに@XmlRootElementや@XmlTypeのような注釈を入れたくありません。

はしかし、私は、マーシャリングおよびアンマーシャリングするためのActionScriptのクライアント側のスキーマファイルが必要です。

私に任意のソリューションや例を教えてください...

答えて

0

次のクラス:なし次のコードを使用して

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

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

} 

には、次のXMLを非整列化するために使用することができます

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()); 
    } 
} 
:Userクラス上の任意の注釈を必要とします
+0

Blaiseありがとうございました! Javaでは、このように書くことができると思います。しかし、そのXMLを使用するためにActionScript 3で書く方法は? – Take

関連する問題