타사 웹 서비스에서 데이터를 사용하려고합니다. 불행히도, 웹 서비스는 내가 말하는 XML이 비정상적인 XML 형식으로 데이터를 반환하고 있습니다. 여기에 내가 서비스에서 수신하고 데이터의 샘플입니다JAXB 주석 XML 루트 노드에 PCData가 포함 된 경우
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://mynamespace">(-76.4844131, 39.1031567, 0.0000000)
(-76.4871168, 39.1031567, 0.0000000)
(-76.4875889, 39.1042890, 0.0000000)
(-76.4905500, 39.1052881, 0.0000000)
</string>
대신 웨이 포인트 요소 (위도, 경도, 고도)의 목록이 포함 된 루트 노드를 가지고는, 루트 노드의 내용은 큰 문자열입니다 값. 문자열을 구문 분석 할 수는 있지만 JAXB (서비스 호출에 JERSEY를 사용하고 있기 때문에)를 사용하여이 반환 된 XML을 Java POCO로 변환하려고합니다.
루트 노드의 큰 문자열 본문을 경유지 목록이있는 POCO 클래스로 변환하는 것이 이상적이지만 JAXB 외부에서 사용자 지정 XML 비 직렬화가 필요하다고 생각합니다. 불행하게도
@XmlRootElement(name="string", namespace="http://mynamespace")
public class Route {
private String _wayPoints;
@ ????
public String getWayPoints() { returns _waypoints; }
public void setWayPoints(String wayPoints) { _wayPoints = wayPoints; }
}
, 내 속성 중 하나가 만족해야한다는 마샬 말할 JAXB에서 어떤 방법을 보지 못했다 : 나는 JAXB를 사용할 수있는 경우
는하지만이 같은 행복 거라고 루트 요소 또는 다른 요소 중 하나의 요소.
@XmlElementContent(ElementName="string")
하고 내 루트 요소의 내용 (또는 innerText와)에 내 웨이 포인트 속성의 내용을 비 정렬 화/마샬링 것이다 : 나는 같은 내 속성에 주석을 수 있다면
이상적으로는 좋은 것입니다.
아무도 비슷한 문제가 있습니까? JAXB로 이것을 수행 할 수있는 방법이 있습니까? 아니면 그냥 문자열 구문 분석 및/또는 사용자 지정 XML deserializer 작성하는 것이 좋습니다.
감사합니다.
도현을 사용할 수 있습니다! 감사. 모든 JAXB 어노테이션 중에서 완전히 빠뜨린 것. 챔피언처럼 작동합니다! =) – CoderN8