تبليغاتX
برنامه نویسی و آموزش

برنامه نویسی و آموزش

برنامه نویسی و آموزش و مطالب جالب دیگر

XSLTچيست؟

 

 

بخش اول:

 

XSLT، از کلمات: Transformation eXtensible Stylesheet Language  اقتباس و زبانی برای تبديل يک سند XML به نوع ديگر است . تکنولوژی فوق توسط کنسرسيوم وب با  هدف  اوليه  تبديل يک سند XML به نوع ديگر، طراحی شده است . XSLT ، دارای قابليت های بمراتب بيشتری بمنظور تبديل يک سند XML به HTML و ساير فرمت های مبتنی بر متن است . بدين ترتيب  می توان تعريف کامل تری در رابطه با تکنولوژی فوق را بصورت زير ارائه داد :

تعريف XSLT

 : XSLT  زبانی بمنظور تبديل ساختار يک سند XML است .

جرا سندهای XML نيازمند تبديل می باشند ؟
XML ، روشی ساده و استاندارد بمنظور مبادله داده های ساخت يافته بين برنامه های متفاوت کامپيوتر است . بخشی از موفقيت XML جهت نيل به خواسته فوق ، به نحوه نوشتن و خواندن اين نوع فايل ها بر می گردد . با استفاده از يک اديتور متنی می توان بسادگی و بسرعت اقدام به نوشتن يک سند XML ،خواندن و اعمال تغييرات در آنان نمود. فراموش نکنيم که مهمترين هدف XML ، ارتباط بين سيتستم های متفاوت نرم افزاری بوده و در اين راستا  به دو نياز  حياتی  بخوبی جواب داده است :

تفکيک داده از نمايش ( ارائه ) . نياز به تفکيک اطلاعات از جزئيات نمايش بر روی يک دستگاه خاص همواره مورد نظر طراحان و پياده کنندگان بوده است . خواسته  فوق ، بموازات رشد دستگاههای مبتنی بر اينترنت به يک ضرورت حياتی تبديل شده است . سازمان ها و موسسات ارائه دهنده اطلاعات با ارزش  ، تمايل به عرضه اطلاعات خود بر  روی مرورگرهای وب و ساير دستگاهها  نظير تلويزيون  و يا تلفن های مبتنی بر WAP را دارند . بدين ترتيب دامنه استفاده از اطلاعات صرفا" به مرورگرهای وب محدوده نبوده و دستگاههای متفاوت مبتنی بر تکنولوژی اينترنت را  شامل می گردد .
ارسال داده بين برنامه ها . ارسال اطلاعات از  سازمانی  به سازمان ديگر بدون در گير شدن در جزئيات ، همواره از آرزوهای بزرگ طراحان و پياده کنندگان سيستم های نرم افزاری بوده است

دو خواسته فوق هيچگونه تعارضی با يکديگر ندارند ، مثلا" يک ليست قيمت کالا را می توان بر روی صفحه ، نمايش و در همان زمان از آن بعنوان ورودی در  ساير برنامه ها استفاده کرد . يکی ديگر از مزايای اساسی  XML ، يکپارچگی بين دنيای سندها و داده ها است . بدين ترتيب می توان از يک روش خاص بمنظور عرضه ساختار داده ها ( صرفنظر از اينکه اطلاعات توسط انسان و يا ماشين استفاده می گردد) ، بهره  گرفت  .  صرفنظر از اينکه داده های XML  سرانجام توسط انسان و يا يک برنامه نرم افزاری ديگر استفاده می گردند ، به اين نکته مهم می بايست اشاره گردد  که بندرت داده ها به همان صورت که دريافت می گردند،  استفاده خواهند شد. در اين راستا لازم است که داده ها در ابتدا به يک فرمت ديگر تبديل گردند .  تبديل XML   به Html  ، متداولترين کاربرد استفاده از XSLT است . پس از تبديل داده ها  به فرمت Html ، امکان نمايش آنها در هر مرورگری فراهم خواهد شد  . بنابراين جايگاه "تبديل " در رابطه با ارائه و نمايش داده ها ، به تغيير فرمت سندهای XML به ساير فرمت های متداول نظير Html  برمی گردد .XSLT در اين رابطه بخوبی پاسخگو بوده و با استفاده از قوانين موجود قادر به تبديل نوع يک سند به نوع ديگر با توجه به نيازهای مربوطه خواهد بود .

بمنظور ارسال اطلاعات بين برنامه های متفاوت، می بايست قادر به تبديل داده ها از مدل استفاده شده توسط يک برنامه به مدل استفاده شده توسط برنامه ديگر باشيم . بمنظور تامين اطلاعات مورد نياز يک برنامه ،از  فرمت های متفاوت استفاده می گردد . يک فايل حاوی داده های جداشده توسط ويرگول ، يک اسکريپت SQL  ، يک پيام HTTP و  يا مجموعه ای از توابع مربوط به يک اينترفيس خاص برنامه نويسی ، نمونه هائی در اين زمينه می باشند . بموازات رشد تجارت الکترونيکی مبتنی بر XML ، نقش XSLT در تبديل داده ها بين برنامه ها ی متفاوت  ، بسيار حائز اهميت شده است .در اين راستا استانداردهای متعددی وجود دارد . مثلا"  در صنعت روزنامه نگاری از يک فرمت خاص برای مبادله اطلاعات، نسبت  به صنعت تلويزيون استفاده می گردد .در برخی حالات ديگر ممکن است ، تمايل به استخراج   يک آدرس خاص  از يک ليست ثبت سفارش و الحاق آن به  ليست صورتحساب را داشته باشيم . بهرحال ، استخراج و ترکيب داده ها از يک مجموعه اسناد XML و ايجاد اطلاعات مورد نياز برای ساير اسناد  XML  ، يک ضرورت بوده و XSLT در اين راستا ابزاری مناسب  است .

XSLT چگونه يک سند XML را تبديل می نمايد ؟
برای تبديل يک سند XML  و ايجا د خروجی مورد نظر، دو مرحله متفاوت را می بايست دنبال نمود  :

·         اولين مرحله ، شامل يک تبديل ساختاری است . در اين حالت داده ها از ساختار استفاده شده در يک سند XML ،  به ساختاری ديگر  که تامين کننده خروجی مورد نياز است ، تبديل خواهند شد .

·         دومين مرحله،  ايجاد فرمت مورد نياز است . ساختار جديد  به فرمت مورد نظر نظير Html و يا PDF تبديل و در خروجی نمايش داده خواهد شد .

در رابطه با دومين مرحله ، در بخش قبل موارد لازم بيان  گرديد  : ساختمان داده ئی که از اولين مرحله بدست می آيد، می تواند بعنوان يک HTML ، يک فايل متن و يا يک سند XML ديگر در خروجی ارائه گردد . خروجی Html ، امکان نمايش مستقيم اطلاعات در يک مرورگر و يا تغذيه به يک برنامه پيشرفته واژه پرداز را دارا است  . خروجی مبتنی بر متن ، امکان فرمت دهی داده ها را با يک روش قابل قبول بمنظور استفاده توسط ساير برنامه ها فراهم می نمايد . با تبديل يک سند XML به نوع ديگر که خود نيز از نوع  XML  خواهد بود ، امکان استفاده مستقيم آن برای ساير برنامه هائی که قادر به دريافت داده های خود بصورت XML می باشند ، فراهم می گردد . مثلا" يک تبديل کننده XSLT ، ممکن است ميزان فروش ماهيانه را بعنوان يک سند XML اخذ و يک منحنی هيستوگرام را بصورت XML در خروجی ايجاد نمايد .

در  مرحله اول ( تبديل ) ، عمليات لازم در خصوص ايجاد خروجی با فرمت مناسب انجام خواهد شد . در مرحله فوق عملياتی نظير : انتخاب داده ، گردآوری  و گروه بندی داده ها ، مرتب سازی داده ها و  انجام عمليات محاسباتی ( نظير تبديل اينچ به سانتيمتر ) صورت می پذيرد. نحوه انجام عمليات فوق به چه صورت است ؟ قبل از عرضه XSLT ،   امکان پردازش سندهای XML ، صرفا" از طريق نوشتن يک برنامه خاص ميسر بود . برنامه ها با استفاده از يک رابط برنامه نويسی (API) ، پارسر را فراخوانده تا امکان اخذ اطلاعات دررابطه با سند و يا انجام عمليات مورد نظر فراهم گردد . در اين راستا از دو رابط برنامه نويسی استفاده می گردد : SAX))Simple API for XML   و Document object Model(Dom)

رابط برنامه نويسی SAX ، يک اينترفيس مبتنی بر رويداد بوده که پارسر در رابطه با هر يک از بخش های موجود در سند ، اطلاعات  لازم را در اختيار برنامه متقاضی  قرارخواهد داد. در صورتيکه از رابط برنامه نويسی DOM استفاده گردد، پارسر از طريق ايجاد يک ساختار شبه درختی در حافظه ، امکان ارتباط با آن را پيدا می نمايد . در ادامه ، با نوشتن يک برنامه خاص  )مثلا" با استفاده از زبانهای برنامه نويسی نظير VB ، جاوا ) امکان ارتباط با درخت بوجود می آمد . در مدل فوق ، برای پردازش هر نوع سند XML ، لازم است که يک برنامه خاص و اختصاصی نوشته شده تا با دنبال نمودن مراحل مورد نظر، عمليات لازم در  رابطه با يک سند XML صورت پذيرد.

چگونه می توان از XSLT بمنظور تبديل يک سند XML در مقابل  نوشتن برنامه های اختصاصی استفاده کرد ؟ طراحی XSLT ، مبتنی بر اين واقعيت بوده است که اين نوع برنامه ها بسيار مشابه هم بوده و می توان بمنظور تشريح عملکرد مربوطه ، از يک زبان تعريفی سطح بالا ( در مقابل نوشتن هر يک از برنامه ها توسط زبانهائی نظير VB و يا جاوا)  استفاده کرد . تبديلات انجام شده ، از مجموعه ای قوانين نشات خواهد گرفت . قوانين فوق ،نحوه ايجاد خروجی را در صورت وجود يک الگوی خاص در سند ، مشخص می نمايند . زبان فوق تعريفی بوده و تبديل مورد نياز تشريح می گردد ( در مقابل ارائه دنباله ای از دستورالعمل های رويه ای برای عمليات تبديل) . XSLT ، تبديل مورد نياز را تشريح و در ادامه با تاکيد بر نقش پردازنده XSL ، مناسبترين و کارآمدترين روش برای عمليات انتخاب می گردد .

XSLT ، همچنان بر نقش پارسرها تاکيد ( پارسر سازگار با DOM و يا پارسر سازگار با SAX) ، و از آن برای تبديل يک سند XML به يک ساختار درختی استفاده می نمايد . در حقيقت  پردازش برروی يک سند XML توسط XSLT  ، از طريق ساختار درختی  ارائه شده  از سند ، محقق می گردد . در  DOM ، هر آيتم در يک سند XML ( المان ها  ،خصلت ها  ، دستورالعمل های پردازش ) ، بعنوان يک گره در نظر گرفته می شود . با بکارگيری XSLT ، مجهز به يک زبان برنامه نويسی سطح بالا شده که قادر به حرکت در طول درخت و گره های موجود ، انتخاب گره ها و انجام عمليات پيچيده پردازش برروی گره ها ، خواهيم بود.  مدل درخت XSLT ، در برخی مفاهيم مشابه DOM بوده ولی دقيقا" مشابه آن نيست . 

مقايسه XSLT و SQL 
در يک بانک اطلاعاتی رابطه ای ، داده ها شامل مجموعه ای از جداول می باشند . داده ها در فايل هائی تخت  با فرمت های مورد نظر ذخيره می گردند. قدرت يک بانک اطلاعاتی رابطه ای از ساختمان داده آن نبوده و به  زبانی  که قادر به پردازش داده ها است(SQL) ، وابسته است . در روشی مشابه، XML  ، صرفا" يک ساختمان داده مناسب از اطلاعات را تعريف و با استفاده از يک زبان سطح بالا می توان عمليات دلخواه  در رابطه با ساختمان داده  را انجام داد (XSLT) . 
SQL و XSLT دو زبان کاملا" متفاوت نسبت بيکديگر می باشند .در حالتی خاص ،  می توان اين ادعا را داشت که آنان دارای شباهت هائی در برخی موارد عملياتی هستند. مثلا" بمنظور پردازش داده های موجود در يک بانک اطلاعاتی رابطه ای و يا يک سند XML  ، زبان پردازش می بايست مبتنی بر يک گرامر مشخص باشد . در SQL از عبارت SELECT و در XSLT از عبارات XPath استفاده می گردد .

زبان عبارات XPath ، يکی از بخش های اساسی XSLT  بوده که توسط کنسرسيوم وب استاندارد شده است . امکان استفاده از XPath مستقل از XSLT نيز وجود دارد . گرامر XPath ، امکان بازيابی گره های خاصی را از يک سند XML فراهم می نمايد . بدين منظور ممکن است از طريق  مسيری در سند XML و يا از طريق فهرستی که  گره ها در آن قرار خواهند گرفت ، اين امر تحقق يابد . با استفاده از XPath ، امکان دستيابی به گره هائی خاص فراهم و در ادامه با استفاده از XSLT امکان اخذ نتايج مورد نظر بوجود می آيد . ( اجراء پرس وجوی لازم )

XSLT و SQL دارای شباهت های ديگری نيزمی باشند .  هر دو زبان ، دارای يک ويژگی مهم با نام closure می باشند. ويژگی فوق، بدين مفهوم است که خروجی ، دارای ساختمان داده مشابه ورودی است . مثلا" SQL خروجی خود را بصورت يک جدول و XSLT بصورت يک درخت ارائه خواهد داد . بدين ترتيب می توان خروجی يک عمليات را بعنوان ورودی در اختيار عمليات بعدی قرار داد. در SQL  اين عمليات با استفاده از تعريف view و يا Subquery و در XSLT با ارسال داده از طريق مجموعه ای  stylesheet  انجام می گيرد .

در دنيای واقعی وچود  XSLT و SQL ضرورت داشته و  ارتباطات متعدددی بين آنها  وجود خواهد داشت  . داده ها  عموما" در بانک های اطلاعاتی رابطه ای ذخيره و با فرمت XML بين سيستم های متنوع ارسال خواهند  شد. مدل های داده در هر يک از سيستم های فوق با يکديگر متفاوت بوده و XSLT  قادر به ايفای نقشی حساس در رابطه با تبديل مدل های متفاوت داده است . توليدکنندگان متفاوت بانک های اطلاعاتی در تلاش برای ارائه محصول خود بگونه ای هستند که امکان ارتباط XML و SQL را فراهم نمايد . SQL Server 2000 امکان استفاده از پرس و جو های مبتنی بر XPath را حمايت می نمايد.

پردازنده XSLT 
مهمترين رسالت پردازنده
XSLT ، بکارگيری يک XML stylesheet در رابطه با يک سند XML و ايجاد( توليد ) خروجی مناسب است . لازم به يادآوری  است که هر يک از موارد اشاره شده ، بمنزله يک برنامه XML بوده و بديهی است که ساختار هر يک از آنها يک درخت باشد . عملکرد پردازنده XSLT  وابسته به وجود درخت های فوق است. پردازنده های متعددی در رابطه با  XSLT نظير Saxon, xt, MSXML3  وجود دارد . پردازنده های فوق را می توان بصورت رايگان تهيه نمود .

پردازنده saxon ،  قادر به تبديل سند XML به ساير مدل های ديگر است ( يک سند Html) .  برای استفاده از برنامه فوق،می بايست برنامه Instan Saxon را از آدرس http://users.iclway.co.uk/mhkay/saxon/instant.html   دريافت و بر روی سيستم  نصب کرد . برنامه فوق به زبان جاوا نوشته شده و می توان آن را مستقيما" از طريق خط دستور اجراء نمود ( ضرورتی به داشتن مرورگرهای وب و يا سرويس دهنده وب نخواهد بود ) . مرورگرها و سرويس دهندگان وب در اين حالت با سند تبديل يافته سروکار خواهند داشت .

xt ، يکی ديگر از پردازنده های XSLT است . برنامه فوق با زبان جاوا نوشته شده و امکان اجرای آن از طريق خط دستور وجود دارد . برای دريافت پردازنده فوق می توان به آدرس http://www.jclark.com/xml/xt.html مراجعه نمود. پردازنده فوق همانند saxon ، قادر به فعاليت با پارسر های مبتنی بر SAX می باشد .

 امکان اجرای XSLT stylesheet بهمراه مرورگر IE نيز وجود دارد . بدين منظور می بايست  نسخه پنج مرورگر فوق و آخرين نسخه پردازنده MSXML مربوط به شرکت ماکروسافت ، بر روی سيستم نصب گردند. برای دريافت آخرين نسخه پردازنده فوق می توان به آدرس www.microsoft.com/xml  مراجعه کرد .

فرض کنيد ، يک سند ساده XML مطابق زير را داشته باشيم :

يک سند ساده XML :

Hello, world!

خروجی مورد نظر سند XML يک فايل Html بصورت زير خواهد بود .



  


  

Hello, world!



XSLT زير بمنظور تبديل سند XML و ايجاد خروجی Html استفاده می گردد .




  
  
     
  
  
      


  
  

اجرای StyleSheet
 مراحل زير را می بايست دنبال کرد.

استفاده از پردازنده saxon   .بمنظور اجرای Stylesheet فوق با استفاده از پردازنده saxon ، عمليات زير را می بايست انجام داد :

دريافت برنامه پردازنده

نصب برنامه saxon.exe در يک فولدر مناسب

با استفاده از برنامه notepad دو فايل اشاره شده را در فايل هائی با نام hello.xml و hello.xsl ذخيره نمائيد.

خط دستور DOS را فعال نمائيد .(start/programs/MSDOS prompt)

دستور saxon   hello.xml   hello.xsl  را در خط دستور تايپ نمائيد .

خروجی html بر روی صفحه نمايش داده خواهد شد .

در صورتيکه قصد مشاهده خروجی را در مرورگر داشته باشيد ، خروجی خط دستور را در يک فايل Html بصورت زير ذخيره نمائيد .

Saxon hello.xml hello.xsl > hello.html

استفاده از پردازنده xt .  برای اجرای پردازنده xt ، از روشی مشابه saxon استفاده شده با اين تفاوت که در عوض استفاده از برنامه  saxon از برنامه  xt استفاده می گردد .

استفاده از پردازنده MSXML  . بمنظور اجرای stylesheet بهمراه مرورگر IE ، می بايست تغييرات اندکی در سند XML بمنظور مراجعه به stylesheet ايجاد گردد :



Hello, world!

در ادامه می توان فايل hello.xml را در مرورگر IE ، فعال و مشاهده نمود . مرورگر فوق ، سند XML را خوانده و از وجود  يک stylesheet آگاه می گردد . در ادامه stylesheet مربوطه  فعال و بمنظور تبديل سند XML و ايجاد خروجی Html ، آن را اجراء می نمايد . در صورتيکه بر روی صفحه نمايشگر عبارت hello,world نمايش داده نشود و صرفا" سند XML مشاهده گردد، علت  عدم استفاده از آخرين نسخه MSXML بهمراه مرورگر بوده و می بايست آخرين نسخه را از آدرس اشاره شده دريافت و بر روی سيستم نصب نمود .

تشريح نحوه عملکرد XSLT  در رابطه با مثال فوق
اولين خط فايل stylesheet ، شامل دستور زير است :

دستور فوق، اعلام می نمايد که   يک XSLT stylesheet  ، خود بعنوان يک سند XML است . برای encoding کاراکترها ،می توان از استانداردهای متعدد موجود منجمله utf-8 استفاده کرد .
در ادامه با خط زير مواجه می گرديم :

خط فوق، عنوان استاندارد XSLT است . يک المان شروع که نوع سند را بعنوان يک stylesheet معرفی می نمايد . خصلت  xmlns:xsl تعريف يک namespace  بوده که مشخص می نمايد پيشوند xsl در ادامه بمنظور مراجعه به  المان های تعريف شده ( استاندارد کنسرسيوم وب XSLT ) ، استفاده خواهد شد .
در ادامه با خط زير مواجه می شويم :

المان <xsl:template> ، يک قانون تمپليت را تعريف که بر اساس آن نحوه برخورد با بخش های خاص سند مبداء در هنگام پردازش،  تبين می گردد . خصلت "/" مشخص می نمايد که قانون فوق از ابتدای سند مبداء اعمال خواهد شد . در حقيقت، عبارت فوق يک عبارت مبتنی بر XPath بوده و المان ريشه سند XML را مشخص می نمايد . يک سند XML دارای يک ساختار سلسله مراتبی بوده و همانند يونيکس که از "/" برای مشخص نمودن ريشه استفاده می نمايد، XPath نيز از "/" برای مشخص نمودن المان ريشه در يک سند XML  استفاده می نمايد . در مدل DOM به عنصر فوق  " Document object" و در XPath به آن ريشه گفته می شود .
در ادامه با خطوط زير مواجه می شويم :



  


  



بدنه تمپليت،نحوه ايجاد خروجی را مشخص می نمايد . اکثر بدنه تمپليت در مثال فوق ، مجموعه ای از المان های Html  و متن مورد نظر را که  می بايست در فايل خروجی منعکس گردند  ، شامل می گردد . در دستورات فوق يک المان خاص با نام <xsl:valeu-of> وجود داشته  که يک دستورالعمل XSLT است( چون از namespace مربوطه با نام xsl استفاده می نمايد ) . دستورالعمل فوق ، مقدار يک گره موجود در سند مبداء را در سند خروجی تکثير می نمايد . خصلت SELECT  مربوط به المان ،  گره ای را که مقدار آن می بايست انتخاب شود  را مشخص می نمايد . ( تمام المان های <greeting> که فرزند گره مربوطه می باشند ،انتخاب می گردند ) .
در ادامه با دستور زير مواجه می گرديم :

برای يک تمپليت ساده نظير آنچه در مثال فوق وجود داشت ، می توان برخی از بخش ها را حذف نمود. با توجه به اينکه صرفا" از يک تمپليت استفاده شده است المان <xsl:template> را می توان حذف نمود . در اين حالت Stylesheet مربوطه بصورت زير خواهد بود :

      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  


  



 

در ادامه به بررسی ارتباط موجود بينXSLT     و ساير استانداردهای موجود در زمينه  XML  خواهيم پرداخت.

 

 

 

 

+ نوشته شده در  شنبه 17 دی1384ساعت 15:56  توسط شیوا  | 

XML و ده نکته مهم

دنيای XML مملو از تکنولوژی های ديگر، نظير XLink,Namespace,DTD,Schema,CSS,XSL,XHTML و ... است .افراديکه قصد آشنائی با XML را دارند، همواره با اين سوال مشکل مواجه هستند که از کجا می بايست آغاز نمايند. در اين مقاله به بررسی ده نکته مهم بمنظور آشنائی با XML پرداخته تا از اين رهگذر مسيری مناسب برای علاقه مندان به فراگيری اين تکنولوژی مهم ، مشخص گردد. نکته اول : XML گزينه ای برای ارائه ساختار داده ها داده های ساخت يافته شامل مواردی نظير صفحات گسترده ، دفترچه های آدرس ، پارامترهای قابل پيکربندی و ... می باشند . XML ، مجموعه ای از قوانين بمنظور طراحی ساختار داده های مورد نظر است . XML ، بعنوان يک زبان برنامه نويسی تلقی نشده و برای استفاده از آن اجباری به داشتن تجربه لازم برنامه نويسی نخواهد بود . با استفاده از XML ، کامپيوترها بسادگی قادر به توليد و خواندن اطلاعات و اطمينان از عدم مبهم بودن ساختمان داده ها می باشند . XML ، بسط پذير ، مستقل از پلات فورم و مورد حمايت های بين المللی و محلی است . XML ، بطور کامل Unicode را حمايت می نمايد . نکته دوم : XML شباهت زيادی به HTML دارد XML ، همانند HTML از تگ ها و خصلت ها استفاده می نمايد.در HTML ، هر تگ و يا خصلت دارای عملکرد و معنی از قبل مشخص شده ای بوده وبا بکارگيری هر تگ ، نحوه نمايش اطلاعات ( بين تگ ها ی استفاده شده) برای مرورگر تبين می گردد. XML ، با استفاده از تگ ها ، محدوده مشخصی برای داده ها را تعيين و عملا" مسئوليتی در رابطه با تفسير تگ ها و داده های همراه آنها را نداشته و اين عمليات را به برنامه هائی که يک فايل XML را می خوانند، واگذار می نمايد . مثلا" در صورتيکه از تگ

در يک سند XML استفاده شده باشد ، نمی توان اين ادعا را داشت که تگ فوق نشاندهنده يک پاراگراف است . ممکن است تگ فوق، نشاندهنده price ، parameter و يا يک person باشد . نکته سوم : XML بصورت متن است . برنامه هائی که داده های ساخت يافته توليد می نمايند، اغلب داده های خود را برروی ديسک ذخيره می نمايند . فرمت ذخيره سازی اطلاعات ممکن است بصورت متن و يا باينری باشد . مهمترين مزيت ذخيره سازی داده ها بصورت متن ، امکان مشاهده داده ها بدون نياز به برنامه ای است که اطلاعات را توليد کرده است . حتی می توان اطلاعات فوق را با استفاده از يک ويرايشگر متنی تغيير داد . فرمت های اطلاعاتی مبتنی بر متن، به پياده کنندگان نرم افزار قابليت های بيشتری را در خصوص اشکال زدائی برنامه ها نيز می دهد. فايل های XML ، مشابه HTML بصورت متن می باشند . قوانين موجود در XML ، با صراحت و شفافيت بيشتری ارائه شده است . فراموش کردن يک تگ و يا عدم قرار دادن خصلت بين علامت "" باعث می گردد که يک فايل XML غيرقابل استفاده گردد . در صورتيکه در فايل های HTML مسائل فوق تحمل و اغلب مجاز خواهد بود . اگر يک فايل XML دارای مشکل باشد ، برنامه استفاده کننده پس از مواجه شدن با مشکل ، عمليات خود را در محل بروز خطاء متوقف و يک پيام خطاء را ارائه خواهد داد . نکته چهارم : ظرفيت فايل های XML زياد است . با توجه به اينکه فرمت فايل های XML ، بصورت متنی بوده و از تگ ها بمنظور مرزبندی داده ها استفاده می شود ، اين نوع فايل ها معمولا" دارای حجم بيشتری نسبت به فايل هائی با فرمت باينری می باشند . همانگونه که در نکته سوم اشاره گرديد، مهمترين مزيت يک فرمت مبتنی بر متن ، قابليت مشاهده آن و مهمترين اشکال ، اشغال حجم بيشتری از فضای ذخيره سازی است . از طرف ديگر با توجه به وجود برنامه های فشرده سازی نظير Zip ، امکان فشرده سازی فايل ها بخوبی و با سرعت بالا فراهم می گردد . پروتکل های ارتباطی نظير پروتکل های مربوط به مودم و يا HTTP/1.1 ( پروتکل اصلی در وب ) قادر به فشرده سازی داده ها و صرفه جوئی در پهنای باند استفاده شده می باشند . نکته پنجم : XML خانواده ای از تکنولوژی ها است XML 1.0 ، مشخصات ، ماهيت و قوانين موجود در رابطه با تگ ها و خصلت ها را تعريف می نمايد . خانواده XML ، شامل مجموعه ای در حال رشد از ساير ماژول هائی است که سرويس های مفيدی را در خصوص انجام عمليات و خواسته های مهم بر عهده دارند . XLink ، روشی استاندارد برای افزدون ابر لينک ها به يک فايل XML را مشخص می نمايد XPointer ، گرامری مناسب برای اشاره به بخش های متفاوت يک سند XML است . يک XPointer ، شباهت زيادی به يک URL داشته ، با اين تفاوت که در مقابل اشاره به سندهائی بر روی وب ، به بخش های متفاوت در يک سند XML اشاره می نمايد . CSS ، زبان style sheet قابل استفاده برای XML و HTML است . XSL ، يک زبان پيشرفته برای ارائه style sheet است . تکنولوژی فوق بر اساس XSLT است . XSLT ، يک زبان تبديل بمنظور سازماندهی مجدد ، افزودن و يا حذف تگ ها و خصلت ها است . DOM ، استانداردی با مجموعه ای از توابع برای انجام عمليات برروی يک سند XML ( يا HTML) از طريق يک زبان برنامه نويسی است . XML Schema ، به پياده کنندگان ، امکان تعريف دقيق ساختار اطلاعات را ارائه می نمايد . در اين رابطه ماژول های متعدد ديگری نيز وجود داشته که در خانواده بزرگ XML دارای جايگاه خاص خود می باشند . نکته ششم : XML جديد است اما نه خيلی جديد پياده سازی XML از سال 1996 آغاز و در فوريه سال 1998 توسط کنسرسيوم وب عرضه گرديد . ممکن است ابهامی در خصوص جوان بودن تکنولوژی فوق در ذهن ايجاد گردد . در پاسخ می بايست به اين نکته اشاره گردد که تکنولوژی فوق ، خيلی هم جديد نيست . قبل از XML ، تکنولوژی SGML وجود داشت . پياده کنندگاه در اوايل دهه 80 در مقياس وسيعی از آن برای پروژه های بزرگ مستند سازی استفاده می نمودند . پياده سازی HTML از سال 1990 آغاز گرديد. طراحان XML ، بهترين بخش های SGML را بهمراه تجارب موجود در رابطه با HTML ، ترکيب و محصولی را توليد نموده اند که قدرتی کمتر از SGML ندارد . SGML اغلب برای مستند سازی فنی استفاده شده و از آن برای ساير موارد مربوط به داده ها بندرت استفاده می گردد . XML دقيقا" برخلاف وضعيت فوق است نکته هفتم : XML باعث هدايت HTML بسمت XHTML می گردد . يکی از موارد مهم کاربرد XML ، تکنولوژی XHTML است . XHTML ، گزينه بعدی نسبت به HTML است . XHTML دارای المان های مشابه المان های استفاده شده در HTML است . گرامر استفاده شده در XHTML ، بگونه ای تغيير پيدا کرده که منطبق بر قوانين مربوط به XML باشد . سندهای مبتنی بر XML ، گرامر خود را از XML به ارث برده و آن را با روش های خاصی محدود می نمايد . ( مثلا" XHTML امکان استفاده از

را داده ولی امکان استفاده از را نخواهد داد ) در XHTML به گرامر موجود ، مفهوم نيز اضافه شده است . ( مثلا" XHTML از تگ

برای يک پاراگراف استفاده می نمايد نه برای price و يا person ) نکته هشتم : XML ماژولار است . XML ، امکان تعريف يک فرمت جديد سند را با ترکيب و استفاده مجدد از ساير فرمت ها فراهم می نمايد . با توجه به اينکه دو فرمت بصورت مستقل از يکديگر طراحی و پياده سازی می گردند، ولی ممکن است از المان ها و يا خصلت هائی با اسامی مشابه ، استفاده شده باشد . در زمان ترکيب فرمت های فوق، می بايست تدابير لازم پيش بينی گردد . ( مثلا" ممکن است تگ

در يک فرمت، مفهوم پاراگراف را داشته در صورتيکه در فرمت ديگر، دارای مفهوم person باشد ) . بمنظور حل مشکل فوق ( وجود اسامی مشابه با مفهوم متفاوت ) ، namespace ارائه شده است . XSL و RDF نمونه های مناسبی از فرمت های مبتنی بر XML بوده که از namespace استفاده می نمايند . نکته نهم : XML پايه و اساس RDF و سمنتيک وب است . RDF))Resource Description FrameWork ) يک فرمت متنی مبتنی بر XML بوده که تشريح منابع و برنامه های متاديتا ( نظير يک برنامه موزيک playlist و يا آلبوم عکس ) را حمايت می نمايد . مثلا" RDF می تواند اين امکان را فراهم آورد که يک آلبوم عکس وب را با استفاده از اطلاعات مربوط به ليست تماس شخصی ، ايجاد و در ادامه برنامه سرويس گيرنده پست الکترونيکی قادر به ارسال يک پيام بصورت خودکار برای افراد موجود در آلبوم باشد . همانگونه که HTML باعث ترکيب سندها و برنامه های مبتنی بر فرم ها در وب می گردد ، RDF با يکپارچگی برنامه ها و آژانس ها ، يک وب سمنتيک ( وبی که تعامل اطلاعاتی بين اجزای آن کاملا" مشهود و مدون است ) ايجاد می نمايد. نکته دهم : حق استفاده از XML رايگان بوده ، مستقل از پلات فورم است و بخوبی حمايت می گردد. با انتخاب XML ، برای پياده سازی يک پروژه از امکانات حمايتی متنوع و گسترده ای در رابطه با ابزارها و مهندسين با تجربه بهره مند خواهيد شد . انتخاب XML ، مشابه انتخاب SQL برای بانک اطلاعاتی است . در اين حالت همچنان نياز به ايجاد بانک اطلاعاتی ، نوشتن برنامه ها و روتين های لازم بمنظور انجام عمليات دلخواه خواهد بود . با توجه به اينکه حق استفاده از XML رايگان بوده می توان نرم افزار خود را با استفاده از آن ، بدون پرداخت هزينه ای طراحی نمود .

+ نوشته شده در  شنبه 17 دی1384ساعت 15:48  توسط شیوا  |