« استÙ?اده از Web Service در برنامه | صÙ?حه اصلی | مروري بر XML »

Binding بين XML Schema و كلاس هاي جاوا

October 15, 2007 12:31 PM

اين كار در جاوا با JAXB يا Java Architecture for XML Binding انجام مي شود. يك implementation از JAXB شامل بخش هاي زير است:
• Schema compiler: يك XML schema را به مجموعه اي از عناصر داخل برنامه bind مي كند. رويه Binding توسط يك زبان مبتني بر XML تعري�? مي شود.
• Schema generator: مجموعه اي از عناصر موجود در برنامه را به يك XML schema مرتبط (map) مي كند.
• Binding runtime framework : امكان عمليات marshaling (نوشتن به) و unmarshaling (خواندن از) محتواي XML را �?راهم مي كند.

مراحل كلي در انجام رويه data binding با JAXB عبارت است از:
1- ساخت كلاس ها: در اين مرحله JAXB binding compiler يك XML schema را بعنوان ورودي دريا�?ت مي كند و بر اساس آن كلاس هاي JAXB را مي سازد.
2- كامپايل كلاس ها: همه كلاس هاي ساخته شده به همراه source و كد application بايد كامپايل شوند.
3- Unmarshalling: توسط JAXB binding framework اسناد XML اي كه مطابق schema نوشته شده اند، Unmarshal مي گردند.
4- ساخت درخت محتوا: نتيجه Unmarshaling ساخت يك درخت از data object هايي است كه نمونه هايي از كلاس هاي JAXB ساخته شده، هستند. اين درخت محتوا ساختار و محتواي اسناد XML منبع را نمايش مي دهند.
5- اعتبارسنجي: اين مورد اختياري است و مي تواند انجام نشود. اما اگر مثلا تغييري در درخت محتوا ايجاد كنيد (آنگونه كه در مرحله بعدي گ�?ته شده) لازم است كه قبل از Marshaling يا بازگرداندن محتوا به اسناد XML ، با است�?اده از عمليات validation موجود در JAXB، صحت و اعتبار آنها را بررسي نماييد.
6- پردازش محتوا: application مي تواند داده هاي XML نمايش داده شده در درخت محتوا را ويرايش نمايد.
7- Marshalling: در نهايت درخت محتوا بايد به يك يا چند سند XML خروجي ، منتقل شود. همانگونه كه ذكر شد اين محتوا ممكن است قبل از انجام عمل Marshaling اعتبارش سنجيده شود.

در ادامه برخي از م�?اهيم ذكر شده براي آشنايي بيشتر، معر�?ي مي گردد:
XML schema :
نوع سند XML را تعري�? مي كند. معمولا بصورت شرايطي (constraints) كه بر ساختار و محتواي XML بايد اعمال شود، بيان مي گردد. زبان هاي گوناگوني براي بيان XML Schema وجود دارد. شناخته شده ترين آنها زبان Document Type Definition يا DTD است كه در واقع بعنوان يكي از ويژگي هاي XML شناخته مي شود. اين زبان قابليت هاي محدودي دارد، اما كاربردهاي ديگري نيز علاوه بر تعري�? XML schema دارد. دو زبان ديگر پركاربرد در حوزه تعري�? XML schemaعبارتند از XML schema (W3C) و RELAX NG
XML Data binding:
اين عبارت اشاره دارد به �?رايند نمايش اطلاعات موجود در يك سند XML بصورت يك object در حا�?ظه كامپيوتر. اين كار به application امكان مي دهد كه مستقيما و بدون است�?اده از DOM به داده هاي XML دست يابد.
Marshaling:
Marshaling كه همچنين با عنوان serialization نيز شناخته مي شود، عبارت است از �?رايند تبديل يك object موجود در حا�?ظه به يك �?رمت داده قابل انتقال يا ذخيره سازي (مثلا يك �?ايل). Marshaling در JAXB به application امكان مي دهد كه object هاي JAXB را به داده هاي XML تبديل نمايد.
Unmarshalling:
عمل معكوس Marshaling نيز Unmarshaling يا deserialization ناميده مي شود كه عبارت است از استخراج يك ساختمان داده از يك �?ايل (يا يك سري از بايت ها). Unmarshaling در JAXB به application اين امكان را مي دهد كه داده هاي XML را به object هاي JAXB تبديل كند.

ادامه دارد...

mahyar_ev | 12:31 PM

 

نظرخواهی