JAXB ve XmlBeans
JAXB, JavaEE standartlarının bir parçasıdır ve XML Bağlama için Java Mimarisini ifade eder. XML belgelerinin işlenmesi için kullanılan bu işlemdir. JAXB kullanımı, XML teknolojisinin tüm küçük ayrıntılarını anlamak zorunda kalmadan Java'daki XML belgelerinin işlenmesi için bir alternatif sunduğundan tercih edilir. JAXB, JavaEE 5 uyumlu uygulamalarda açık kaynak paket olarak mevcuttur. Paket, veri bağlama ve Java programlama dilinde yazılmış XML belgelerini okuma ve bunlara erişme kolaylığı sağlar. Diğer yandan XMLBeans, BEA sistemleri tarafından geliştirilen açık kaynaklı bir projedir ve bunlar XML belgelerine erişilmesine izin vermek için JAXB'e benzer işlevler sağlar. Bununla birlikte, XMLBeans ile uğraşırken XML'de iyi bir arka plan bilgisi gereklidir. Bununla birlikte, ikisi arasında belirtilen farklılıklar vardır ve bunlar aşağıda tartışılmıştır.
farklılıklar
JAXB ve XMLBeans geliştirilmeden önce, XML'in işlenebilmesinin tek yolu SAX (XML için Basit API) yazılım analizi veya DOM (Belge Nesne Modeli) kullanımıdır. JAXP (API işleme için Java API). Geliştirici, kodun XML belgesindeki dili analiz edebilmesi için DOM veya SAX'ı JAXP aracılığıyla çağırmayı hedefleyen bir kod oluşturmak zorundaydı. Tarama üzerine, kod genellikle kodu farklı parçalara ayırdı, böylece hedeflenen uygulamalar için kullanılabilir hale getirildi.
JAXB ve XMLBeans arasında belirtilen temel fark, her birinin XML belgelerinin sıralanması ve uyandırılmamasıdır. XML belgesinin veri bütünlüğünün kaybolduğu gösterildiğinden XMLBeans, Java dönüştürmesinden geçmeden tüm XML belgesini işler. XMLBeans, XML belgesi üzerinden tarama yapan bir imleç oluşturmuştur. İmleç ile, belgenin aslına uygunluğu korunduğundan şema bilgileri veya yorumları da dahil olmak üzere belgenin herhangi bir öğesine erişilebilir. XMLBeans ayrıca XQuery'nin aynı belge içinde yürütülmesini sağlar. APIB'nin bir yansıması haline gelen oldukça genel bir erişim türüne sahip XMLBeans tarafından daha fazla yazılan erişim sağlanır. XMLBeans, daha önce de belirtildiği gibi, çok geniş bir XML bilgisi ve ek olarak SAX veya hatta DOM gerektirir.
Öte yandan JAXB, XML şemasına bağlı olarak gelir. Bu, tüm XML şeması özelliklerinin yalnızca DTD'leri (Belge Türü Tanımları) destekleyemediğini destekleyemediği için ilk JAXB sürümüyle ortaya çıkan bir sorunu izliyor. Aslında bu, JAXB'nin ilk salımının okunabilir bağlamalar sağlayamayacağı anlamına geliyordu. JAXB 2.0, tam XML şema desteği, Java'dan XML şema eşlemesi, taşınabilirlik ve şema gelişimi sağladığı için geliştirme işlemini oldukça kolaylaştırmıştır. Ayrıca, JAXB geçersiz ve uyumsuzluğun sonlandırılıp sonlandırılmayacağına karar verilmeyen XML içeriğinin esnek uyumsuzluğunu tanıttı.
Özet:
- Daha sağlam XML özelliklerini tercih ederseniz XMLBeans daha iyidir; XQueries ve doğrudan XML belge erişimi. Kullanımı bellek yönetimi ve performans pahasına gelir.
- XMLBeans kadar kapsamlı olmasa da, daha yüksek performans ve bellek yönetimi istiyorsanız JAXB tercih edilir.
- Basit bir XML belge dönüşümünden sonraysanız JAXB seçilmelidir.
- Bağlama özelleştirmesi XMLBeans yerine JAXB'de en iyi şekilde gerçekleşir.
- JAXB, belleğe bağımlı bir süreç olan XMLBeans kullanımının aksine verimli bellek kullanımı sunar.
- Bir XML belgesini ezerden düşürmek isterseniz, XMLBeans'in utançsızlığında zorluklarla karşılaşması nedeniyle JAXB tercihinizdir. Bağlama şeması üzerine, nesne oluşturma için ObjectFactory kullanımını kullanabilir ve içerik oluşturma üretiminde ayarlanmış yöntemleri kullanabilirsiniz.