XSLT چيست ؟

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





XSLT، از کلمات eXtensible Stylesheet Language :Transformation اقتباس و زبانی برای تبديل يک سند 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 ) و DOM)Document object Model) .
رابط برنامه نويسی 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 مراجعه کرد .
مثال : در ادامه به بررسی مثالی خواهيم پرداخت که نحوه استفاده از XSLT بمنظور تبديل يک سند ساده XML را نشان خواهد داد . فرض کنيد ، يک سند ساده XML مطابق زير را داشته باشيم :

يک سند ساده XML

<?xml version="1.0" encoding="iso-8859-1"?>
<greeting>Hello, world!</greeting>


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

خروجی Html

<html>
<head>
   <title>Today's greeting</title>
</head>
<body>
   <p>Hello, world!</p>
</body>
</html>


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

XSLT  بمنظور تبديل سند XMLو ايجاد خروجی Html

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet  version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <html>
   <head>
      <title>Today's greeting</title>
   </head>
   <body>
      <p><xsl:value-of select="greeting"/></p>
   </body>
   </html>
</xsl:template>
</xsl:stylesheet>


اجرای StyleSheet

برای اجرای 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 ايجاد گردد :

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="hello.xsl"?>
<greeting>Hello, world!</greeting>


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

<?xml version="1.0" encoding="iso-8859-1"?>


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

<xsl:stylesheet    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="1.0">


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

<xsl:template match="/">


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

<html>
<head>
   <title>Today's greeting</title>
</head>
<body>
   <p><xsl:value-of select="greeting"/></p>
</body>
</html>


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

</xsl:template>


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

<html xsl:version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<head>
   <title>Today's greeting</title>
</head>
<body>
   <p><xsl:value-of select="greeting"/></p>
</body>
</html>


XSLT و XSL

آغاز حيات XSLT ، از يک زبان بزرگتر با نام XSL همراه بوده است . همانگونه که از نام زبان فوق مشخص است ، XSL ، با هدف تعريف نحوه فرمت سندهای XML ، بمنظور نمايش بر روی صفحه نمايشگر، کاغذ و ساير موارد ، طراحی و عرضه شده است . ارائه يک سند XML مستلزم تحقق دو فرآيند متمايز است . در اولين فرآيند، می بايست با انجام عمليات متفاوت نظير انتخاب ، گروه بندی و ذخيره المان ها ، يک تبديل ساختاری در سند ايجاد گردد . در دومين فرآيند ، می بايست ماحصل عمليات انجام شده بر روی المان ها با فرمت دلخواه در خروجی ( مثلا" نمايشگر ) نمايش داده شود . فرآيندهای فوق کاملا" از يکديگر مستقل بوده و بر همين اساس XSL به دو بخش مجزاء تفسيم شده است: XSLT برای تعريف و انجام تبديلات و XSL بمنظور تعريف نحوه فرمت و قالب نمايش ( ارائه ) اطلاعات . ( ويژگی فوق را XSL-FO نيز می گويند ) . (XSL Formatting Objects) . برای آگاهی از مشخصات و مستندات مربوط به XSL-FO می توان به آدرس http://www.w3.org/TR/xsl مراجعه کرد. XSLT می بايست دارای قابليت ها ی خاصی بمنظور توليد خروجی مورد نظر باشد . XSL-FO ، امکانات متعدد و مناسبی در رابطه با ايجاد خروجی با کيفيت بالا را فراهم می نمايد. اغلب پياده کنندگان نرم افزار صرفا" تمايل به تبديل يک سند XML به Html را داشته تا زمينه استفاده فراگير نتايج در انواع مرورگرها فراهم گردد . در برخی حالات از امکانات CSS)Cascading style sheets) نيز بهمراه XSLT استفاده می شود .

XSLT و XPath

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

<xsl:value-of select="sum(//book/@price) div count(//book)"/>


در مثال فوق ، المان <xsl:value-of> يک دستورالعمل تعريف شده در XSLT است . دستورالعمل فوق ، باعث نوشتن يک مقدار در سند خروجی می گردد . خصلت select ، يک عبارت مبتنی بر XPath است . عبارت فوق، مسئول محاسبه مقداری است که می بايست در خروجی نمايش داده شود . در اين مثال خاص ، مجموع خصلت های price مربوط به تمام المان های <book> محاسبه و بر تعداد المان های موجود <book> تقسيم تا معدل مربوطه محاسبه گردد .
تفکيک XPath و XSLT از يکديگر منطقی بنظر می آيد ولی در مواردی خاص تقسيم بندی و تمايز انجام شده باعث بروز مسائلی می گردد .در برخی حالات ، تشخيص اينکه کدام سند می بايست خوانده شده تا پاسخ مناسب در رابطه با يک سوال خاص داده شود، مشکل خواهد بود . مثلا" يک عبارت XPath می تواند شامل يک مرجع به متغيری باشد ، ولی ايجاد و مقدار دهی اوليه آن از وظايف XSLT است . جايگاه تعريف يک تابع در Xpath و XSLT يکی ديگر از مسائل مربوط به تفکيک دو تکنولوژی فوق است . عبارات XPath قادر به فراخوانی توابع می باشند ( در اين راستا مجموعه گسترده ای از توابع استادندارد تعريف شده است ) . برخی از آنان نظير string-lenght در عبارات XPath تعريف شده در صورتيکه توابعی ديگر که عملکرد آنها در ارتباط با تعاريف XSLT است (نظير key ) ، در مشخصه XSLT تعريف می گردند . اغلب XSLT و XPath در کنار يکديگر استفاده می گردند . فراموش نکنيم که امکان استفاده از XPath بصورت مستقل و بمنظور انجام عمليات متفاوتی نظير تعريف ابرلينک های موجود در اسناد و .... نيز وجود دارد .

XSLT و XML

XSLT ، ابزاری برای تبديل اسناد XML است . در بخش اول اين مقاله ، به ضرورت های تبديل اشاره گرديد. در اين بخش لازم است به بررسی ارتباط دو تکنولوژی فوق با نگرشی عميق تر ، پرداخته گردد . مفاهيم XML namespace و XML information set از جمله مواردی می باشند که زمينه تعامل ارتباطی بين XML و XSLT را فراهم می نمايند . در ادامه هر يک از موارد فوق توضيح داده می شود :

XML namespace

در طراحی XSLT بر نقش مهم و کليدی XML namespace در استاندارد XML توجه جدی شده است . بنابراين زمانيکه استاندارد XSLT به يک سند XML مراجعه می نمايد ، عملا" مشخصات XML namespace نيز مورد توجه قرار گرفته شده است . مشخصات و استانداردهای مربوط به namespace را می توان در آدرس http://www.w3.org/TR/REC-xml-names مشاهده نمود .
Namespace دارای نقشی حياتی در XSLT است . تکنولوژی فوق ،امکان ترکيب تگ هائی از سند های XML مشابه با معانی متفاوت را فراهم می نمايد . مثلا" ممکن است در يک سند XML ، المان <table> نشاندهنده يک بردار دو بعدی شامل مقاير متفاوت داده بوده در صورتيکه در سند ديگر، المان <table> نشاندهنده بخشی از يک مبلمان باشد . Namespace توسط يک URI) Unique Resource Identifier) مشخص می گردد. بدين منظور از روش های متفاوتی استفاده می گردد. مثلا" در يک مدل، از آدرس مشابه يک URL معمولی استفاده می گردد:(http://www.yourcomany.com ) . در روش ديگر در برخی از اصطلاحات XML ( نظير http://www.biztalk.org) استفاده می گردد ، URN است . ( مثلا" urn:java:com:ic1.saxson ) . جزئيات مربوط به URI مهم نبوده ولی همواره می بايست به اين مسئله توجه گردد که نام در نظر گرفته شده منحصر بفرد باشد . يکی از روش های مناسب تحقق وضعيت فوق، استفاده از URL مربوط به سايت خود می باشد . لازم به توضيح است که موضوع فوق بدين معنی نخواهد بود که می بايست بر روی وب سايت ، آيتمی بمنظور اشاره کردن به آن ، وجود داشته باشد . URI در حقيقت رشته ای است که بمنظور تمايز با تعاريف انجام شده توسط ساير افراد انتخاب می گردد .
با توجه به اينکه رشته های URI اغلب طولانی و از کاراکترهای خاصی نظير "/" استفاده می نمايند، از آنها بصورت کامل همراه اسامی المان ها و خصلت ها استفاده نمی گردد . بدين منظور اغلب از يک نام مستعار کوچک استفاده می شود . نام مستعار، بصورت پيشوند در کنار اسامی المان ها و خصلت ها استفاده می شود . نام در نظرگرفته شده برای پيشوند مهم نبوده و هر نامی را می توان انتخاب کرد . بدين ترتيب نام واقعی هر المان و يا خصلت ، از طريق URI مربوط به namespace و نام محلی آن ( آن بخش از نام که بعد از پيشوند قرار می گيرد ) مشخص خواهد شد . مثلا" می توان با استفاده از پيشوند xsl به namespace مربوط به http://www.w3.org/1999/XSLT/Transform اشاره کرد . برای اسامی المان ها ، می توان يک URI پيش فرض را تعريف و آن را به اسامی المان غيرپيشوندی مرتبط نمود . namespace پيش فرض URI به اسامی خصلت های غير پيشوندی نسبت داده نخواهد شد . تعريف يک پيشوند namespace بصورت زير است :

xmlns:prefix = "namespace-URI"


عبارت فوق، يک پيشوند namespace را تعريف ، که می توان آن را بهمراه نام المان مربوطه و يا نام خصلت موجود در المان استفاده کرد . namespace پيش فرض که برای المان ها استفاده می گردد نيازی به داشتن پيشوند نداشته ( مورد فوق در رابطه با خصلت ها صدق نمی کند ) و بصورت زير تعريف می گردد :

xmlns = "namespace-URI"


پردازش يک سند XML توسط XSLT متاثر از واقعيت های موجود در namespace خواهد بود .

XML information set

XSLT بمنظور انجام پردازش های ضروری بر روی اطلاعات موجود در يک سند XML ، طراحی و با سند کاری نخواهد داشت . اين بدان معنی است که ، يک برنامه نويس XSLT قادر به دريافت يک نمايش شبه درختی از يک سند مبداء بوده که برخی از بخش های آن قابل مشاهد و برخی ديگر غيرقابل مشاهده خواهند بود. مثلا"می توان اسامی و مقدار خصلت ها را مشاهده نمود ولی امکان مشاهده اينکه يک خصلت در يک کوتيشن و يا دو کوتيشن استفاده شده ، وجود نخواهد داشت . همچنين امکان مشاهده نظم و اولويت خصلت ها و نحوه نگارش آنها وجود نخواهد داشت .تلاش های متعددی بمنظور تعريف اطلاعات مورد نياز برای مشخص نمودن "خوش شکل " بودن يک سند XML انجام شده است . در بيست و چهارم اکتبر 2001 ،کنسرسيوم وب محموعه اطلاعات مورد نياز و تعريف شده در رابطه با يک سند XML را استاندارد و پيشنهاد داده است . مشخصات فوق را می توان از طريق آدرس http://www.w3.org/TR/xml-infoset مشاهده کرد . اين مشخصات ، شامل مجموعه ای از تعاريف مورد نياز ساير تکنولوژی هائی است که نيازمند دستيابی به اطلاعات موجود در يک سند XML می باشند . يک سند XML دارای مجموعه ای از اطلاعات ضروری بوده که "خوش شکل " بودن آن را تضمين و ساير تکنولوژی های مربوطه با مراجعه به اطلاعات فوق قادر به برداشت مناسب از يک سند XML و انجام عمليات مربوط به خود خواهند بود . مجموعه اطلاعات يک سند XML شامل تعدادی از آيتم های اطلاعاتی است . مجموعه اطلاعات مربوط به يک سند XML " خوش شکل " ، حداقل دارای يک آيتم اطلاعاتی است . يک آيتم اطلاعاتی بخش خاصی از يک سند XML را تشريح و شامل مجموعه ای از خصلت های مربوط به خود است .

XSL و CSS

چرا دو زبان ( XSL و CSS ) مختص stylesheet وجود دارد؟ منظور از XSL ، تکنولوژی XSLT بهمراه XSL Formating objects است . مهمترين هدف CSS ، تبين قوانين لازم بمنظور نمايش عناصر موجود در يک سند Html می باشد . در اين راستا امکان استفاده از CSS بهمراه سندهای XML نيز وجود دارد . با توجه به ويژگی های خاص نمايش در رابطه با يک سند XML ، بکارگيری تکنولوژی CSS محدوديت های خاصی را بدنبال خواهد داشت . در اين زمينه می توان به موارد زير اشاره کرد :
• CSS ، قادر به ثبت ( ذخيره ) المان های موجود در يک سند XML نمی باشد .
• CSS ، قادر به افزودن متن و يا تصاوير نمی باشد .
• CSS ، قادر به تصميم گيری در رابطه با اينکه چه المانی می بايست نمايش داده شده و يا اينکه چه المانی می بايست حذف گردد،نخواهد بود .
• CSS ، قادر به محاسبه مجموع و يا معدل دنباله ای از اعداد نمی باشد .
CSS ، صرفا" در زمانيکه ساختار سند مبداء شباهت زيادی به شکل نهائی نمايش دارد ، مفيد و قابل استفاده است . صرفنظر از محدوديت های فوق ، استفاده از CSS ساده بوده و منابع زيادی را بر روی ماشين بخود اختصاص نخواهد داد . ( مقرون بصرفه از بعد در اختيار گرفتن منابع ) . با توجه به عدم ذخيره سازی سند ، ضرورتی به ايجاد يک مدل شبه درختی برای نمايش و ارائه سند در حافظه نبوده و بلافاصله پس از دريافت اولين متون موجود ، فرآيند نمايش آنها آغاز می گردد .
در برخی حالات ، مناسب است که از XSLT و CSS در کنار يکديگر استفاده نمود. مثلا" با استفاده از XSLT می توان يک مدل قابل قبول از سند مورد نظر را که قصد نمايش نهائی آن را داريم ، ( در مدل فوق متن ها بدرستی و با اولويت مناسب مستقر شده اند) ايجاد و در ادامه با استفاده از CSS ، عمليات لازم در رابطه با انتخاب نوع فونت ، اندازه فونت ، رنگ ها و ... را انجام داد . در اين راستا امکان پردازش XSLT بر روی سرويس دهنده و پردازش CSS ، بر روی سرويس گيرنده وجود خواهد داشت . يکی از مزايای رويکرد فوق ، کاهش حجم داده های ارسالی از طريق خط ارتباطی بوده و بدين ترتيب مدت زمان پاسخ به کاربران، بهبود پيدا خواهد کرد .

روند شکل گيری XSLT

XSLT ، نظير ساير اعضاء خانواده بزرگ استاندارهای XML، توسط کنسرسيوم وب پياده سازی شده است. جزئيات مربوط به شکل گيری استاندارد فوق، در آدرس http://www.w3.org/style/History قابل استفاده است. پيشنهاد اوليه ، برای استاندارد فوق در تاريخ بيست ويکم اگوست سال 1997 ارائه گرديد ( http://www.w3.org/TR/NOTE-XSL.html ) . برای ارائه استاندارد فوق، از وجود يازده متخصص استفاده گرديد . ( پنج نفر از شرکت ماکروسافت ، سه نفر از شرکت Inso ، يک نفر از شرکت ArborText ، يک نفر از دانشگاه ادينبورگ و James Clark ، که برای خود کار می کرد) .
XSL ، يک زبان Stylesheet است که توسط کميته وب طراحی شده است . قابليت های استاندارد فوق ، بمراتب بيشتر از CSS است ( مثلا" قابليت ذخيره سازی المان ها ) . همانگونه که قبلا" اشاره گرديد، CSS بمنظور نمايش سندهای XML با ساختار ساده مناسب می باشد. XSL ، دارای قابليت های بمراتب بيشتری در رابطه با فرمت مورد نياز برای قالب دهی اطلاعات ساختيافته ، (نظير يک ساختمان داده XML ) می باشد . پياده کنندگان استاندارد XSL ، در زمان طراحی تکنولوژی فوق ، سه محور اساسی را مورد توجه قراردادند :
• يک زبان نشانه گذاری با تاکيد بر يک گرامر تعريفی
• امکان استفاده از اسکريپت های خاص بمنظور انجام عمليات پيچيده
• امکان استفاده بعنوان يک زبان برنامه نويسی کامل
اهداف طراحی XSL بشرح زير است :
• XSL ، می بايست براحتی از طريق اينترنت قابل استفاده باشد.
• XSL ، می بايست همراه با گرامر XML ارائه شود
• XSL ، می بايست يک زبان تعريفی بمنظور انجام عمليات رايج در رابطه با فرمت دهی باشد.
• XSL ، می بايست امکان استفاده از يک زبان اسکريپت را بمنظور افزايش توان عملياتی فراهم نمايد .
• XSL ، می بايست امکان تطبيق يک CSS را به يک XSL stylesheet فراهم نمايد .
• قابليت استفاده آسان از XSL ، برای کاربرانی که دارای تجربه لازم در رابطه با زبان FOSI می باشند .
• تعداد ويژگی انتخابی در XSL ، می بايست حداقل مقدارممکن را دارا باشد .
• Stylesheet های نوشته شده بکمک XSL ، می بايست خوانائی مطلوبی را داشته باشند .
• طراحی XSL ، می بايست بسرعت انجام شود .
• ايجاد stylesheet بکمک XSL ، می بايست بسادگی انجام شود .
زبان ارائه شده در اولين پيشنهاد ، دارای اغلب مفاهيم کليدی XSLT است ، که در نهايت ارائه گرديد . بمنظور طراحی گرامر زبان فوق از رويکرد مبتنی بر تمپليت استفاده گرديد . بدين ترتيب امکان برخورد با گره ها ی موجود در سند مبداء و تطبيق آنها با يک الگوی تعريف شده ، فراهم می گردد . عدم وجود اثرات جانبی و امکان تفسير و برخورد با سندهای با حجم بالا ، از ديگر مواردی است که در زمان طراحی XSL به آنها توجه جدی گرديد . برآيند تمام تلاش های فوق، عرضه اولين نسخه پيشنهادی XSLT در سال 1998 بود . زبان پيشنهادی در سال 1999 ،بصورت حرفه ای مطرح و مورد استفاده قرار گرفت .

XSLT بعنوان يک زبان

XSLT ، دارای چه ويژگی منحصربفردی است که آن را بعنوان يک زبان برنامه نويسی از ساير زبان ها متمايز می نمايد ؟ در اين بخش به سه مورد اساسی اشاره خواهد گرديد : استفاده از گرامر مبتنی بر XML ، عدم وجود تاثيرات جانبی و پردازش مبتنی بر مجموعه ای از قوانين

استفاده از گرامر مبتنی بر XML

همانگونه که قبلا" اشاره گرديد ، استفاده از گرامر SGML برای Stylesheet از سال 1994 مطرح شده بود . ايده استفاده از SGML در اين زمينه ، دارای مشکلات خاص خود است . بمنظور عرضه stylesheet در XSLT ، از گرامر مبتنی بر XML استفاده می شود . رويکرد فوق دارای مزايای زير است :
• از مزيت وجود يک پارسر XML در مرورگرها ، استفاده خواهد کرد .
• اغلب افراد از عدم وجود يک گرامر همگن و سازگار بين HTML ، XML و CSS گلايه داشته و تمايلی به تکرار آن با يک گرامر جديد ندارند .
• اکثر زبان های مبتنی بر تمپليت در حا ل حاضر، بعنوان يک outline از سند خروجی بوده که با دستورالعمل هائی نيز همراه می باشند و از اين نظر مفهوم فوق ، کاملا" شناخته شده است .
• با استفاده از ابزارهای ويژوال موجود ، امکان ايجاد اين نوع سندها براحتی وجود داشته و نيازی به تايپ نخواهد بود .
• حمايت از يونيکد
• ضرورت استفاده از يک Stylesheet بعنوان ورودی و يا خروجی در زمان تبديل ، بدفعات احساس خواهد شد( سيستم تبديل ) . اين ويژگی که يک stylesheet قادر به خواندن و نوشتن ساير Stylesheet ها باشد ، يک مزيت تلقی می گردد .

اثرات جانبی

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

XSLT مبتنی بر قوانين است

يک XSLT Stylesheet ، شامل مجموعه ای از قوانين مبتنی بر تمپليت است . هر يک از تمپليت ها ، نحوه پردازش يک المان خاص را مشخص خواهند کرد . قوانين با يک نظم و اولويت خاص سازماندهی نشده و ضرورتی به رعايت اولويت و نظم در ورودی و يا خروجی نخواهند بود . زمانيکه XSLT ، بعنوان يک زبان تعريفی در نظر گرفته می شود، می توان گفت که : " زمانيکه الگوهای خاصی در سند مبداء پيدا گرديد ، چه نوع اطلاعاتی و به چه صورت می بايست در خروجی ارائه شود."
ساختار مبتنی بر قوانين ، بسيار مشابه CSS است . نحوه برخورد با الگوها در CSS و XSLT کاملا" متفاوت است . مثلا" در CSS عنوان می شود که قانون تعريف شده در رابطه با کدام گره می بايست اعمال گردد ، در صورتيکه در XSLT مشخص می شود که در زمان يافتن يک الگوی مشخص شده در سند مبداء ، چه عملياتی می بايست انجام شود.

چه زمانی می بايست از XSLT استفاده کرد ؟

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


نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط