« استÙ?اده از 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 تبديل كند.
ادامه دارد...
• 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 تبديل كند.
ادامه دارد...
نظرخواهی