بهترین شیوه‌های 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>";  // ❌ خطرناک!

۱۲. حجم را مدیریت کنید

چک‌لیست نهایی

✅ UTF-8 اعلام و رعایت شده
✅ یک عنصر ریشه
✅ نام‌های توصیفی با سبک واحد
✅ داده در عنصر، متادیتا در ویژگی
✅ کاراکترهای خاص escape یا CDATA
✅ Schema برای اعتبارسنجی (در صورت نیاز)
✅ داده کاربر ایمن‌سازی شده
✅ ساختار مسطح و منطقی

این مبحث بخشی از دوره آموزش کامل XML است.

ابزارهای مرتبط