JAXB למתחילים: הדרכה לעיבוד XML עם Java
על מנת שיישומים יתקשרו זה עם זה, לעיתים קרובות יש צורך להמיר את הנתונים לפורמט שתואם מאוד. למטרה זו, ספריית JAXB קיימת תחת Java, המעבדת אובייקטים לקבצי XML.
צור קובץ XML עם JAXB - Best Practices
JAXB מייצג Java Architecture עבור XML Binding . זה מאפשר להמיר אובייקטים של Java לקבצי XML ולהיפך. לפני שתתחיל, יש כמה נקודות שכדאי לזכור:
- JAXB היה חלק בלתי נפרד מסוויטת JRE מאז גרסה 1.6 . בנוסף, סביבת הפיתוח של ג'אווה צריכה להיות מעודכנת מכיוון שהיא תיקנה באגים.
- הימנע מסוגי נתונים פרימיטיביים כמו מספר שלם, מספר עשרוני או שלילי וכן מסוגי נתונים אנונימיים . אין לזה שום שווה ערך ב- JAXB. אחרת, ניתן להמיר אובייקטים, סוגי נתונים מספריים, רשימות וערכות. JAXB גם לא יכול לטפל בסוגי נתונים מורכבים כמו java.time.LocalDate . זה דורש מתאם שנוצר במיוחד.
- בעגה טכנית, הכיוון מג'אווה ל- XML נקרא מרשל, ואילו ביטול המיתוג עומד על הכיוון ההפוך.
סברי XML
סרטונים אחרונים
JAXB למתחילים: הדרכה באמצעות הדוגמה של אוסף תקליטורים
AudioCD.java: התכונות של תקליטור השמע מוגדרות כאן
MusicDB.java: אוסף המוסיקה מורכב מרשימת תקליטורי שמע
המדריך שלנו עוסק באוסף תקליטורים שמוצא ב- XML. זה מורכב מכמה תקליטורי שמע. האמן, שנת הוצאתו, שם האלבום והשירים מוקלטים לכל תקליטור שמע.
- ראשית יש ליצור את הכיתה, המכילה את הנתונים של תקליטור שמע. זה כולל את האמן, שנת ההוצאה, האלבום והשירים שנמצאים בתקליטור.
- בכדי לשלוט טוב יותר בפלט בפורמט XML, נדרשים הערות XML המתחילות ב- @ תחת Java.
- ניתן לציין את אלמנט השורש בקובץ XML באמצעות ההערה הבאה: @XmlRootElement (name = "Audiocd")
- אתה יכול להוסיף הערה מעל שיטות getter או setter המציינות שם חלופי עבור תכונה Java. לדוגמה, במקום שנת המאפיין, יש לפרסם את שנת הפרסום: @XmlElement (name = "שנת הפרסום")
- סדר התכונות נקבע על ידי ההערה @XmlType (propOrder = {"אמן", "כותרת", "שנה", "רשימת שירים"}) . המשמעות היא ששמו של האמן מופיע לראשונה בקובץ XML, ואחריו שם האלבום, שנת ההוצאה והרשימה עם השירים. אחרת הסדר תלוי בקובץ ה- Java.
- בשלב הבא, צור מחלקת Java חדשה בשם MusicDB, המכילה רשימה של תקליטורי שמע. שם אוסף המוזיקה ומיקומם של אוסף המוזיקה נרשמים גם כאן. באופן עקרוני הנוהל דומה לזה שבקובץ ה- Java שהוזכר לעיל.
מאובייקטים של Java לקבצי XML
סרטונים אחרונים
AudioCDMain.java: נוצרו כאן כמה תקליטורי שמע
AudioCDMain.java: צור את אוסף המוסיקה
AudioCDMain.java: ממיר את הקוד ל- XML
ההמרה עצמה מתרחשת בתוכנית מבחן, ליתר דיוק בשיטה העיקרית.
- ראשית, צור מספר מופעי תקליטור שמע, כך שייווצרו תקליטורי שמע מרובים.
- דרושה מופע של אוסף המוסיקה מסוג MusicDB.
- בנוסף, JAXB צריך לדעת איזו מחלקת Java מכילה את אלמנט השורש. במקרה שלנו מדובר בכיתת MusicDB : JAXBContext context = JAXBContext.newInstance (MusicDB.class);
- ההמרה מתבצעת באמצעות מופע Marshaller המקושר לשיטת JAXB שהוזכרה לעיל: Marshaller m = context.createMarshaller ();
- שיטת Marshaller מספקת אפשרויות נוספות, כמו למשל שמוצג מסמך XML: .setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
כל העניין בכיוון ההפוך
סרטונים אחרונים
AudioCDMain.java: JAXB מייצר אובייקטים של Java מקובץ XML
קובץ ה- XML כבר פורמט על ידי JAXB
בעיקרון, ההמרה בכיוון השני מתרחשת באופן דומה:
- ראשית נוצר מופע של השיטה unmarshaller : unmarshaller ב = context.createUnmarshaller ();
- ואז מופע ה- unmarshaler זקוק לשם של קובץ ה- XML שנוצר בעבר: MusicDB mdb2 = (MusicDB) um.unmarshal (FileReader חדש (MUSICDB_XML));