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