با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. این جلسه آخرین جلسه از سر فصل آموزشی DTD از دوره آموزشی XML است و قرار است که در این جلسه با ویژگی ها و کاربرد های Entities آشنا شوید و کار با آن ها را فرا گیرید. با سپاس از شوق یادگیری تان در پیگیری مطالب و جلسات، آخرین جلسه از این سر فصل را با عنوان آموزش کار با Entities ها در DTD را ارائه می نماییم.
در ابتدای این سر فصل با ایجاد بلوک های XML در DTD آشنا شدبم و آموختیم که از دیدگاه DTD، تمام اسناد XML بوسیله بلوک های زیر ساخته شده اند:
در جلسه بعد از آن نیز آموختیم که چگونه از عناصر در DTD استفاده نماییم و جلسه بعدی نیز اختصاص به کار با Attributes ها در DTD داشت و در جلسه گذشته نیز که به نظر مهم ترین این سر فصل بود به مقایسه Attributes ها و عناصر در DTD پرداختیم. طبق آموخته های این جلسه استفاده از Attributes ها با یک سری از محدودیت ها رو به ور است که عبارنتد از :
اکنون نیز در آخرین جلسه کار با Entities را فرا می گیریم.
از Entities ها برای تعریف کلید های میانبر برای کاراکتر های خاص استفاده می شود.
Entities ها می توانند به صورت داخلی یا خارجی اعلام شوند.
1 | <!ENTITY entity-name "entity-value"> |
مثال
1 2 3 4 5 6 7 8 | DTD Example: <!ENTITY writer "Donald Duck."> <!ENTITY copyright "Copyright W3Schools."> XML example: <author>&writer;©right;</author> |
یک نهاد دارای سه بخش است: یک امپرسورد (&)، یک نام entity و یک semicolon یعنی(؛).
1 | <!ENTITY entity-name SYSTEM "URI/URL"> |
مثال
1 2 3 4 5 6 7 8 | DTD Example: <!ENTITY writer SYSTEM "https://www.w3schools.com/entities.dtd"> <!ENTITY copyright SYSTEM "https://www.w3schools.com/entities.dtd"> XML example: <author>&writer;©right;</author> |
در ادامه به ارائه چند مثال دیگر در DTD می پردازیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE TVSCHEDULE [ <!ELEMENT TVSCHEDULE (CHANNEL+)> <!ELEMENT CHANNEL (BANNER,DAY+)> <!ELEMENT BANNER (#PCDATA)> <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)> <!ELEMENT HOLIDAY (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)> <!ELEMENT TIME (#PCDATA)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED> <!ATTLIST CHANNEL CHAN CDATA #REQUIRED> <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED> <!ATTLIST TITLE RATING CDATA #IMPLIED> <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED> ]> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> <!ENTITY NEWSPAPER "Vervet Logic Times"> <!ENTITY PUBLISHER "Vervet Logic Press"> <!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press"> ]> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <!DOCTYPE CATALOG [ <!ENTITY AUTHOR "John Doe"> <!ENTITY COMPANY "JD Power Tools, Inc."> <!ENTITY EMAIL "jd@jd-tools.com"> <!ELEMENT CATALOG (PRODUCT+)> <!ELEMENT PRODUCT (SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)> <!ATTLIST PRODUCT NAME CDATA #IMPLIED CATEGORY (HandTool|Table|Shop-Professional) "HandTool" PARTNUM CDATA #IMPLIED PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago" INVENTORY (InStock|Backordered|Discontinued) "InStock"> <!ELEMENT SPECIFICATIONS (#PCDATA)> <!ATTLIST SPECIFICATIONS WEIGHT CDATA #IMPLIED POWER CDATA #IMPLIED> <!ELEMENT OPTIONS (#PCDATA)> <!ATTLIST OPTIONS FINISH (Metal|Polished|Matte) "Matte" ADAPTER (Included|Optional|NotApplicable) "Included" CASE (HardShell|Soft|NotApplicable) "HardShell"> <!ELEMENT PRICE (#PCDATA)> <!ATTLIST PRICE MSRP CDATA #IMPLIED WHOLESALE CDATA #IMPLIED STREET CDATA #IMPLIED SHIPPING CDATA #IMPLIED> <!ELEMENT NOTES (#PCDATA)> ]> |
فصل آموزش DTD در همین جا به پایان رسید اما دوره آموزش XML همچنان ادامه دارد.
در جلسه بعد که فصل جدیدی از این دوره است به معرفی و بررسی Schema خواهیم پرداخت.
با پی وی لرن همراه باشید.