JAXB za začetnike: Vadnica za obdelavo XML z Javo
Da bi aplikacije medsebojno komunicirale, je pogosto potrebno pretvoriti podatke v obliko, ki je zelo združljiva. V ta namen v Java obstaja knjižnica JAXB, ki predmete obdeluje v datoteke XML.
Ustvari XML datoteko z JAXB - Najboljše prakse
JAXB pomeni Java Architecture za vezavo XML . Omogoča pretvorbo predmetov Java v datoteke XML in obratno. Preden začnete, morate upoštevati nekaj točk:
- JAXB je sestavni del paketa JRE od različice 1.6 . Poleg tega bi moralo biti razvojno okolje Java posodobljeno, ker odpravlja napake.
- Izogibajte se primitivnim vrstam podatkov, kot so float, decimalno ali negativno celo število, kot tudi anonimnim vrstam podatkov . Za to ni enakovrednega JAXB. V nasprotnem primeru je mogoče pretvoriti predmete, številčne vrste podatkov, sezname in nabore. JAXB tudi ne more obdelati zapletenih vrst podatkov, kot je java.time.LocalDate . Za to je potreben posebej ustvarjen adapter .
- V tehničnem žargonu smer od Jave do XML imenujemo maršalizacija, medtem ko unmarshaling pomeni nasprotno smer.
pripisi XML
Najnovejši videoposnetki
JAXB za začetnike: vadnica na primeru zbirke CD-jev
AudioCD.java: Tu so določeni atributi zvočnega CD-ja
MusicDB.java: Glasbena zbirka je sestavljena iz seznama avdio CD-jev
Naše vodilo govori o zbirki CD-jev, ki je na voljo v XML. Sestavljen je iz več zvočnih CD-jev. Izvajalec, leto izdaje, ime albuma in pesmi se zapišejo na vsak avdio CD.
- Najprej je treba ustvariti razred, ki vsebuje podatke avdio CD-ja. To vključuje izvajalca, leto izdaje, album in skladbe, ki so na CD-ju.
- Za boljši nadzor izhoda v formatu XML so potrebne obvestila XML, ki se začnejo z @ pod Java.
- Korenski element v datoteki XML lahko podate z naslednjo opombo: @XmlRootElement (ime = "Audiocd")
- Nad metode getter ali setter lahko vstavite opombo, ki določa nadomestno ime za atribut Java. Na primer, namesto leta atributa mora izhajati leto objave: @XmlElement (ime = "leto objave")
- Vrstni red atributov določa pripis @XmlType (propOrder = {"izvajalec", "naslov", "leto", "seznam skladb"}) . To pomeni, da se ime izvajalca najprej prikaže v datoteki XML, ki mu sledi ime albuma, leto izdaje in seznam s skladbami. V nasprotnem primeru je vrstni red odvisen od datoteke Java.
- Nato ustvarite nov razred Java z imenom MusicDB, ki vsebuje seznam avdio CD-jev. Tu sta zabeležena tudi ime glasbene zbirke in lokacija glasbene zbirke. Načeloma je postopek podoben tistemu v zgoraj navedeni datoteki Java.
Od predmetov Java do datotek XML
Najnovejši videoposnetki
AudioCDMain.java: Tu je ustvarjenih več avdio CD-jev
AudioCDMain.java: ustvarite glasbeno zbirko
AudioCDMain.java: pretvori kodo v XML
Sama pretvorba poteka v testnem programu, natančneje v glavni metodi.
- Najprej ustvarite več primerkov Audio CD, tako da ustvarite več avdio CD-jev.
- Potreben je tudi primerek glasbene zbirke tipa MusicDB.
- Poleg tega mora JAXB vedeti, kateri razred Java vsebuje korenski element. V našem primeru je to razred MusicDB : kontekst JAXBContext = JAXBContext.newInstance (MusicDB.class);
- Pretvorba se izvede z uporabo primerka Marshaller, ki je povezan z zgoraj omenjeno metodo JAXB: Marshaller m = context.createMarshaller ();
- Metoda Marshaller ponuja dodatne možnosti, na primer, da je dokument XML izhodno formatiran: .setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Vsa stvar v nasprotni smeri
Najnovejši videoposnetki
AudioCDMain.java: JAXB ustvari Java predmete iz datoteke XML
Datoteko XML je JAXB že oblikoval
V bistvu se pretvorba v drugo smer odvija na podoben način:
- Najprej se ustvari primerek metode unmarshaller : unmarshaller at = context.createUnmarshaller ();
- Nato primerek unmarshaler potrebuje ime predhodno ustvarjene datoteke XML: MusicDB mdb2 = (MusicDB) um.unmarshal (nov FileReader (MUSICDB_XML));