بلوک های سازنده (DTD Building Blocks)
در DTD با بلوک های سازنده XML آشنا می شویم. «بلوک های DTD» یعنی اجزایی مثل عنصر (Element)، صفت (Attribute)، موجودیت (Entity)، پی سی دیتا (PCDATA) و سی دیتا (CDATA). این ها شبیه قطعات لگو هستند و اسکلت سند را می سازند.
بلوک های اصلی در نگاه DTD
از دید DTD، هر سند XML از این بخش ها تشکیل می شود:
- عناصر (Elements): تگ های اصلیِ محتوا.
- صفات (Attributes): اطلاعات اضافی برای عناصر.
- موجودیت ها (Entities): نمایش امن کاراکترهای خاص.
- پی سی دیتا (PCDATA): متنِ قابل تحلیل توسط پارسر.
- سی دیتا (CDATA): متنِ غیرقابل تحلیل توسط پارسر.
عناصر (Elements)
عنصر، بلوک اصلی XML است. می تواند متن بگیرد، عنصرِ فرزند داشته باشد یا خالی باشد. مثل کلاس و نیمکت ها در مدرسه: کلاس عنصرِ بزرگ است.
<body>some text</body>
<message>some text</message>
صفات (Attributes)
صفت، اطلاعاتِ اضافه عنصر است. همیشه داخل تگِ باز قرار می گیرد و به صورت name="value" می آید؛ مثل برچسب روی دفتر.
<img src="computer.gif" />
موجودیت ها (Entities)
برای کاراکترهای ویژه از موجودیت استفاده می کنیم. مثلا < را با < می نویسیم تا با تگ اشتباه نشود. پرکاربردها: <، >، &، "، '.
نکته: پارسر (Parser) متن را می خواند و موجودیت ها را به کاراکتر واقعی تبدیل می کند.
پی سی دیتا (PCDATA)
پی سی دیتا «متنِ قابل تحلیل» است. پارسر آن را بررسی می کند و تگ ها و موجودیت ها را می شناسد. بنابراین، کاراکترهای &, <, > باید با موجودیت نوشته شوند.
سی دیتا (CDATA)
سی دیتا «متنِ غیرقابل تحلیل» است. تگ ها داخلش تگ محسوب نمی شوند. مناسب چسباندن کد خام، مثل متنِ بازی که نمی خواهیم دست کاری شود.
<note>
<body><![CDATA[
<b>not parsed</b> & 5 < 6
]]></body>
</note>
هشدار: دنباله ]]> پایان CDATA است؛ داخل CDATA از آن استفاده نکن.
گام های عملی
- عناصر و ترتیب شان را مشخص کن.
- صفات ضروری را با نام/مقدار تعریف کن.
- جاهای متن را با PCDATA یا CDATA انتخاب کن.
- برای کاراکترهای خاص از موجودیت استفاده کن.
بیشتر بخوان: مقدمه DTD · بلوک های DTD · سرور XML.
جمع بندی سریع
- عنصر، هسته ساختار XML است.
- صفات، اطلاعات تکمیلی عنصر هستند.
- موجودیت ها از تداخل با تگ ها جلوگیری می کنند.
- PCDATA تحلیل می شود؛ CDATA نه.
- دقت در انتخاب PCDATA/CDATA مهم است.