اکس‌اس‌ال‌تی

**اکس‌اس‌ال‌تی**  یا **تبدیلات زبان شیوه‌نامه گسترش‌پذیر**  زبانی برای تبدیل اسناد XML به دیگر اسناد XML، یا دیگر قالب‌ها مثل HTML برای صفحات وب، متن ساده، یا اشیای قالب‌بندی XSL می‌باشد، البته ممکن است در ادامه به قالب‌های دیگری مثل PDF، یا PostScript یا PNG تبدیل گردند. ویرایش شماره ۱٫۰ برای XSLT در بیشتر مرورگرهای وب جدید پشتیبانی می‌شود.

در این تبدیلات، سند اصلی تغییر نمی‌کند، بلکه یک سند جدید بر اساس محتوای سند موجود ساخته می‌شود. معمولاً اسناد ورودی، فایل‌های XML هستند، اما می‌توان از هر چیزی که پردازشگر بتواند یک مدل داده XQuery و XPath را از آن بسازد، استفاده کرد، مثلاً ورودی می‌تواند جداول پایگاه داده رابطه‌ای باشد، یا سامانه‌های اطلاعاتی جغرافیایی باشد.

اگرچه XSLT به عنوان یک زبان خاص منظوره برای «تبدیلات XML» طراحی شده‌است، این زبان کمال تورینگ دارد، که از دیدگاه نظری به آن امکان محاسبات دلخواه را می‌دهد.

اکس‌اس‌ال‌تی یک زبان کامل تورینگ مبتنی بر اکس‌ام‌ال است که شیوه تبدیل از یک فایل اکس‌ام‌ال به فایلی دیگر را توصیف می‌کند.

در این زبان برنامه‌نویس تعیین می‌کند که چگونه ساختار درختی درون یک فایل اکس‌ام‌ال به فایلی دیگر - که می‌تواند یک اکس‌ام‌ال دیگر یا اچ‌تی‌ام‌ال یا هر فایل متنی دیگری باشد - تبدیل شود، سپس این تبدیل توسط برنامه‌ای که پردازشگر اکس‌اس‌ال‌تی نامیده می‌شود انجام می‌گیرد.
مرسوم‌ترین استفاده‌های اکس‌اس‌ال‌تی شامل: تبدیل ساختارهای اکس‌ام‌ال مختلف به یکدیگر، تبدیل اکس‌ام‌ال به اچ‌تی‌ام‌ال در سایت‌های اینترنتی و نیز اولین مرحله در ساخت پی‌دی‌اف از روی اکس‌ام‌ال می‌شود.

این زبان بخشی از خانواده اکس‌اس‌ال به‌شمار می‌رود که برای فرمت‌دهی به سندهای اکس‌ام‌ال به وجود آمده‌است و نسخه ۱ استاندارد آن توسط کنسرسیوم جهانی وب (W3C) در نوامبر سال ۱۹۹۹ عرضه شد. نسخه ۲ استاندارد آن نیز در ۲۳ ژانویه سال ۲۰۰۷ تصویب شد.

## تاریخچه
نیاز به یک شیوه نمایش برای فایلهای اکس‌ام‌ال پیش از سال ۱۹۹۷ احساس می‌شد. از سال ۱۹۹۴ مقالاتی در زمینه خصوصیات یک قالب نمایشی مناسب تهیه شدند. سرانجام در سال ۱۹۹۷ گروهی از تعدادی از شرکتهای نرم‌افزاری یک سند اولیه (که اکس‌اس‌ال نامیده می‌شد) را برای طراحی یک زبان قالب نمایشی اکس‌ام‌ال به کنسرسیوم جهانی وب ارائه دادند. کار بر روی اکس‌اس‌ال از همان زمان آغاز شد. تا این زمان تمرکز بر روی قالبهای نمایشی و قابلیتهای ترسیم و نمایش اطلاعات بود و هنوز چیزی به عنوان نگاشت یا ابزار تبدیل ساختاری مطرح نبود.

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

## تغییرات نسخه دوم
بنا به آنچه در مشخصات نسخه دوم آمده‌است، موارد زیر برخی تغییرات نسخه دوم نسبت به نسخه اول هستند: (این لیست ناقص است. برای اطلاع بیشتر به مشخصه نسخه دوم مراجعه کنید)
# تغییرات زیادی برای پشتیبانی مدل داده‌ای اکس‌دی‌ام در نسخه دوم ایجاد شده‌است. به عنوان مثال مفهوم جدیدی به نام دنباله‌ها اضافه شده که علاوه بر اضافه شدن دستورها جدید برای کار با آن؛ باعث تغییراتی در دستورها for-each, value-of و sort نیز شده‌است.
# در مدل پردازشی نسخه دوم به جای امکان سادهٔ «نوشتن در درخت خروجی» امکان برگرداندن دنباله‌ای از مقادیر نیز فراهم شده‌است.
# با پشتیبانی زبان اکس‌پَت ۲ از شماهای اکس‌ام‌ال، نسخه دوم اکس‌اس‌ال‌تی نیز امکانات قویتری برای کار با انواع داده‌ای پیدا کرده‌است.
# تعاریف مربوط به مدیریت خطا بهبود چشمگیری داشته‌است. خطاهای استاتیک از خطاهای دینامیک تفکیک شده‌اند و در هر مورد مشخص شده‌است که چه عکس العملی باید نشان داده شود.
# امکان ایجاد بیش از یک درخت خروجی دیده شده‌است، همچنین توابع تعریف کاربر، گروه‌بندی داده‌ها و … نیز مفاهیمی هستند که اضافه شده‌اند.

## پیاده‌سازی‌های زبان
پردازشگرهای اکس‌اس‌ال‌تی می‌توانند به صورت یک برنامه جداگانه یا به صورت یک کتابخانه توابع مورد استفاده قرار گیرند.

بسیاری از مرورگرهای معروف (مانند فایرفاکس، اینترنت اکسپلورر، موزیلا، نت اسکیپ، سفری، اپرا و …) در نسخه‌های جدید خود امکان پردازش مستقیم اکس‌اس‌ال‌تی را قرار داده‌اند.

همچنین کتابخانه‌های مناسب در جاوا، دات نت و … ساخته شده‌اند. مثلاً دات نت در فضای نامی System.Xml.Xsl ابزارهای مناسب را فراهم کرده‌است.

## جستارهای وابسته
* زبان قالب‌برگ گسترش‌پذیر

## پانویس

## منابع
* 
* Wikipedia: Xslt (انگلیسی)
* مشخصه زبان اکس‌اس‌ال‌تی در W3C (انگلیسی)
* اخبار قدیمی اکس‌اس‌ال‌تی در W3C (انگلیسی)
* http://www-128.ibm.com/developerworks/xml/library/x-xslt/?article=xr (انگلیسی)
* سی‌شارپ برای برنامه‌نویسان پرتجربه

رده:استانداردهای ائتلاف وب جهان‌گستر
رده:استانداردهای اکس‌ام‌ال-مبنا
رده:استانداردهای وب
رده:اکس‌ام‌ال
رده:زبان‌های برنامه‌نویسی اعلانی
رده:زبان‌های برنامه‌نویسی اکس‌ام‌ال-مبنا
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۹۸ (میلادی)
رده:زبان‌های برنامه‌نویسی سطح بالا
رده:زبان‌های تابعی
رده:زبان‌های تبدیل
رده:زبان‌های نشانه‌گذاری
رده:نرم‌افزارهای ۱۹۹۸ (میلادی)