اعتبارسنجی XML
تفاوت سند خوشساخت و معتبر و روشهای اعتبارسنجی XML
دو سطح صحت در XML
اسناد XML از نظر صحت دو سطح دارند:
| سطح | تعریف | ابزار بررسی |
|---|---|---|
| خوشساخت (Well-Formed) | همه قوانین نگارشی XML رعایت شده: تگها بسته، تودرتویی درست، یک ریشه، ویژگیها داخل نقلقول... | خود پارسر XML (اجباری) |
| معتبر (Valid) | خوشساخت باشد و بهعلاوه با قواعد تعریفشده (DTD یا Schema) مطابقت داشته باشد | اعتبارسنج DTD/Schema |
سند XML همیشه باید خوشساخت باشد وگرنه اصلاً پارس نمیشود. اما «معتبر بودن» اختیاری است — بستگی به نیاز پروژه دارد.
مثال: خوشساخت اما نامعتبر
<?xml version="1.0"?>
<person>
<name>علی</name>
<age>بیست سال</age> <!-- اگر Schema بگوید age باید عدد باشد، نامعتبر! -->
</person>
این سند خوشساخت است (قوانین نگارشی OK) اما اگر DTD/Schema تعریف کرده باشیم که age باید عدد صحیح باشد، نامعتبر است.
خطاهای رایج که خوشساختی را خراب میکنند
- فراموش کردن تگ بسته:
<name>علی❌ - عدم تطابق حروف:
<Name>...</name>❌ - تودرتویی غلط:
<b><i>...</b></i>❌ - چند ریشه: دو عنصر سطحاول ❌
- ویژگی بدون نقلقول:
<img src=pic.jpg>❌ - کاراکتر
&خام در متن ❌ - پرولوگ در خط دوم ❌
ابزارهای اعتبارسنجی
- مرورگر: فایل XML را باز کنید — اگر خطا باشد پیام خطا با شماره خط میبینید
- اعتبارسنج آنلاین: ابزارهای آنلاین XML Validator مثل W3Schools
- کتابخانههای برنامهنویسی:
libxmlدر PHP،xmllintدر خط فرمان - ویرایشگرها: VS Code با افزونه XML، Oxygen XML و...
اعتبارسنجی برنامهنویسی (PHP)
$doc = new DOMDocument();
$doc->load('books.xml');
if ($doc->validate()) {
echo "سند معتبر است";
} else {
echo "سند نامعتبر است!";
}
چرا اعتبارسنجی مهم است؟
- اطمینان از کیفیت داده: داده ورودی قبل از پردازش بررسی میشود
- قرارداد بین سیستمها: دو طرف مطمئنند داده با ساختار موردتوافق است
- کشف زودهنگام خطا: خطای ساختاری در ورودی، نه در وسط پردازش
- مستندسازی ساختار: DTD/Schema خودش مستند ساختار داده است
در دو درس بعد دو ابزار اصلی اعتبارسنجی — DTD و XML Schema — را کامل یاد میگیرید.
این مبحث بخشی از دوره آموزش کامل XML است.