menusearch
javapro.ir

JAXB چیست و چه کاربردی در زبان جاوا دارد؟

جستجو
شنبه ۱۶ اسفند ۱۳۹۹ | ۱:۳۶:۳
۱۳۹۹/۱۱/۱۶ پنج شنبه
(1)
(0)
JAXB چیست و چه کاربردی در زبان جاوا دارد؟
JAXB چیست و چه کاربردی در زبان جاوا دارد؟

ارتباط بین XML و جاوا

 

 

 

Jakarta XML Binding یک چارچوب نرم افزاری است که به توسعه دهندگان Jakarta EE اجازه می دهد تا کلاس های جاوا را به نمایندگی های XML ترسیم کنند. JAXB دو ویژگی اصلی را فراهم می کند: توانایی مونتاژ اشیا جاوا به XML و معکوس ، یعنی بازگشت غیرمعمول XML به اشیا جاوا.

 

 

 

JAXB  چیست و چه کاربردی در زبان جاوا دارد؟


معماری جدید جاوا برای تلفیق داده ها و پردازش های XML در برنامه های جاوا را آسان می کند .


JAXB روشی قدرتمند و عملی برای کار با محتوای XML از درون برنامه های جاوا را فراهم می کند. JAXB2.0  که به تازگی منتشر شده است بسیاری از ویژگی های جدید را شامل می شود ، از جمله پشتیبانی کامل از تمام ویژگی های XML Schema ، کاهش قابل توجه کلاس های تولید شده ، کلاس هایی که دستکاری آنها آسان تر است و سازو کار اعتبار سنجی انعطاف پذیرتری دارد. برای درک نحوه پردازش اسناد XML با JAXB2.0   در جاوا ، باید دو جز اصلی JAXB را بررسی کنیم:


کامپایلر اتصال ، که یک طرح XML داده شده را به مجموعه ای از کلاس های جاوا تولید شده متصل می کند . چارچوب زمان اجرا، که ویژگی های unmarshalling ، marshalling و اعتبار سنجی را فراهم می کند . کامپایلر اتصال دهنده JAXB  یا (xbj)  به شما امکان می دهد کلاس های جاوا را از یک طرح XML داده شده ایجاد کنید.

 

کامپایلر اتصال دهنده JAXB یک طرح XML را به مجموعه ای از کلاس های جاوا تبدیل می کند که با ساختار توصیف شده در برنامه XML مطابقت دارند. این کلاس ها با حاشیه نویسی های ویژه JAXB دارای حاشیه هایی هستند که چارچوب زمان اجرا را با نگاشت های مورد نیاز برای پردازش اسناد مربوط به XML ارائه می دهند.
 

 

 

 

معماری جاوا در اتصال xml
معماری جاوا در اتصال xml

 

 


چارچوب زمان اجرا مکانیزمی کارآمد و آسان برای استفاده از اسناد (XML) بدون خواندن و مارشال سازی (یا نوشتن) فراهم می کند. به شما امکان می دهد یک سند XML را به سلسله مراتبی از اشیاء جاوا تبدیل کنید  (unmarshalling) یا برعکس ، سلسله مراتب شی جاوا را به قالب XML (marshalling) تبدیل کنید. اصطلاح marshalling به طور سنتی به معنی دفع نیروها به روشی مناسب است. در شبکه ، به معنای قرار دادن داده ها در بافر قبل از ارسال آنها از طریق یک کانال ارتباطی اطلاق می شود.

 


این دو مولفه در ترکیب ، یک فناوری را تولید می کنند که به توسعه دهندگان جاوا اجازه می دهد به راحتی داده های XML را به صورت اشیا جاوا دستکاری کنند ، بدون اینکه نیازی به دانستن جزئیات ریز و درشت API ساده برای پردازش XML (SAX) یا مدل شیOM  اسناد(DOM) داشته باشند.

 

 

 

حاشیه نویسی های مورد استفاده در JAXB:
حاشیه نویسی جاوا در JAXB برای افزایش کلاس های ایجاد شده با اطلاعات اضافی استفاده می شود ، که به آنها در آماده سازی برای زمان اجرای JAXB کمک می کند.

 

 

بررسی اجمالی معماری


شکل زیر اجزای سازنده پیاده سازی JAXB را نشان می دهد.

 

 

 

 

بررسی اجمالی معماری JAXB در زبان برنامه نویسی جاوا

بررسی اجمالی معماری JAXB

 

 


فرآیند اتصال JAXB
شکل زیر نشان می دهد که چه چیزی در طی فرآیند اتصال JAXB رخ می دهد.


 

 

 

مراحل فرآیند اتصال JAXB در زبان برنامه نویسی جاوا

مراحل فرآیند اتصال JAXB

 

 


مراحل کلی در فرآیند اتصال داده JAXB عبارتند از:


ایجاد کلاس ها:

از یک طرح XML به عنوان ورودی به کامپایلر اتصال دهنده JAXB استفاده می شود تا کلاسهای JAXB را بر اساس آن طرح تولید کند.
کلاسهای کامپایل: همه کلاسهای جاوای تولید شده ، فایلهای منبع و کد برنامه باید وارد شوند.

 

 

 

Unmarshal:

اسناد XML که با توجه به محدودیت های موجود در طرح منبع نوشته شده اند ، توسط چارچوب JAXB رفع اشکال نمی شوند. JAXB همچنین از تجزیه و تحلیل داده های XML از منابع غیر از پرونده ها و اسناد مانند گره های DOM ، بافرهای رشته ای ، منابع SAX و غیره پشتیبانی می کند.

 


تولید درخت محتوا:

فرآیند unmarshalling یک درخت محتوا از اشیا داده به دست آمده از کلاسهای JAXB تولید شده تولید می کند. این درخت محتوا ساختار و محتوای اسناد منبع XML را نشان می دهد.

 


تأیید اعتبار (اختیاری):

فرآیند unmarshalling شامل اعتبار سند XML منبع قبل از تولید درخت محتوا است. توجه داشته باشید که اگر درخت محتوای مورد نظر را در مرحله 6 اصلاح کنید ، می توانید از عملیات JAXB Validate برای تأیید اعتبار تغییرات قبل از تنظیم مجدد محتوا به یک سند XML استفاده کنید.

 

 


محتوای پردازش:

برنامه سرویس گیرنده می تواند داده های XML را که توسط درخت محتوای جاوا نشان داده شده است با استفاده از رابط های تولید شده توسط کامپایلر اتصال اصلاح کند.

 

 


Marshal:

درخت محتوای پردازش شده به یک یا چند فایل خروجی XML ترسیم می شود. محتوا ممکن است قبل از مارشال سازی تأیید شود.

 

 

 

اعتبارسنجی فایل
اعتبار سنجی فرآیندی است که تأیید می کند یک سند XML در جاوا تمام محدودیت های بیان شده در طرح را برآورده می کند. JAXB 1.0  اعتبار سنجی را در زمان غیرمعمول ارائه می دهد و همچنین اعتبار سنجی بر اساس تقاضا را روی درخت محتوای JAXB فعال می کند. JAXB 2.0  اعتبار سنجی را فقط در زمان نامشخص و مارشال امکان پذیر می کند. یک مدل پردازش سرویس وب ، سهولت و سادگی در خواندن داده ها و سختگیرانه در نوشتن آنها است.

 

برای دستیابی به این مدل ، اعتبار سنجی به زمان مارشال اضافه شد تا کاربران بتوانند تأیید کنند که هنگام اصلاح سند در فرم JAXB ، سند XML را فاقد اعتبار نمی کنند. اعتبار سند فرآیند اطمینان از مطابقت سند XML شما با تعریفی است که در طرح XML مربوطه ارائه شده است.

 

این یک جنبه مهم در هر پروژه ای است که شامل مبادلات XML است ، خصوصاً اگر XML از سیستم های دیگر باشد. اعتبار سند در JAXB 4.0  آسان تر و انعطاف پذیرتر از نسخه های قبلی است.

 

 

 

ترکیب JAXB با سایر فناوری های XML
JAXB قادر است با هر فناوری XML که رویدادهای SAX را تولید یا مصرف می کند ، ترکیب شود. این امر JAXB را قادر می سازد تا با XSLT ، DOM ، dom4j ، پایگاه داده آگاه از XML و بسیاری از کتابخانه های موجود جاوا ارتباط برقرار کند. همچنین ، به راحتی می توانید فیلترهای XMLFilters را به این فرآیند وصل کنید.

 

 

فیلترهای XML به ویژه برای ایجاد یک اصلاح کوچک به طور کارآمد بسیار مفید هستند .کار با SAX نیاز به دانش پیشرفته XML دارد . JAXB  از کلاس javax.xml.transform.Source / result پشتیبانی می کند. درست مانند XSLT که می تواند از هر شیSource   بخواند و برای هر شی result بنویسد ، JAXB نیز می تواند از هر شی Source و Marshal به هر شی result ارتباط برقرار کند.

 


JAXB دارای دو کلاس سودمند است: کلاس اول ، javax.xml.bind.util.JAXBSource ، یک نمودار شی JAXB را به عنوان منبع XML ارائه می دهد. مورد دوم ، JAXBresult ، اجازه می دهد تا نتایج پردازش مستقیماً به عنوان یک شی JAXB بازیابی شود. در حالی که JAXB در درجه اول برای مبتدیان XML در نظر گرفته شده است ، این ویژگی ها JAXB را حتی برای توسعه دهندگان جاوا جذاب می کند.
 

 

 

فرآیند اتصال JAXB در زبان برنامه نویسی جاوا
فرآیند اتصال JAXB

 

 

نیازهای آینده
یکی از نگرانی های مطرح شده این است که نمی توان از JAXB برای اتصال کدهای موجود به XML استفاده کرد ، زیرا فقط می تواند کلاس های جاوا را از یک طرح تولید کند نه برعکس گرچه این در مورد نسخه فعلی JAXB صدق می کند ، API این محدودیت را ندارد.

 

هیچ چیز مانع استفاده ابزارها از API برای ترسیم کلاسهای موجود جاوا به XML نمی شود. در واقع ، رابط مورد استفاده Castor برای انجام این نقشه برداری جاوا محور بسیار نزدیک به JAXB API است ، بنابراین تغییر آن برای استفاده از این API کار سختی نخواهد بود.

 

به طور مشابه ، نسخه فعلی JAXB فقط با W3C XML Schema سرو کار دارد. اما ، بار دیگر میگوییم که ، API عملاً به زبان طرح خاصی وابستگی ندارد. بنابراین ، هر ابزاری می تواند از JAXB API جهت انتخاب زبان برنامه استفاده کند. خوب است که ببینید یک ابزار اتصال اطلاعاتی آگاه از (RELAX NG ) مانند (Relaxer)  از JAXB API استفاده می کند.

 

 

 

اهمیت JAXB در زبان برنامه نویسی جاوا

JAXB API

 

 

 

مزیت JAXB


سادگی: استفاده از JAXB در مقایسه با JAXP ساده است به عنوان مثال (SAX / DOM) .


دسترسی: JAXB اجازه پردازش غیر ترتیبی اسناد XML را می دهد.


نمونه جاوا: ما به جای عناصر /event   با عناصر جاوا کار می کنیم.


کارایی لحظه ای: JAXB از حافظه به طور موثرتر استفاده می کند.


منبع ورودی مختلف: گزینه های مختلف منبع ورودی برای تبدیل یکی به دیگری وجود دارد.


ما می توانیم داده های XML را از منابع مختلف مانند شیput Input Stream  ، یک URL ، یک گره DOM یا یک شی منبع تبدیل شده از جمله یک فایل ، تجزیه و تحلیل کنیم.  به همین ترتیب می توانیم درخت محتوای XMl را در اهداف مختلف داده قرار دهیم.

 

 

 

ویژگی های JAXB 2.0
آخرین نسخه جاوا JAXB یعنی JAXB 2.0  شامل چندین ویژگی است که در JAXB x1  وجود نداشت.


پشتیبانی حاشیه نویسی: JAXB 2.0 پشتیبانی از حاشیه نویسی را فراهم می کند بنابراین برای توسعه برنامه JAXB کدگذاری کمتری لازم است. بسته javax.xml.bind.annotation کلاس ها و رابط هایی برای JAXB2.0 ارائه می دهد.


پشتیبانی از طرح W3C 2.0: JAXB  برخلاف  JAXB1.0 از همه طرح W3C پشتیبانی می کند.


قابلیت های اعتبارسنجی اضافی: پشتیبانی اعتبار سنجی اضافی توسط API اعتبارسنجی JAXP 3.1 را فراهم می کند.


 Small Runtime Library: به کتابخانه زمان اجرای کوچک نیاز دارد که JAXB1.0  باشد.


کلاسهای مشتق شده از طرح را کاهش می دهد: این امر باعث کاهش بسیاری از کلاسهای تولید شده از طرح می شود.

 

 

نتیجه
JAXB ابزاری قدرتمند برای ادغام XML در برنامه جاوا است. با پشتیبانی کامل از XML Schema ، اعتبار سنجی انعطاف پذیرتر و کلاسهای ساده تر و تمیزتر ، JAXB 2.0 حتی بهتر است و بسیار به سمت یکپارچه سازی XML در جاوا پیش می رود.

 

 

 

شاید برای شما کم اهمیت باشد; اما نظرات شما برای ما اتفاقی عجیب و موجب دلگرمی است

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر