2013-02-15 4 views
0

나는 머리를 감당할 수 없다는 예외가 발생했다. xmlns를 required = false로 설정하면 모든 것이 작동하지만 xmlns 값은 null입니다. 다른 모든 값은 예상대로 설정됩니다.Simplexml valuerequired exception

XML 내가 읽고있다가 :

02-15 18 : 05 : 55.988 : System.err에/W (31450) : org.simpleframework.xml

<test xmlns="somestring"   
id="123456" 
timestamp="2013-05">   
<value1>12</value1>  
<value2>3 </value2>  
</test> 

이 오류 메시지입니다. core.ValueRequiredException : 필드 'xmlns'에서 @ org.simpleframework.xml.Attribute (empty =, name = xmlns, required = true)를 만족할 수 없습니다. parsing.Test 클래스의 private java.lang.String parsing.Test.xmlns 1

코드 :

@Root(name = "test") 
public class Test { 


    @Element(name = "value1") 
    private String value1; 
    @Element(name ="value2") 
    private String value2; 

    @Attribute(name = "xmlns") 
    private String xmlns; 
    @Attribute(name = "id") 
    private String id; 
    @Attribute(name = "timestamp") 
    private String timestamp; 



    public Test() { 
    } 

    public Test (String value1, String value2, String xmlns, String id, String timestamp) { 
     this.value1 = value1; 
     this.value2 = value2; 
     this.xmlns = xmlns; 
     this.id = id; 
     this.timestamp = timestamp; 
    } 

    public String getValue1() { 
     return value1; 
    } 

    public String getValue2() { 
     return value2; 
    } 
    public String getXMLns() { 
     return xmlns; 
    } 
    public String getId() { 
     return id; 
    } 
    public String getTimeStamp() { 
     return timestamp; 
    }} 

직렬화 방법 : 당신이 오류가 발생하는 이유

public Test DeSerialize (String xml) { 
    //System.out.println("xml: \n " + xml); 
    try { 
     test = serializer.read(Test.class, xml); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return test; 
} 

답변

1

네임 스페이스 예약되어 속성에 xmlns이있다.