Transcript JAXB
© Keren Kalif
JAXB
קרן כליף
© Keren Kalif
ביחידה זו נלמד:
מהו JAXB
יצירת מחלקות באמצעות JAXB
טעינת אובייקטים מXML -
2
מבוא לJAX -
© Keren Kalif
Java Architecture for Xml Binding
תשתית לקריאה וכתיבת XML
באה להחליף את המנגנון של :DOM
ב DOM -כל המידע היה שמור בעץ של elementולא היו
אובייקטים ספציפיים למידע
באמצעות JAXBניתן לייצר מחלקות עבור האלמנטים
השונים המוגדרים ב ,xsd -ולכן העבודה יותר פשוטה
3
קובץ ה xml -שאיתו נעבוד והסכימה
© Keren Kalif
4
© Keren Kalif
5
המתאיםxsd -קובץ ה
,לשים לב שתג זה קיים
לא ידעJAVA -אחרת ה
לייצר ממנו את המחלקות
http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx
:xml - מxsd כלי נוח ליצירת
© Keren Kalif
6
JAXB Binding לייצר
כדי לייצר
מחלקות
מהסכימה
:בפרוייקט
New
JAXB Binding
המחלקות שנוצרו
© Keren Kalif
()1
7
המחלקות שנוצרו
8
© Keren Kalif
()2
המחלקות
שנוצרו ()3
© Keren Kalif
9
באמצעות אובייקט ממחלקה
זו נייצר אובייקטים
מהטיפוסים שנוצרו
מחזיר את ה-
root element
מהxml -
המעטפת לשימוש בfactory -
יצירת אובייקט המייצג את
האובייקט הראשי כXML -
כתיבה למסך
כתיבה לקובץ
10
© Keren Kalif
© Keren Kalif
11
main -דוגמא ל
לאובייקטXML - טעינת ה:unmarshal
בוpackage -ה
מוגדרת המחלקה
© Keren Kalif
12
© Keren Kalif
Validations
אם ב xsd -יש הגבלת ערכים ,מידע זה נאבד בתרגום למחלקה
דוגמא :עבור ה XML -וה XSD -הבאים:
13
בדיקת תקינות המידע מול הxsd -
© Keren Kalif
14
עד גרסאת jaxb 2.0היה ניתן להשתמש באבייקט
Validatorכדי לבדוק תקינות של אובייקט מול הסכימה
טיפוס ה Validator -אינו זמין בגרסא JAXB 2.0
)(deprecated
הולידציה מתאפשרת רק בזמן ה marshal -והunmarshal -
בדיקת תקינות ה xml -מול הxsd -
הגדרת הסכימה מולה
יש לבצע ולידציות
החריגה
© Keren Kalif
15
בדיקת תקינות אובייקט מול הxsd -
© Keren Kalif
16
הפניות
© Keren Kalif
17
יתכן ויהיו ב xml -אלמנטים שערכם חוזרים על עצמם כמה פעמים
למשל ,כמה אנשים שגרים באותה כתובת:
כרגע ,עבור כל Personישמר אובייקט Address
לעיתים נרצה להשתמש בהפניות ,כך שאלמנטים המייצגים
אובייקטים זהים ,יוגדרו פעם אחת ב ,xml -במקום שכפול המידע
© Keren Kalif
18
לדוגמת האנשיםxsd -ה
© Keren Kalif
19
עם הפניותxsd -ה
© Keren Kalif
20
PersonType - המחלקות שנוצרו
המחלקות שנוצרו AddressType -
שדה שהוגדר בסכימה
כID -ישמר כString -
© Keren Kalif
21
© Keren Kalif
22
manager -עדכון ה
השימוש והפלט
© Keren Kalif
23
© Keren Kalif
קוסטומיזציה
24
לשינוי שם
המחלקה שתיווצר
לשינוי שם התכונה
המחלקות שנוצרו
באמצעות הקוסטימיזציות ניתן להתאים ולשנות את השמות.
לשימוש כאשר יש שמות שמורים או שכבר בשימוש כמו
Class, Listוכד' בxsd -
© Keren Kalif
25
ביחידה זו למדנו:
מהו JAXB
יצירת מחלקות באמצעות JAXB
טעינת אובייקטים מXML -
© Keren Kalif
26