מבוא ל- JiBX

1. סקירה כללית

JiBX הוא כלי לאגירת נתוני XML לאובייקטים של Java. הוא מספק ביצועים מוצקים בהשוואה לכלים נפוצים אחרים כמו JAXB.

JiBX גם די גמיש בהשוואה לכלי Java-XML אחרים, תוך שימוש בהגדרות מחייבות כדי לקשר את מבנה Java מייצוג XML כך שניתן לשנות כל אחד מהם באופן עצמאי.

במאמר זה נחקור את הדרכים השונות שמספק JiBX לאיחוד ה- XML ​​לאובייקטים של Java.

2. רכיבי JiBX

2.1. מסמך הגדרה מחייב

מסמך הגדרת הכריכה מציין כיצד מומרים אובייקטים של Java שלך ל- XML ​​או ממנו.

מהדר הכריכה של JiBX לוקח הגדרות כריכה אחת או יותר כקלט, יחד עם קבצי מחלקה בפועל. הוא מרכיב את הגדרת הכריכה ל- Java bytecode על ידי הוספתו לקבצי המחלקה. לאחר שקבצי המחלקה שופרו באמצעות קוד הגדרת כריכה מחובר זה, הם מוכנים לעבוד עם זמן ריצה של JiBX.

2.2. כלים

ישנם שלושה כלים עיקריים בהם נשתמש:

  • BindGen - כדי ליצור את הגדרות הסכימה המחייבות והתואמות מקוד Java
  • CodeGen - ליצירת קוד Java והגדרת כריכה מסכמת XML
  • JiBX2Wsdl - כדי להפוך את הגדרת הכריכה ו- WSDL תואם יחד עם הגדרת סכימה מקוד Java קיים

3. תצורת Maven

3.1. תלות

עלינו להוסיף את התלות בהפעלת jibx ב- pom.xml:

 org.jibx jibx-run 1.3.1 

הגרסה האחרונה של תלות זו נמצאת כאן.

3.2. תוספים

כדי לבצע את השלבים השונים ב- JiBX כמו יצירת קוד או ייצור מחייב, עלינו להגדיר תוסף maven-jibx ב pom.xml.

במקרה בו עלינו להתחיל מקוד Java וליצור את הגדרת הכריכה והסכמה, בואו להגדיר את התוסף:

 org.jibx maven-jibx-plugin ... src / main / resources * -binding.xml template-binding.xml כיתות תהליך אמיתיות לאגד 

כשיש לנו סכימה ואנחנו מייצרים את קוד Java והגדרת הכריכה, ה- תוסף maven-jibx מוגדר עם המידע אודות נתיב קובץ הסכימה ונתיב לספריית קוד המקור:

 org.jibx maven-jibx-plugin ... צור-java-code-from-schema schema-codegen src / main / jibx customer-schema.xsd true compile-binding bind binding target / שנוצר-מקורות true true true 

4. הגדרות מחייבות

הגדרות מחייבות הן חלק הליבה של JiBX. קובץ כריכה בסיסי מציין את המיפוי בין שדות האובייקט XML ו- Java:

  ...   

4.1. מיפוי מבנים

מיפוי מבנים גורם למבנה ה- XML ​​להיראות דומה למבנה האובייקט:

  ...  ...   ...  

השיעורים המתאימים למבנה זה יהיו:

לקוח ממעמד ציבורי {אדם פרטי אדם; ... / / getters וקובעים סטנדרטיים} אדם בכיתה ציבורית {פרטי שם משפחה מחרוזת; ... // גטרים וקובעים סטנדרטיים} 

4.2. אוסף ו מַעֲרָך מיפיות

כריכת JiBX מספקת דרך קלה לעבודה עם אוסף אובייקטים:

    ...  ... 

בואו נראה מיפוי Java המתאים:

סדר ציבורי ציבורי {List addressList = ArrayList new (); ... // זוכים וקובעים כאן} מחלקה סטטית ציבורית כתובת {פרטי שם מחרוזת; ... // גטרים סטרים סטרים}

4.3. מיפוסים מתקדמים

עד כה ראינו הגדרת מיפוי בסיסית. מיפוי JiBX מספק טעמים שונים של מיפוי כמו מיפוי מופשט ומיפוי ירושה.

בואו נראה כיצד נוכל להגדיר מיפוי מופשט:

   ...          

בואו נראה איך זה נקשר לאובייקטים של Java:

לקוח ממעמד ציבורי {אדם פרטי אדם; ... home homephone טלפון; משרד טלפון פרטי טלפון; // סטרים וקובעים סטנדרטיים}

כאן ציינו מספר רב מכשיר טלפון שדות ב צרכן מעמד. ה מכשיר טלפון עצמה היא שוב POJO:

מחלקה ציבורית טלפון {פרטי מחרוזת; // סטרים וקובעים סטנדרטיים}

בנוסף למיפוי רגיל, אנו יכולים גם להגדיר הרחבות. כל מיפוי הרחבות מתייחס למיפוי בסיס כלשהו. בזמן השיטוט, סוג האובייקט בפועל מחליט איזה מיפוי XML מוחל.

בואו נראה איך התוספים עובדים:

    ...   ...  ... 

בואו נסתכל על אובייקטי Java המתאימים:

סוג זהות ציבורי {customer long clientId פרטי; // סטרים וקובעים סטנדרטיים}

5. מסקנה

במאמר מהיר זה, בדקנו דרכים שונות בהן נוכל להשתמש ב- JiBX להמרת XML לאובייקטים של Java. ראינו גם כיצד נוכל להשתמש בהגדרות מחייבות לעבודה עם ייצוגים שונים.

הקוד המלא של מאמר זה זמין באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found