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 را به سلسله مراتبی از اشیاء جاوا تبدیل کنید (unmarshalling) یا برعکس، سلسله مراتب شی جاوا را به قالب XML (marshalling) تبدیل کنید. اصطلاح marshalling به طور سنتی به معنی دفع نیروها به روشی مناسب است. در شبکه، به معنای قرار دادن داده ها در بافر قبل از ارسال آنها از طریق یک کانال ارتباطی اطلاق میشود.
این دو مولفه در ترکیب، یک فناوری را تولید میکنند که به توسعه دهندگان جاوا اجازه میدهد به راحتی داده های XML را به صورت اشیا جاوا دستکاری کنند، بدون اینکه نیازی به دانستن جزئیات ریز و درشت API ساده برای پردازش XML (SAX) یا مدل شیOM اسناد(DOM) داشته باشند.
حاشیه نویسی های مورد استفاده در 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 برای اتصال کدهای موجود به XML استفاده کرد، زیرا فقط میتواند کلاس های جاوا را از یک طرح تولید کند نه برعکس گرچه این در مورد نسخه فعلی JAXB صدق میکند، API این محدودیت را ندارد.
هیچ چیز مانع استفاده ابزارها از API برای ترسیم کلاسهای موجود جاوا به XML نمیشود. در واقع، رابط مورد استفاده Castor برای انجام این نقشه برداری جاوا محور بسیار نزدیک به JAXB API است، بنابراین تغییر آن برای استفاده از این API کار سختی نخواهد بود.
به طور مشابه، نسخه فعلی JAXB فقط با W3C XML Schema سرو کار دارد. اما، بار دیگر میگوییم که، API عملاً به زبان طرح خاصی وابستگی ندارد. بنابراین، هر ابزاری میتواند از JAXB API جهت انتخاب زبان برنامه استفاده کند. خوب است که ببینید یک ابزار اتصال اطلاعاتی آگاه از (RELAX NG ) مانند (Relaxer) از JAXB API استفاده میکند.
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 در جاوا پیش میرود.
شاید برای شما کم اهمیت باشد; اما نظرات شما برای ما اتفاقی عجیب و موجب دلگرمی است
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |