2011-01-07 4 views
1

ActionScript 3에서 xml에서 ActionScript 클래스로 디코딩하는 방법은 무엇입니까?ActionScript 3에서 xml을 ActionScript 클래스로 디코딩하는 방법은 무엇입니까?

XmlEncoder를 사용하여 ActionScript 클래스에서 xml로 인코딩 할 수 있습니다.

그 당시 사용한 xml 스키마는 다음과 같습니다. 주석 없음으로 POJO (User.java)를 사용

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

이 스키마 개미에 의해 생성된다 (에서는 schemagen) 작업.

하지만이 스키마와 XmlDecoder를 사용하여 xml에서 ActionScript 클래스로 디코딩 할 수 없습니다. (정확하게, 객체 유형에서 사용자 유형으로 변환 할 수 없습니다.)

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()); 
    } 
} 
+0

감사합니다. Blaise! 자바에서는 이런 식으로 글을 쓸 수있을 것이라고 생각합니다. 하지만 그 XML을 사용하기 위해 ActionScript 3로 작성하는 방법은 무엇입니까? – Take

관련 문제