menusearch
javapro.ir

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

جستجو
پنج شنبه ۱ آذر ۱۴۰۳ | ۱۵:۴:۳۴
۱۳۹۹/۱۱/۱۶ پنج شنبه
(3)
(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 ارائه می‌دهد. مورد دوم، JAXB result، اجازه می‌دهد تا نتایج پردازش مستقیماً به عنوان یک شی 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 نظر
هدر سایت
بلک فرایدی آکادمی جاواپرو،50% تخفیف روی تمامی دوره های جاوا تا 10 آذر 1403
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی