Document Type Definition
שפת Document Type Definition (ראשי תיבות: DTD, בעברית: הגדרת סוג מסמך) היא שפה המשמשת להגדרת מבנה של מסמכים הכתובים בשפת XML או בשפת SGML. שפה זו היא אחת משפות ה-SGML וסכמת XML, ובעזרתה ניתן ליצור הגדרות וחוקים לצורה שבה מסמכים הכתובים בשפת סימון יעוצבו.
הצורך ב־Document Type Definition
השפות XML ו־SGML הן שפות סימון המשמשות להעברת והצגת מידע בצורה טקסטואלית. ייצוג המידע בצורה טקסטואלית הוא הגורם לאחד מהיתרונות הבולטים של שפות אלו - קריאת הנתונים יכולה להתבצע במערכות ממוחשבות שונות ללא תלות במערכת ההפעלה או בתוכנה המשמשת לקריאת הנתונים.
שפת XML הפכה להיות נפוצה ובעלת תפקידים רבים, במיוחד בשל גמישותה הרבה:
- כיום XML היא הבסיס לשפות שונות, וממנה נגזרות שפות כגון SVG, MathML, XHTML וכיוצא באלה.
- שמירה והעברת מידע בין פלטפורמות, תוכנות ומערכות הפעלה שונות.
- פורמט להעברת נתונים בין שירותים ברשת.
- סריאליזציה של אובייקטים בתכנות.
מאחר ששפת XML היא גמישה ובת הרחבה (eXtensible Markup Language), ומכיוון שלכל מסמך יש תפקיד שונה ועליו להחזיק נתונים שונים, יש צורך לקבוע תקן שיגדיר כיצד המסמך ייראה.
מטרת ה־Document Type Definition היא לקבוע את התבנית או את הצורה שבה הנתונים יסודרו במסמך. ניתן לומר כי ה־Document Type Definition הוא מסמך שמגדיר כיצד התוכנה הקוראת את הנתונים מצפה לקבל את המידע, כדי שתוכל לעבד אותו.
דוגמה למסמך DTD
דוגמה לקוד DTD, ולאחריו הסבר לקוד:
<!ELEMENT people_list (person*)> <!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)> <!ELEMENT name (#PCDATA)> <!ELEMENT birthdate (#PCDATA)> <!ELEMENT gender (#PCDATA)> <!ELEMENT socialsecuritynumber (#PCDATA)>
הסבר, מחולק לפי שורות:
people_list
הוא אלמנט חוקי במסמך, והוא יכול להכיל תחתיו את האלמנטperson
. הכוכבית (*) מסמלת כי תחת אלמנט זה יכולים להופיע אפס או יותר אלמנטים מסוגperson
.person
הוא אלמנט חוקי במסמך, ואלמנט זה יכיל תחתיו את האלמנטname
, ולאחריו האלמנטיםbirthdate
(אופציונלי),gender
(אופציונלי) ו/אוsocialsecuritynumber
(אופציונלי). סימן השאלה (?) מסמל כי האלמנט יכול להופיע פעם אחת או לא להופיע בכלל (אופציונלי). מכיוון שאין אחריname
סימן שאלה (או כל סימן אחר, כגון כוכבית וכיוצא בזה), הוא חייב להופיע בכל אלמנטperson
.name
הוא אלמנט חוקי במסמך, ואלמנט זה יכול להכיל מידע מסוג character data (טקסט, אך לא אלמנטים).birthdate
הוא אלמנט חוקי במסמך, ואלמנט זה יכול להכיל מידע מסוג character data.gender
הוא אלמנט חוקי במסמך, ואלמנט זה יכול להכיל מידע מסוג character data.socialsecuritynumber
הוא אלמנט חוקי במסמך, ואלמנט זה יכול להכיל מידע מסוג character data.
ראו גם
קישורים חיצוניים
- הגדרה של DTD באתר של W3C
- מדריך לשפת DTD באתר W3Schools.com