اعلامیه نوع سند

یک اعلامیه نوع سند (به انگلیسی: document type declaration) یک دستورالعمل است، که یک سند XML یا SGML بخصوص (مثل یک صفحه وب) را به یک «تعریف نوع سند» (DTD) (مثلا تعریف رسمی ۲٫۰ HTML) پیوند می‌دهد.[۱] در اسنادی که سریال سازی شده‌اند، این اعلامیه به صورت «یک رشته نشانه گذاری»، و مطابق با یک «ترکیب نحوی» بخصوص، ظاهر می‌شود.[۲]

موتورهای چیدمان HTML در مرورگرهای وب مدرن برای «اعلامیه نوع سند» عمل «بو کشیدن» یا عمل «جایگزینی» انجام می‌دهند، که در آن اگر «اعلامیه نوع سند» text/html باشد، این موضوع به معنی حالت چیدمان است، مثل «حالت تغییر» یا «حالت استاندارد». در HTML5 (که بر اساس SGML نیست)، از «اعلامیه نوع سند» فقط برای «انتخاب حالت» استفاده می‌شود. به دلیل آنکه مرورگرهای وب، بر اساس «تجزیه کننده‌های HTML تک منظوره»، و نه «تجزیه کننده‌های مبتنی بر DTD همه منظوره»، پیاده‌سازی شده‌اند، مرورگرهای وب از «تعریف نوع سند» استفاده نمی‌کنند. «اعلامیه نوع سند» در HTML5 بدون استفاده است ولی قرار دادن آن لازم می‌باشد، و از آن فقط برای راه انداختن «حالت استاندارد» در مرورگرهای معمول استفاده می‌شود.[۳]

«ترکیب نحوی» برای یک «اعلامیه نوع سند» ویرایش

یک «ترکیب نحوی» عمومی برای یک «اعلامیه نوع سند» به صورت زیر است:[۲]

<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [
<!-- internal subset declarations -->
]>

یا

<!DOCTYPE root-element SYSTEM "URI" [
<!-- internal subset declarations -->
]>

موارد زیر در ترکیب نحوی اعلامیه نوع سند قرار دارند:

عنصر ریشه ویرایش

  • در XML عنصر ریشه ای که نشان دهندهٔ سند است، اولین عنصر در سند می‌باشد. برای مثال، در XHTML عنصر ریشه <html> می‌باشد، و اولین عنصری است که باز می‌شود (بعد از اعلام doctype) و آخرین عنصری است که بسته می‌شود.[۴]

کلمه کلیدی ویرایش

  • کلمات کلیدی SYSTEM و PUBLIC، نوع «تعریف نوع سند» (DTD) را تعیین می‌کنند. یعنی بیان می‌کنند که DTD روی سیستم خصوصی قرار دارد یا به روی مردم باز می‌باشد.[۴]

معین کننده عمومی ویرایش

  • اگر کلمهٔ کلیدی PUBLIC انتخاب شود، در آن صورت این کلمهٔ کلیدی، توسط «تعیین کنندهٔ عمومی» که به آن تعیین کنندهٔ عمومی رسمی (Formal Public Identifier) با مخفف (FPI) گفته می‌شود، ادامه می‌یابد؛ این مقدار باید در علامت نقل قول دوتایی قرار گیرد.[۴]

معین کنندهٔ سیستم ویرایش

  • بعد از FPI، «معین کنندهٔ سیستم» باید (به صورت اجباری) قرار می‌گیرد؛ این مقدار نیز باید در علامت نقل قول دوتایی قرار گیرد.[۴]
    • مثال: برای مثال برای 1.1 XHTML، «تعیین کنندهٔ عمومی رسمی» مقدار "-//W3C//DTD XHTML 1.1//EN" می‌باشد و یک «تعیین کنندهٔ سیستم» ممکن برای XHTML 1.1، ارجاع URI با آدرس «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd». است.
    • اگر در عوض کلمه کلیدی SYSTEM انتخاب شود، باید فقط تعیین‌کننده سیستم قرار داده شود.[۴]

زیرمجموعه درونی ویرایش

قسمت نهایی، که در علامت کروشهٔ حرفی ([]) محصور شده‌است، «زیرمجموعه درونی» نام دارد؛ از این قسمت به عنوان اضافه/اصلاح موجودیت‌ها، یا اضافه/اصلاح رفتار کلمه کلیدی PUBLIC استفاده می‌شود.[۴] «زیرمجموعه درونی» همیشه اختیاری می‌باشد.

اسناد مبتنی بر SGML ویرایش

از جهت دیگر، اعلام نوع سند در اسناد مبتنی بر SGML (مثل HTML) اندکی متفاوت است. در آنها «تعیین‌کننده عمومی» می‌تواند با «تعیین‌کننده سیستمی» پیوند بخورد. این پیوند می‌تواند توسط یک فایل کاتالوگ انجام گیرد که FPI را به یک «تعیین کنندهٔ سیستم» تبدیل می‌کند.[۵]

ارائهٔ یک مثال از «اعلامیه نوع سند» ویرایش

خط اول خیلی از صفحات وب جهان‌گستر به صورت زیر خوانده می‌شود:

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ar" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

این «اعلامیه نوع سند» برای XHTML می‌باشد و یک DTD را توسط ارجاع (reference) در خود قرار داده‌است:

  • عنصر ریشه html اعلام شده‌است. پس اولین برچسبی (tag) که پس از اتمام اعلامیه DOCTYPE باز می‌شود تگ html است.
  • تعریف نوع سند (DTD) از نوع عمومی می‌باشد.
  • تعیین‌کننده عمومی در آن: -//W3C//DTD XHTML 1.0 Transitional//EN
  • تعیین‌کننده سیستمی در آن: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
  • هیچ «زیر مجموعه درونی» در این مثال وجود ندارد.[۲]

منابع ویرایش

  1. HTML2 HTML3 HTML4
  2. ۲٫۰ ۲٫۱ ۲٫۲ "Document type declaration". Wikipedia (به انگلیسی). 2020-01-17.
  3. "The HTML syntax ― HTML5". Retrieved 2011-06-05.
  4. ۴٫۰ ۴٫۱ ۴٫۲ ۴٫۳ ۴٫۴ ۴٫۵ "DOCTYPE Declaration". msdn.microsoft.com.
  5. "Archived copy". Archived from the original on 2011-08-14. Retrieved 2011-09-09.{{cite web}}: نگهداری یادکرد:عنوان آرشیو به جای عنوان (link)