문제

당신은 무엇을 사용하여 바인딩에 대한 XML 을 Java?를 포함,캐스터,그리고 XMLBeans 는 일부 사용 가능한 선택입니다.비교는 제가 본 것은 모든 세 개 또는 네 개의 세입니다.내가 다른 제안입니다.마샬링/작성된 성능 및 사용 편의성의 특정 관심이 있습니다.

설명:보고 싶지만 무엇인 프레임 워크를 사용하지만에 대한 추론을 사용하여 하나 이상의 다른 사람입니다.

도움이 되었습니까?

해결책

Jibx. 이전에 내가 사용했습니다 캐스터 XML, 그러나 Jibx는 특히 성능 측면에서 상당히 우수한 것으로 판명되었습니다 (Castor XML에서 Jibx에 이르는 일부 응용 프로그램 코드의 직선 포트는 9 배 더 빠릅니다). 또한 Jibx의 매핑 형식이 Castor의 것보다 더 우아하다는 것을 알았습니다.

Jibx는 캐스터가 채택한 반사 접근법보다는 대결 후 바이트 코드 조작을 사용하여 성능을 달성합니다. 이것은 매핑 된 클래스를 작성하는 방식에 대한 요구를 줄이게된다는 이점이 있습니다. 도구를 만족시키기 위해 getters, setter 및 no-arg 생성자가 필요하지 않습니다. 대부분의 경우 매핑 문제를 고려하지 않고 클래스를 작성한 다음 수정 없이도 매핑 할 수 있습니다.

다른 팁

는 경우를 만들고 싶어 정보를 의사 결정을 명확하게 할 필요가 왜 당신은 번역 및 XML java 개체입니다.이유는 다른 기술을 이 공간에서도 다른 문제를 해결하기 위해.다른 도구는 두 가지로 카테고리:

  1. XML 데이터 바인딩-프로세스를 의미를 나타내는 정보를 XML 문서를 객체로서 컴퓨터 메모리.일반적으로,이를 정의하는 것을 의미합 XSD 및 생성 java 소스 코드를 동일합니다.Interop 다른 언어들 사이에서 최고 우선 순위(따라서 사용 XSD)-가장 일반적으로 구현을 위한 비누 기반으로 웹 서비스를 사용하고 있습니다.
  2. XML 바코드를 말한 쓰의 그래프에서 메모리를 스트림할 수 있도록 재구성 또는 언젠가 다른 사람.당신이 쓰 java 클래스에 의해 손으로;xml 표현은 보조 중요하다.또한,필요한 성능은 종종 더 크고 필요한 상호 운용성과는 다른 언어 있습니다.net 은 자주 낮습니다.

Xml 바코드,Xstream 을 이길 수 있습니다.를 포함하는 표준에 대한 XML 구속력이 있습니다.

어느 경우에 사용하는 경우,J2EE 해야 합니다주의를 지불하고 클래스에서 검색 JPA 이 클래스는 프록시와 지속성 컬렉션에는 특정 유형 혼동할 수 있는 바인딩/serialization 도구입니다.

XML 용 XSD가 있고 데이터를 기존 클래스 세트에 바인딩 할 필요가 없다면 정말 좋아합니다. xmlbeans. 기본적으로 다음과 같이 작동합니다.

  • XSD를 컴파일합니다
  • 생성 된 Java 클래스를 사용 하여이 스키마를 준수하는 문서를 읽고 쓰십시오.

XML 문서를 생성 된 클래스에 바인딩하는 것은 다음과 같이 간단합니다.

EmployeesDocument empDoc = EmployeesDocument.Factory.parse(xmlFile); 

우리는 사용 xstream. 마샬링 / 미혼은 사소합니다. 그들의보십시오 지도 시간 예를 들어.

Jibx 여기 주변에서 사용되는 것입니다. 매우 빠르지 만 바인딩은 약간 까다로울 수 있습니다. 그러나 도메인 객체를 설명하는 XML 스키마가있는 경우 특히 유용합니다. 실제로 XSD에 잘 맵핑되기 때문에 (XSD를 가져 와서 스터브 도메인 클래스 및 매핑을 만들 수있는 베타 도구 XSD2JIBX도 있습니다. 기존 도메인 모델에 맞습니다).

바이트 코드를 조작하므로 Java .class 파일의 초기 편집 후에 실행해야합니다. Maven 플러그인을 사용하거나 직접 사용할 수 있습니다 (Eclipse 플러그인이 작동하지 않는 것 같습니다).

다양한 성공을 거두었습니다. 당시 (몇 년 전) 전체 문서는 부족했고 기본 사용법 문서 (구현 위치 포함)는 찾기가 어렵거나 다양했습니다.

Java 클래스를 쓴 파서는 원래 XSD에 대한 불일치가 거의 없었습니다 (비록 추상 XML 요소를 지원하는 데 문제가 있다고 생각합니다).

나는 그 이후로 그것을 사용하지 않았지만 다가오는 프로젝트가있는 프레임 워크가 필요하며 다른 사람이 위의 내용을 어떻게 공정하게하는지 알고 싶어 할 것입니다.

나는 7 년 전에 캐스터를 사용했습니다. 상당히 잘 작동했습니다. 중고 DTD. 당시에는 많은 선택이 없습니다.

현재 프로젝트에서는 사용했습니다
1) JAXB- 표준 기반, 참조 구현 이용 가능, 명령 줄 및 개미 도구를 사용할 수 있습니다. 최신 버전 -2.1.8은 Java 5+가 필요합니다.
2) Xstream- 비누를 사용하지 않는 경우 - Java 5+가 필요합니다. JAXB 최신만큼 빠르고 표준을 준수하지 않습니다.

Br,
~ a

XMLBEANS는 특히 'XSD/WSDL 파일이'깨진 '경우 좋은 선택입니다.

돈이 언급했다

EmployEdocument EmpDoc = EmployEctordocument.Factory.parse (xmlfile);

.. 그러나 노드, 파일 또는 거의 소스를 가져갈 수도 있습니다.

네임 스페이스와 싸우지 않고, 끊임없이하려는 물체를 가로 지르고, 팩토리를 가로 지르십시오.

2 주 전에 찾았 으면 좋겠다.

우리는 캐스터를 사용합니다. 그것은 우리의 요구에 상당히 잘 어울립니다.

나는 정확히 같은 질문을 궁금해하고 마침내 IBM이 수행 한이 성능 테스트를 발견했습니다. http://www.ibm.com/developerworks/library/x-databdopt2/. Jibx는 내 선택입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top