JAXB와 XmlBeans의 차이점

Anonim

JAXB vs XmlBeans

의 처리에 사용되는 프로세스입니다. JAXB는 JavaEE 표준의 일부이며 XML 바인딩을위한 Java Architecture를 참조합니다. 이 프로세스는 XML 문서 처리에 사용됩니다. JAXB는 XML 기술의 모든 작은 세부 사항을 반드시 이해할 필요없이 Java에서 XML 문서 처리를위한 대안을 제공하므로 선호됩니다. JAXB는 JavaEE 5 호환 응용 프로그램에서 오픈 소스 패키지로 사용할 수 있습니다. 이 패키지는 데이터 바인딩 및 Java 프로그래밍 언어로 작성된 XML 문서의 읽기 및 액세스를 용이하게합니다. 한편, XMLBeans는 BEA 시스템에서 개발 한 오픈 소스 프로젝트이며, XML 문서에 액세스 할 수 있도록 JAXB와 유사한 기능을 제공합니다. 그러나 XMLBeans를 다룰 때 XML에 대한 훌륭한 지식이 필요합니다. 그러나이 둘 사이에는 차이점이 있으며 아래에 설명되어 있습니다.

차이점

JAXB와 XMLBeans를 개발하기 전에 XML을 처리 할 수있는 유일한 방법은 SAX (XML for Simple API)를 분석하는 소프트웨어를 사용하거나 DOM (Document Object Model)은 JAXP (API 처리 용 Java API)에서 제공하는 두 가지 분석 언어입니다. 개발자는 코드가 XML 문서의 언어를 분석 할 수 있도록 JAXP를 통해 DOM 또는 SAX를 호출하는 코드를 작성해야했습니다. 코드를 스캔 할 때 코드는 일반적으로 코드를 여러 부분으로 나누어 대상 응용 프로그램에서 사용할 수있게합니다.

JAXB와 XMLBeans의 주된 차이점은 XML 문서의 마샬링과 언 마샬링 (unmarshalling)을 취하는 접근법이라는 점입니다. XMLBeans는 XML 문서의 데이터 무결성이 손실 된 것으로 보여 Java 변환을 거치지 않고 전체 XML 문서를 처리합니다. XMLBeans는 XML 문서를 통해 스캔하는 커서를 생성합니다. 커서를 사용하면 문서의 충실도가 유지되므로 스키마 정보 나 주석을 포함하여 문서의 모든 요소에 액세스 할 수 있습니다. XMLBeans는 동일한 문서 내에서 XQuery의 실행도 제공합니다. XMLBeans는 API를 반영하는 다소 일반적인 액세스 유형을 사용하여 더 많은 형식화 된 액세스를 제공합니다. XMLBeans는 앞서 언급했듯이 XML과 확장 성, SAX 또는 DOM에 대한 방대한 지식이 필요합니다.

JAXB는 다른 한편으로는 XML 스키마에 묶여있다. 이것은 DTD (Document Type Definitions) 만 지원할 수있는 모든 XML 스키마 기능을 지원할 수 없었기 때문에 첫 번째 JAXB 릴리스에서 발생한 문제를 해결합니다. 사실, 이것은 JAXB의 첫 번째 릴리스가 읽을 수있는 바인딩을 제공 할 수 없다는 것을 의미했습니다.JAXB 2.0은 완전한 XML 스키마 지원, Java에서 XML 스키마로의 매핑, 이식성 및 스키마 진화를 제공하므로 개발 프로세스를 매우 쉽게 처리 할 수 ​​있습니다. 게다가 JAXB는 유효하지 않은 XML 컨텐트의 유연한 비 정렬 화를 도입하여 언 마샬링을 종료할지 여부를 결정하지 않았습니다.

요약:

-보다 강력한 XML 기능을 선호하는 경우 XMLBeans가 더 좋습니다. e. 지. XQueries 및 직접 XML 문서 액세스. 그 사용은 메모리 관리와 성능을 희생시키면서 이루어진다.

- JAXB는 XMLBeans만큼 철저하지는 않지만 더 높은 성능과 메모리 관리를 원한다면 선호됩니다.

- 간단한 XML 문서 변환 후에 JAXB를 선택해야합니다.

- 바인딩 커스터마이징은 XMLBeans와는 반대로 JAXB에서 가장 잘 발생합니다.

- JAXB는 메모리 의존 프로세스 인 XMLBeans를 사용하는 것과는 대조적으로 효율적인 메모리 사용을 제공합니다. XML 문서를 언 마샬하려는 경우 XMLBeans가 언 마샬링에 어려움을 겪으므로 JAXB가 선택됩니다. 바인딩 스키마에서 객체 작성을 위해 ObjectFactory를 사용하고 컨텐츠 작성 세대에서 세트 메소드를 사용할 수 있습니다.