بهترین شیوههای XML
اصول طراحی اسناد XML حرفهای — نامگذاری، ساختار، داده در برابر متادیتا
طراحی خوب XML
نوشتن سند XML «خوشساخت» کافی نیست؛ اسناد خوب خوانا، قابلنگهداری و قابلتوسعه هم هستند. این درس قواعد طلایی طراحی XML حرفهای است:
۱. نامگذاری معنادار و یکدست
<!-- ❌ بد: نامهای مبهم و ناهماهنگ -->
<d>
<n>علی</n>
<FullName>رضایی</FullName>
</d>
<!-- ✅ خوب: توصیفی و با سبک واحد -->
<employee>
<first_name>علی</first_name>
<last_name>رضایی</last_name>
</employee>
۲. یک سبک نامگذاری انتخاب کنید
| سبک | مثال |
|---|---|
| snake_case (پیشنهادی) | <first_name> |
| kebab-case | <first-name> |
| camelCase | <firstName> |
مهم انتخاب «کدام» سبک نیست؛ پایبند ماندن به یک سبک در کل پروژه مهم است!
۳. داده در عنصر، متادیتا در ویژگی
<!-- ✅ درست: شناسه و واحد متادیتا هستند -->
<product id="P101">
<price currency="USD">999</price>
<name>Laptop</name>
</product>
۴. ساختار مسطحتر بهتر است
<!-- ❌ تودرتویی غیرضروری -->
<user><info><name><first>علی</first></name></info></user>
<!-- ✅ ساده و کافی -->
<user><first_name>علی</first_name></user>
۵. گروهبندی منطقی
<order>
<customer>
<name>علی</name>
<phone>0912...</phone>
</customer>
<items>
<item><name>لپتاپ</name><qty>1</qty></item>
</items>
<shipping_address>
<city>تهران</city>
</shipping_address>
</order>
۶. همیشه UTF-8
<?xml version="1.0" encoding="UTF-8"?>
۷. کامنتگذاری بهجا
<!-- نرخ ارز: ریال -->
<price>95000000</price>
۸. از CDATA برای متنهای حاوی کد
<code><![CDATA[ if (a < b) { ... } ]]>
۹. اعتبارسنجی با Schema
برای دادههای مهم، همیشه XSD تعریف کنید تا خطاها زود پیدا شوند.
۱۰. نسخهبندی
<api_response version="2.1">
...
</api_response>
۱۱. ایمنسازی داده کاربر
هرگز داده کاربر را بدون escape در XML نگذارید:
// PHP
$node = $doc->createElement("name", $userInput); // خودش escape میکند ✅
// نه این:
echo "<name>$userInput</name>"; // ❌ خطرناک!
۱۲. حجم را مدیریت کنید
- نامهای خیلی طولانی نگذارید (حجم و پهنای باند)
- برای داده حجیم، فشردهسازی gzip را فعال کنید
- اگر فقط برای API مدرن است، JSON را هم بررسی کنید
چکلیست نهایی
✅ UTF-8 اعلام و رعایت شده
✅ یک عنصر ریشه
✅ نامهای توصیفی با سبک واحد
✅ داده در عنصر، متادیتا در ویژگی
✅ کاراکترهای خاص escape یا CDATA
✅ Schema برای اعتبارسنجی (در صورت نیاز)
✅ داده کاربر ایمنسازی شده
✅ ساختار مسطح و منطقیاین مبحث بخشی از دوره آموزش کامل XML است.