560 likes | 778 Views
معرفی XML و DTD. با تشکر از: علی آراسته، محمد مهدی حاتمی، جواد سلیمی، مجتبی محامد. XML. مقدمه XML قوانین نگارش در XML ساختار DTD. »». مقدمه XML. XML چیست ؟ XML. e X tensible. L anguage. M arkup. »» XML یک Meta Markup Language است.
E N D
معرفی XML و DTD با تشکر از: علی آراسته، محمد مهدی حاتمی، جواد سلیمی، مجتبی محامد
XML مقدمه XML قوانین نگارش در XML ساختار DTD
XML چیست ؟ XML eXtensible Language Markup »»XML یک Meta Markup Language است. »»XML برای انتقال دادهای ساخت یافته در محیط اینترنت . »» قالبی مناسب برای ذخیره سازی دادهها.
تاریخچه XML eXtensible Markup Language XML HyperText Markup Language HTML Standard Generalized Markup Language SGML
ضرورت :XML ضرورتها : »» ذخیره ,سازمانبندی و ارسال اطلاعات »»تقريبا تمام استانداردها وپروتكل هاي web service بر اساس XML هستند. »» ظرفيت فايل هاي XML زياد است. »»XML ماژولار است
تفاوت XML با HTML »»XML به منظور حمل اطلاعات طراحی شده »»XML و HTML هر کدام برای هدف خاصی طراحی شده اند. »»XML برای ذخيره وسازمان بندي اطلاعات بوجود آمد. »»HTML برای نمایش اطلاعات بوجود آمد
کاربرد XML »» مبادله اطلاعات بين برنامه هاي نا متجانس ،بنگاه هاي تجاري وبانك هاي اطلاعاتي »»امكان فعال نمودن مدلي براي نمايش اطلاعات يكسان بر روي دستگاه هاي متفاوت بااهداف گوناگون. »»يك قالب مناسب براي ذخيره اطلاعات
قوانین نگارش در XML
قوانین نگارش »» ابزارهای نوشتن و اجرا: »»XML را مانند HTML میتوان با هر ویرایشگر متنی نوشت. »» اجرایXML با مرورگرها »» تبدیل سایر اسناد به اسناد XML »» تبدیل اسناد XML به HTML
قوانین نگارش »» عناصر: XML نيز مانند HTML از سه قسمت عناصر،ويژگي ها و مقادير تشكيل شده است . هر عنصر دارای یک برچسب شروع ویک بر چسب پایان دارد. <element>contents</element> برچسب پایانی بر چسب شروع مثال: <bank>customer</bank>
قوانین نگارش »» عناصر: هر عنصر مي تواند محتوياتي داشته باشد. هر عنصر میتواند یک ویژگی یا بیشتر داشته باشد. اطلاعاتی که توسط ویژگیها تعریف میشوند Meta Data نامیده میشوند. Attribute بر چسب شروع برچسب پایانی <name language = “English ”>Tiger</name> <name language = “English ”>Tiger</name> نام ویژگی مقدار ویژگی محتویات
قوانین نگارش »» ادامه Code.xml <animal> <name Language = “English ”>Tiger</name> <weight>500 pound </weight> </animal> Code.xml <bank name= “mellat ”>customer</bank>
قوانین نگارش »» ادامه عنصر ریشه (Root Element): »»یک سند XML باید یک عنصر ریشه داشته باشد . »»فقط دستورات پردازشیوتوضیحات میتوانند خارج از عنصر ریشه باشند. عناصر تودر تو: <element Out>content <element In>content </element In></element Out> »»به هر میزان دلخواه میتوان عناصر تودرتو ایجاد کرد. »»هر عنصر باید به طورکامل داخل عنصرپدربسته شود . <b><i>This is a example</i></b>
قوانین نگارش »» ادامه Comments نحوه ي نوشتن توضيحات: <! - - updated May 3,2007 - - > اعلان XML : <? xml version =“1.0” ? >
قوانین نگارش »» ادامه »»نمايش عناصر در قالب متني <[CDATA[CONTENTS]]!> كلمه ي كليدي محتوياتي كه قرار است به كاربر نمايش داده شود مثال: Code.xml <![CDATA[<Address> <city>kashan</kashan> <Street>A<>/street] ]> »» امكان استفاده ار ساختار CDATA به صورت تو در تو وجود ندارد.
قوانین نگارش »»ادامه نکات: »»XML بین حروف بزرگ و کوچک فرق میگذارد »»مقادیر باید داخل ‘ ’ یا “ ” قرار گیرند. »»برخلاف HTML برچسب پایانی حتماً باید داشته باشیم . »»توضیحات تودرتو نمیتوانیم داشته باشیم. »»توضیحات توسط مفسرهای XML نادیده فرض میشوند. »»دستوراتی که با <?شروع و با ?> به پایان میرسند دستورات پردازشی هستند. »»سند XML را با پسوند .xml ذخیره میکنند.
قوانین نگارش »» عناصر مثال: <? xml version =“1.0” ?> <!- - This is a example - -> <animal> <name language = “English”>Tiger</name> <name language= “Latin”>Panthera Tigris</name> <Weight>500 pounds</weight> </animal>
:DTD »» ساختار DTD داخلی »» ساختار DTD خارجی »» ساختار DTD شخصی »» ساختار DTDعمومی »» قوانین اعتباری در ساختار DTD »» موجودیتها و عبارات توضیحی در ساختار DTD
انواع مجموعه قوانین : • DTD • شمای XML (XML Schema ) »» مجموعه قوانین منطقی و مفهومی میان اطلاعات در حوزه کاربردی . DTD چیست ؟ DTD مخفف Document Type Definition است . DTD ها ساختار قدیمی تعریف مجموعه قوانین برای اسنادXML می باشند . هدف از تعريف DTD منسجم كردن روابط بين داده ها است.
<!DOCTYPE root[ مجموعه قوانین]> عنصر ریشه سند XML تعریف DTD داخلی : برای ایجاد یک یا چند سند محدود از ساختار DTD داخلی استفاده میشود . DTD داخلی درداخل سند XML تعریف میشود . در ابتدای سند XML مورد نظر و بعد از اعلان XML و به صورت زیر تعریف میشود :
DTD داخلی »»یک مثال : <? xml version =“1.0” ?> <!DOCTYPE animal[ ]> <animal> . . . .</animal> قوانین DTD محتویات سند XML
تعریف DTD خارجی : »» در مواردي كه ساختار اطلاعاتي داراي مجموعه اي از چندين سند XMLمختلف باشد از DTD خارجي استفاده مي شود. »» با استفاده از يك ويرايشگر متني قوانين DTD مورد نظر خود را در يك فايل با پسوند .dtdذخيره مي كنيم. »»در صورتي كه DTD ايجاد شده توسط ديگران نيز مورد استفاده قرار مي گيرد از استاندارد FPI براي نام گذاري آن استفاده مي كنيم .
تعریف DTD خارجی »»ادامه شخص يا سازمان پشتيباني كننده DTD تعريف مشخصه ي عمومي رسمي +//owner//DTD label //xx// شرحي ويژه از DTD بر اسا س استاندارد ISO عبارت مخفف دو حرفي معرف زبان بر اساس استاندارد ISO 639 -//owner//DTD label //xx// بدون استاندارد
تعریف DTD خارجی شخصي اعلان DTD خارجي شخصي در سند XML : »»در قسمت اعلان XML عبارت Standalone=”no” قرارمي دهيم سپس عبارت زير را مي نويسيم: <!DOCTYPE root SYSTEM “file.dtd” > نام عنصر ريشه در سند XML مسير و نام فايل DTD به معناي اينكه DTD تعريف شده يك DTD شخصي است
تعریف DTD خارجی شخصي »» ادامه مثال: <? xml version =“1.0” Standalone=”no”?> <!DOCTYPE endangered_species SYSTEM “http://www.cookwood.com /xml/ End _species.dtd”> »»در صورت لزوم مي توانيم از DTD داخلي وخارجي به همراه يكديگر استفاده كنيم. »» با DTD می توانیم اطلاعات خود را از نظر صحت بررسی کنیم.
تعریف DTD عموميخارجی: <!DOCTYPE root PUBLIC DTD_name “file.dtd” > مسير و نام فايل DTD نام عنصر ريشه در سند XML نام DTD بر اساس FPI به معناي اينكه DTD تعريف شده يك DTD شخصي است
تعریف DTD عموميخارجی »» ادامه مثال <? xml version =“1.0” Standalone=”no”?> <!DOCTYPEendangered_speciesPUBLIC “-//liz castro//DTD End_species//EN//” “http://www.cookwood.com/xml/ End _species.dtd”> محتویات سند XML
<!ELEMENT tag Type> قوانین اعتباری در ساختار DTD »»قوانين مربو ط به عناصر: عنصر مورد نظر در سند xml EMPTY (CONTENTS) ANY كلمه ي كليدي
قوانین اعتباری در ساختار DTD چند مثال: <!ELEMEN endangered_species(animal)> <!ELEMEN picture EMPTY> <!ELEMEN endangered_species ENY> »» ترتيب تعريف عناصر در ساختار DTD مهم نيست.
قوانین اعتباری در ساختار DTD »» ادامه اعلان عناصري كه فقط شامل عبارت هاي متني هستند: <!ELEMEN element_name (#PCDATA)> عنصر فقط شامل عبارت هاي متني است عنصري كه قصد تعريف آن را داريم كلمه ي كليدي »»عنصري كه بر اساس فرايند بالا توليد شود نمي تواند شامل عنصر ديگري باشد.
قوانین اعتباری در ساختار DTD »» ادامه مثال: Code.dtd Code.xml <!ELEMEN Address ANY> <Address> <!ELEMEN CITY (#PCDATA )> <CITY> kashan </CITY> <!ELEMEN Street (#PCDATA )> <Street> A </Street> <!ELEMEN Zip (#PCDATA )> <Zip> 1264 </Zip> </Address>
قوانین اعتباری در ساختار DTD »» ادامه تعريف عنصري كه شامل يك عنصر باشد: <!ELEMEN element_name (child)> <!ELEMEN Address (City)> مثال: تعريف عنصري با اجزاي مرتب: <!ELEMEN element_name (child1,child2,…)>
قوانین اعتباری در ساختار DTD »» ادامه مثال: Code.dtd <!ELEMEN Address (State,City,Street,Zip)> Code.xml <Address> <State> Esfahan </State> <CITY> kashan </CITY> <Street> A </Street> <Zip> 1264 </Zip> </Address>
قوانین اعتباری در ساختار DTD »» ادامه تعريف گزينه ها(choice) <!ELEMEN tag (child1|child2|…)> مثال: <!ELEMEN Paytype (salary|com|wage)>
قوانین اعتباری در ساختار DTD »» ادامه »» در DTD سه نماد ويژه وجود دارد كه براي تعيين تكرار تعداد واحد ها در سند XML به كار مي رود. »» يك واحد مي تواند يك عنصر يا گزينه اي بين چند عنصر ويا مجموعه اي از عناصر ترتيبي باشد. »»علامت ? به اين معني كه واحد مورد نظر حداكثر يك بار مي تواند در سند XML تكرار شود. »»علامت + به اين معني كه واحد مورد نظر حداقل يك بار در سند XML تكرار مي شود . »»علامت * به اين معني كه واحد مورد نظر به هر تعداد مورد نيازدر سند XML مي تواند تكرار مي شود . Code.dtd <!ELEMEN Address (State , City+ ,Street*,Zip?)> »»عنصر State يك بار بايد درسند XML تكرار شود. Code.dtd <!ELEMEN tag (unit, unit+)>
قوانین اعتباری در ساختار DTD »» ادامه Code.dtd <!ELEMEN Address ((Street*,Zip?)| phon_num)> Code.xml Code.xml <Address> <Address> <Street> A</Street> < phon_num>124</ phon_num> <Street> B </Street> </Address> <Zip> 1264 </Zip> </Address>
قوانین اعتباری در ساختار DTD »» ادامه تعريف ويژگي هاي ساده: استفاده از ويژگي هاي عناصر در سند XML هنگامي مجاز است كه در DTD مربوطه تعريف شده باشند. Code.dtd <!ATTLIST tag attribute CDATA #type> كلمه ي كليدي نام ویژگی FIXED “default” IMPLIED RIQUIRED عنصر مورد نظر در سند xml نوع ویژگی
قوانین اعتباری در ساختار DTD »» ادامه تعريف ويژگي ها »» مثال: Code.dtd <!ELEMEN population (#PCDATA)> <!ATTLIST population year CDATA #IMPLIED> Code.xml < population >55500 </ population > Code.xml < population year=“1387”>55500 </ population > Code.xml < population year=“mouse”>55500 </ population >
قوانین اعتباری در ساختار DTD »» ادامه تعريف ويژگي ها »» مثال: Code.dtd <!ELEMEN population (#PCDATA)> <!ATTLIST population year (1387|2008) #RIQUIRED> Code.xml < population year=“1387”>55500 </ population > Code.xml < population >55500 </ population > × Code.dtd <!ELEMEN population (#PCDATA)> <!ATTLIST population year #FIXED “1387”> Code.xml × < population year=“2008”> </ population >
قوانین اعتباری در ساختار DTD »» ادامه تعريف ويژگي ها با مقادير ويژه: ID: يك مقدار منحصربه فرد (unique value) دركل سندXML IDREF: يك ارجاع به يك مقدار منحصربه فرد IDREFS: چندين ارجاع به مقادير منحصربه فرد Code.dtd <!ATTLIST tag attribute (ID|IDREF|IDREFS) #type> FIXED “default” IMPLIED RIQUIRED
قوانین اعتباری در ساختار DTD »» ادامه تعريف ويژگي ها با مقادير ويژه »»مثال: Code.dtd <!ELEMEN Student (#PCDATA)> <!ATTLIST Student stu_num ID #RIQUIRED> Code.xml <Student stu_num=“100000”>
ENTITIES parameter General Internal External Internal External Parsed Unparsed موجودیتها در ساختار DTD »»مجموعه اي از داده ها كه در هنگام ارجاع به موجوديت در ساختار DTD جايگزين مي شوند. »» خوانايي ساختار DTD را افزايشمي شوند. انواع موجوديت ها:
موجودیتها در ساختار DTD»»ادامه تعريف يك موجوديت داخلي (ميانبر متني): »»يك موجوديت داخلي دردرون ساختار DTD تعريف مي شود. Code.dtd <!ENTITYAbbreviation “content”> كلمه ي كليدي متن جايگزين نام شناسه ي موجوديت »» براي استفاده از موجوديت در سندXML بايد عبارت ;abbreviation& را تايپ كنيم. »» يك موجوديت مي تواند حاوي موجوديت ديگري نيز باشد.
موجودیتها در ساختار DTD»»ادامه تعريف يك موجوديت داخلي : »»موجوديت را داخل يك فايل ذخيره ميكنيم. »» عبارت standalone=“no” را در قسمت اعلان XML مي نويسيم. داخل ساختار DTD عبارت زير را قرار مي دهيم. <!ENTITY % abbreviation SYSTEM “entity.url”> مسير ونام فايل خارجي نام شناسه ي موجوديت كلمه ي كليدي موجوديت خارجي
موجودیتها در ساختار DTD»»ادامه موجوديت هاي با محتويات تفسير شده: »» اطلاعات متني را شامل نمي شوند. »»توسط پارسر XML مورد ارزيابي قرار نخواهند گرفت. تعريف موجوديت هاي با محتويات تفسير شده: <!ENTITY abbreviation SYSTEM “entity.url” NDATA id> تشريح كننده ي اطلاعات تفسير شده مثال: Code.dtd <!ENTITY flower_pic SYSTEM “flower. Jpg” NDATA jpg>