2011-09-06 2 views
1

나는이 밑바닥에 닿을 것 같지 않다. 내가 직렬화 복원을 위해 이러한 클래스를 만들었습니다simpleframework xml 및 kml for @ElementList의 문제

<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 
<Placemark> 
<name>Admissions</name> 
<description>60.59</description> 
<Polygon><tessellate>1</tessellate><outerBoundaryIs> 
<LinearRing> 
<coordinates>-1.1949914,52.93765,0 -1.1946743,52.937794,0 -1.1946228,52.93776,0 -1.1936871,52.938156,0 -1.19373,52.93821,0 -1.1933881,52.93836,0 -1.1935841,52.938503,0 -1.19424,52.938213,0 -1.1951548,52.93781,0 -1.1949914,52.93765,0</coordinates> 
</LinearRing> 
</outerBoundaryIs></Polygon> 
</Placemark> 
</Document> 
</kml> 

그리고 : 나는 안드로이드 V10

와 간단한 XML-2.3.2.jar를 사용하고

그래서 나는이 XML (KML)가

KML.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Root; 

@Root(name="kml",strict=false) 
public class KML { 
    @Element(required=true,name="Document") 
    public Document document; 
} 

Document.java

import java.util.List; 

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 

@Element 
public class Document { 
    @ElementList(required=false,inline=true) 
    public List<Placemark> placemarkList; 
} 

Placemark.java

import java.util.List; 

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 

@Element 
public class Placemark { 
    @Element(required=false) 
    public String name; 

    @Element(required=false) 
    public String description; 

    @Element(required=false,name="Polygon") 
    public Polygon polygon; 
} 

내가 얻을 실행하는 경우 : org.simpleframework.xml.core.ElementException : 요소 '위치 표시가'줄에서 일치하지 않습니다 - 1

Document.java의 @ElementList를 @Element로 바꾸면 작동하지만, 물론 하나의 하위 장소 표시 요소가있는 곳에서만 작동합니다!

덕분에 많이 데이브

답변

2

난 그냥 같은 문제가 있었다. ElementList 주석에 entry="Placemark"을 추가 해보십시오.

@Element 
public class Document { 
    @ElementList(inline=true, entry="Placemark", required=false) 
    public List<Placemark> placemarkList; 
}