XML چیست؟ XML مخفف Extensible Markup Language و زبانی برای نشانهگذاری و ساختاربندی داده است. برنامهٔ دریافتکننده از ساختار توافقشده برای تفسیر داده استفاده میکند. XML بهتنهایی الگوریتم اجرا نمیکند و جایگزین عمومی HTML یا پایگاه داده نیست.
تفاوت XML با HTML چیست؟
HTML ساختار و معنای اجزای صفحهٔ وب را بیان میکند؛ ظاهر آن معمولاً با CSS تنظیم میشود. در XML میتوانید نام عنصرهای متناسب با دادهٔ خود را تعریف کنید، اما برنامهٔ دریافتکننده باید معنای آن نامها را بشناسد. آزادی نامگذاری به معنی نبود قواعد نیست.
معرفی XML در MDN کاربرد آن را در نگهداری و تبادل داده توضیح میدهد. مقایسهٔ این دو به صورت «XML بهتر از HTML است» دقیق نیست؛ هدف و قرارداد داده تعیین میکند کدام قالب مناسب است.
یک نمونهٔ سادهٔ XML
نمونهٔ زیر فهرست کوچکی از محتوای آموزشی است. نام عنصرها برای همین مثال انتخاب شدهاند و قالب استاندارد خروجی وردپرس یا نقشهٔ سایت نیستند.
<?xml version="1.0" encoding="UTF-8"?>
<articles>
<article id="42">
<title>راهنمای هاست</title>
<status>published</status>
</article>
</articles>
عنصر articles ریشه است و article یک ویژگی به نام id دارد. مقدار ویژگی داخل نقلقول قرار گرفته و هر عنصر بهدرستی بسته شده است. اعلام UTF-8 باید با رمزگذاری واقعی فایل سازگار باشد؛ تغییر متن سربرگ بهتنهایی بایتهای فایل را تبدیل نمیکند.
تفاوت Well-formed و Valid در XML چیست؟
Well-formed یعنی سند قواعد نحوی XML را رعایت میکند؛ مانند وجود یک ریشه، تودرتویی درست و مطابقت تگ شروع و پایان. نامها به بزرگی و کوچکی حروف حساساند. در متن، علامتهای رزروشده نیز باید به شکل مجاز نوشته شوند.
Valid بودن به تطبیق با قواعد تعریفشده برای سند مربوط است؛ برای مثال DTD یا اعتبارسنجی با Schema میتواند نوع و ساختار مجاز را مشخص کند. استاندارد XML صحت ساختاری را از اعتبار جدا میکند. برای Well-formed بودن لازم نیست هر نام عنصر از قبل در DTD تعریف شده باشد.
کاربرد در سایت و انتقال محتوا
نقشهٔ سایت، خوراک محتوا، بعضی تبادلهای سازمانی و خروجی انتقال نوشتهها میتوانند از XML استفاده کنند. اما یک فایل معتبر از نظر نحو، لزوماً ورودی معتبر ابزار مقصد نیست؛ آن ابزار نام فیلد، فضای نام و قالب مشخصی انتظار دارد.
مثلاً برای مهاجرت، تعداد نوشتهها، شناسهها، تاریخها، لینک تصاویر و فیلدهای اختصاصی را جداگانه تطبیق دهید. داشتن فایل XML بهتنهایی اثبات نمیکند تمام فایلهای رسانه یا تنظیمات سایت منتقل شدهاند. XML و JSON نیز بسته به قرارداد سامانه کاربرد دارند و انتخاب یکی تضمین عدم از دست رفتن داده نیست.
بازکردن و پردازش امن فایل
برای مشاهدهٔ ساختار، از ویرایشگر متن یا ابزار XML استفاده کنید و روی نسخهٔ کاری تغییر دهید. در خطای پارس، شمارهٔ خط، تگ بستهنشده، نویسهٔ رزروشده و رمزگذاری را بررسی کنید. محتوای محرمانهٔ فایل را برای اعتبارسنجی به سرویس ناشناس نفرستید.
برای پردازش فایل نامطمئن در برنامه، parser را متناسب با زبان و کتابخانه امن تنظیم کنید. راهنمای پیشگیری XXE در OWASP به خطر موجودیت خارجی و تنظیمات مرتبط میپردازد. متنبودن فایل به معنی بیخطر بودن همهٔ شیوههای پردازش آن نیست.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.