2009-09-15 2 views
2

JAXB POJO를 XOM 문서에 마샬링하기 위해 함께 연결해야하는 비트를 파악하려고합니다. 그 반대의 경우도 마찬가지입니다.JAXB 개체를 XOM으로 마샬링하는 방법은 무엇입니까?

JAXB Marshaller 인터페이스의 마샬링 방법은 다양한 대상 (예 : Result)을 사용하지만 XOM 어댑터가없는 것은 아닙니다. 짜증나게 XOM API는 XOMResult 구현을 가지고 있지만 패키지로 보호되며 내부적으로 만 사용됩니다.

문자열 버퍼 나 바이트 버퍼를 사용하지 않고도 XOM과 마샬링 할 수있는 다른 방법이 있습니까?

답변

0

아마도 DOM을 피하기 위해 XOM을 사용하고 있기 때문에 DOM을 사용하는 것이 좋지 않은지 잘 모르겠습니다. 어쨌든 here과 XOM의 DOMConverter을 설명하는 JAXB Binder를 사용하면 String 또는 byte 버퍼를 사용하지 않고 JAXB에서 DOM, XOM으로 이동할 수 있습니다.

JAXB는 해당 객체의 인스턴스에 마샬링을 지원하기 때문에 XOM에 SAX ContentHandler에서 XOM 문서를 작성하는 유틸리티가 없다는 것은 너무 나쁘다. XOM은 SAXConverter을 가지고 있는데 Document에서 ContentHandler를 생성 할 수 있지만 그 반대의 것은 아닙니다.

여기 XOM-interest 메일 링리스트의 관련 스레드입니다. 나는 오래된 프로젝트 nux 발견

+0

그래, JAXB-> DOM-> XOM에서 나는 현재 붙어 있지만 내 입에 나쁜 맛을 남긴다. – skaffman

+0

전적으로 이해합니다. 아마도 누락 된 변환기를 만들어 XOM에 기여할 수있는 기회일까요? ;) – laz

1

:

http://acs.lbl.gov/software/nux//api/nux/xom/pool/XOMUtil.html

jaxbMarshal/jaxbUnmarshal DOMConverter을 ;-(사용

B http://acs.lbl.gov/software/nux/api/nux/xom/io/StaxUtil.html ... 또한 StAX를 파서를 사용하는 XOM 빌더 구현이 포함되어 있습니다. SAX 파서 대신에 기본 XOM 문서 또는 단편에서 읽는 XMLStreamReader 구현 및 기타 도구

StaxUtil.createXMLStreamReader (노드 루트) 기본 XOM 노드에서 읽는 StAX XMLStreamReader 끌어 오기 구문 분석기 구현을 생성하고 반환합니다. 일반적으로 문서 또는 단편 (하위 트리). Xm 트리를 SOAP/AXIOM, JAXB 2, JiBX 또는 XMLBeans로 효율적으로 변환하는 데 이상적입니다. 예를 들어 StreamingPathFilter와 함께 Unmarshaller를 통해 XQuery 결과를 점진적으로 변환 할 때 유용합니다.

이게 도움이 될 수 있나요?

관련 문제