2010-08-01 5 views
0

이것은 매우 일반적인 문제이지만 누군가가 솔루션을 제공 할 수 있다면 여전히 특별한 해결책이 필요합니다.JAXB 이름 공간을 사용하지 않기 마샬링 및 언 마샬링

JAXB.unmarshal('file', class); 

xml 파일에있는 네임 스페이스 때문에 클래스 개체가 내부 요소로 채워지지 않습니다.

내가 발견 한 전환점은 JAXBContext 개체 생성 및 unmarshaller를 만들고 이름 공간을 인식하도록 만드는 것이 었습니다.

다른 해결책이있는 경우 궁금합니다.

답변

1

XML이 네임 스페이스를 사용하는 경우 요소 이름의 일부이며, 네임 스페이스가 제거되지 않은 것처럼 구문 분석되어서는 안됩니다. 그러므로 JAXB에서는 옵션이 아닙니다. 이 라인에있는 previous question은 unamespaced 이름에 바인딩 된 JAXB 객체를 사용하여 모든 네임 스페이스를 비 정렬 화 및 제거하기 전에 XML을 삭제하는 유일한 해결책을 제공합니다.

0

노드가 항상 네임 스페이스 URI로 정규화 된 경우이 네임 스페이스 정보를 JAXB 바인딩에 추가해야합니다. 많은 JAXB 어노테이션은 네임 스페이스 매개 변수 (즉, XmlRootElement, XmlAttribute, XmlElement 등)를 사용합니다. 또한 @XmlSchema라는 패키지 수준의 주석이 있으며 기본 네임 스페이스와 기본 네임 스페이스 자격 규칙을 지정할 수 있습니다.

관련 문제