Yeni başlayanlar için JAXB: Java ile XML işleme eğitimi
Uygulamaların birbirleriyle iletişim kurabilmesi için, genellikle verilerin oldukça uyumlu bir biçime dönüştürülmesi gerekir. Bu amaçla, JAXB kitaplığı, nesneleri XML dosyalarına işleyen Java altında bulunur.
JAXB ile XML dosyası oluşturma - En İyi Uygulamalar
JAXB, XML Bağlama için Java Mimarisi anlamına gelir. Java nesnelerinin XML dosyalarına dönüştürülmesini veya tersini sağlar. Başlamadan önce aklınızda bulundurmanız gereken birkaç nokta vardır:
- JAXB, 1.6 sürümünden bu yana JRE paketinin ayrılmaz bir parçası olmuştur. Buna ek olarak, Java geliştirme ortamı, hataları düzelttiği için güncel olmalıdır.
- Kayan nokta, ondalık veya negatif tamsayı gibi ilkel veri türlerinden ve anonim veri türlerinden kaçının. Bunun için JAXB'de eşdeğeri yoktur. Aksi takdirde, nesneler, sayısal veri türleri, listeler ve kümeler dönüştürülebilir. JAXB, java.time.LocalDate gibi karmaşık veri türlerini de işleyemez . Bu, özel olarak oluşturulmuş bir adaptör gerektirir.
- Teknik jargonda, Java'dan XML'e yönlendirme marshaling olarak adlandırılırken, unmarshaling tam tersi ifade eder.
XML ek açıklamaları
En son videolar
Yeni başlayanlar için JAXB: CD koleksiyonu örneği kullanarak öğretici
AudioCD.java: Ses CD'sinin özellikleri burada tanımlanmıştır
MusicDB.java: Müzik koleksiyonu bir ses CD'si listesinden oluşur
Eğiticimiz, XML biçiminde çıkarılan bir CD koleksiyonu hakkındadır. Birkaç ses CD'sinden oluşur. Her bir ses CD'si için sanatçı, çıkış yılı, albüm adı ve şarkılar kaydedilir.
- Önce ses CD'sinin verilerini içeren sınıf oluşturulmalıdır. Buna sanatçı, yayın yılı, albüm ve CD'deki şarkılar dahildir.
- Çıktıyı XML biçiminde daha iyi kontrol etmek için Java altında @ ile başlayan XML ek açıklamaları gerekir.
- XML dosyasındaki kök öğe aşağıdaki ek açıklama kullanılarak belirtilebilir: @XmlRootElement (name = "Audiocd")
- Java özniteliği için alternatif bir ad belirten alıcı veya ayarlayıcı yöntemlerinin üzerine bir açıklama ekleyebilirsiniz. Örneğin, nitelik yılı yerine yayın yılı çıktısı alınmalıdır: @XmlElement (name = "yayın yılı")
- Özelliklerin sırası, @XmlType açıklamasına (propOrder = {"sanatçı", "başlık", "yıl", "şarkı listesi"}) tarafından belirlenir . Bu, sanatçının adının önce XML dosyasında, ardından albümün adı, çıkış yılı ve şarkılar içeren listenin göründüğü anlamına gelir. Aksi takdirde sipariş Java dosyasına bağlıdır.
- Ardından, ses CD'lerinin listesini içeren MusicDB adlı yeni bir Java sınıfı oluşturun. Müzik koleksiyonunun adı ve müzik koleksiyonunun yeri de buraya kaydedilir. Prensipte, prosedür yukarıda belirtilen Java dosyasındakine benzer.
Java nesnelerinden XML dosyalarına
En son videolar
AudioCDMain.java: Burada birkaç ses CD'si oluşturulur
AudioCDMain.java: Müzik koleksiyonunu oluşturun
AudioCDMain.java: Kodu XML'e dönüştürür
Dönüşümün kendisi bir test programında, daha kesin olarak ana yöntemde gerçekleşir.
- İlk olarak, birden fazla Ses CD'si oluşturmak için birden fazla Ses CD'si örneği oluşturun.
- MusicDB tipi müzik koleksiyonunun bir örneği de gereklidir.
- Ayrıca, JAXB'nin hangi Java sınıfının kök eleman içerdiğini bilmesi gerekir. Bizim durumumuzda bu MusicDB sınıfıdır: JAXBContext context = JAXBContext.newInstance (MusicDB.class);
- Dönüştürme, yukarıda belirtilen JAXB yöntemiyle bağlantılı olan Marshaller örneği kullanılarak gerçekleştirilir: Marshaller m = context.createMarshaller ();
- Marshaller yöntemi, XML belgesinin çıktı biçimlendirilmiş olması gibi daha fazla seçenek sunar: .setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Her şey ters yönde
En son videolar
AudioCDMain.java: JAXB bir XML dosyasından Java nesneleri oluşturur
XML dosyası zaten JAXB tarafından biçimlendirildi
Temel olarak, diğer yöndeki dönüşüm benzer bir şekilde ilerler:
- İlk olarak, unmarshaller yönteminin bir örneği oluşturulur: unmarshaller at = context.createUnmarshaller ();
- Daha sonra unmarshaler örneği önceden oluşturulan XML dosyasının adına ihtiyaç duyar: MusicDB mdb2 = (MusicDB) um.unmarshal (new FileReader (MUSICDB_XML));