مدل شیءگرای سند کیست؟ توضیح بده.
مدل شیءگرای سند یا دام (DOM - Document Object Model) عنوان یکی از دو ساختوارهٔ (architecture) اصلی است (در کنار اس‌اِی‌اکس) که بر اساس آن سندهای اکس‌ام‌ال را به اشیایی که در بردارندهٔ آن است، تجزیه نموده، و آن‌ها را به‌صورت یک ساختار درختی داده‌ها در فضای حافظه اصلی پهن می‌کند. ساختوارهٔ دام، نه به زبان برنامه‌نویسی خاصّی وابستگی دارد و نه به سکّوی برنامه‌نویسی ویژه‌ای، بلکه، به منظور اجراء و پیاده‌سازی آن باید از یک زبان برنامه‌نویسی سطح بالا همچون جاوا، سی‌شارپ، جاوااسکریپت یا مشابه آن‌ها سود بجوییم. آنسوی رابط کاربر سند با مدلی شیءگرا نمایانده می‌شود.انگیزه‌ها و اهداف.سندهای اکس‌ام‌ال با دربرداشتن متون زبانی به بیان و نمایش داده‌های گوناگون اقدام می‌کنند. ابداع و به‌کارگیری زبان اکس‌ام‌ال را می‌توان آغاز ماشینی کردن ساختارمند و مقیاس پذیر داده‌ها هم از جنس رابطه‌ای و هم از انواع پیچیده‌تر آن به حساب آورد.برعکس متون معمولی رایانه‌ای در مورد متن‌های اکس‌ام‌ال به دلیل در درون داشتن انواع داده‌ها و دانسته‌ها در مقیاس‌ها و در سلسله مراتب مختلف اعمال فنون سنتی پردازش‌های دنباله‌ای فایل‌ها نه عملی‌ست و نه کارآ. این مشکلات به ویژه در حالات مربوط به افزودن اجزاء و عناصر جدید یا کاستن و برداشتن آن‌ها به شکل پویش مندانه (Dynamic) و در زمان اجراء به اوج می‌رسد.در آغاز، گونه‌های مختلف دام توسط مرورگرهای وب برای دستکاری عناصر سندهای اچ‌تی‌ام‌ال پیاده‌سازی می‌شدند. این موضوع، کنسرسیوم وب جهان‌شمول را وادار کرد که با یک سری مشخصات استاندارد برای دام پیشگام شود (از این رو آن را W3CDOM نیز می‌گویند).دام هیچ تنگنایی روی ساختار داده‌های دربرگیرنده سند قرار نمی‌دهد. یک سند خوش‌ساختار می‌تواند به کمک دام شکل درخت‌گونه به خودش بگیرد.بیشتر متن‌شکن‌های اکس‌ام‌ال (XML parsers) (مانند Xerces) و پردازندگان اکس‌اس‌ال (مانند Xalan) پدید آمده‌اند که از ساختار درختی سود ببرند. چنین پیاده‌سازی، نیازمند آن است که تمامی محتوای سند شکسته گردیده و در حافظه نگهداری شود. از این رو دام بیشتر برای کارهایی سودمند است که عناصر سند باید به‌طور تصادفی دستیابی و دستکاری شوند. برای کاربردهای اکس‌ام‌ال-محوری که دربرگیرندهٔ دسترسی انتخابی یک خواندن/نوشتن به ازای شکستن است، دام بالاسری قابل ملاحظه‌ای بر حافظه تحمیل می‌کند. در این کاربردها، مدل اس‌اِی‌اکس (SAX - Simple API for XML) از دید سرعت و مصرف حافظه سودمندتر است.سطح‌ها.مشخصات کنونی دام در سطح ۲ است، اما برخی مشخصات سطح ۳ اکنون از پیشنهادهای W3C هستند.سطح صفر.سطح ۱سطح ۲سطح ۳که DOM را بیشتر گسترش می‌دهند.کاربرد در مرورگرهای وب.در گذشته، پیاده‌سازی‌های گوناگون دی‌اُ‌ام در مرورگرهای مختلف به اشکالات هم‌عملپذیری انجامیده بود. از این رو، میان برنامه‌نویسان وب معمول است که وجود یک خاصیت را پیش از بکارگیری آن آزمایش کنند. خرده‌برنامه زیر چگونگی آزمایش برای متدهای کلیدی W3C DOM را قبل از استفاده از سایر بخش‌های آن نشان می‌دهد: if (document.getElementById &amp;&amp; document.getElementsByTagName) { // as the key methods getElementById and getElementsByTagName // are available is is relatively safe to assume W3CDOM support. obj = document.getElementById("navigation") // other code which uses the W3CDOMمرورگرهای اینترنت‌اکسپلورر مایکروسافت (نسخه ۵(۱۹۹۹)،... نسخه ۶(۲۰۰۱)) در سال ۲۰۰۵ از جملهٔ پرکاربردترین مرورگرها هستند و به طرز معقولی بیشتر خاصیّت‌های W3CDOM را پشتیبانی می‌کنند. مرورگرهای مبتنی بر Gecko، همچون موزیلا و فایرفاکس و دیگران نیز چنین‌اند؛ بنابراین، مشکلات استفاده از W3CDOM آنگونه که در سال ۲۰۰۰ که نسخه‌های ۴ اینترنت‌اکسپلورر و نت‌سکیپ‌نویگیتور به فراوانی استفاده می‌شدند نیست. البته این فرضیه بر این پایه است که بیشتر مردم از مرورگری که بیشتر از ۶ سال عمر دارد استفاده نمی‌کنند، که اتفاقاً توسط آمار استفاده از مرورگرها تأیید شده‌است. جدول مقاله مقایسهٔ موتورهای طرح‌بندی(DOM) نشان می‌دهد چه متدها و صفاتی را می‌توان در مرورگرهای گوناگون با ایمنی استفاده کرد.