XML
اسلاید 1: XMLارائه دهنده: آزاده سادات مظفريدانشكده مهندسي كامپيوترa_mozaffari@ce.sharif.eduآبان 1384
اسلاید 2: فهرست مطالبمعرفي XMLآشنايي با قواعد نوشتاري يك سند XMLتهيه سند اعتبار DTD : و شماي XML نمايش سند XML در وب: XSLT و CSS
اسلاید 3: معرفي XML
اسلاید 4: XML چيست؟XMLمخفف eXtensible Markup Language مي باشد.XML براي توصيف و مديريت بهتر اطلاعات به وجود آمده است و در واقع به مانند زبان هاي برنامه نويسي، قادر به انجام كاري نيست. XML در ساختار خود بسيار به زبان HTML شبيه است ولي با قدرت بسيار بيشتر براي توصيف اطلاعات.
اسلاید 5: XML در مقايسه با HTMLXMLHTMLتعريف تگ ها در اختيار كاربر است.سخت گيري در پياده سازي دقيق قوانين.هدف اصلي XML در راستاي توصيف داده ها و ايجاد متن هاي فرا داده ايست و به تنهايي قادر به نمايش اطلاعات به مانند HTML نيست. ثابت بودن عبارات تگ ها.آزاد بودن در رعايت قوانين نوشتاريهدف اصلي HTML براي نمايش اطلاعات به فرمت مناسب است.
اسلاید 6:
اسلاید 7: XMLHTML<?xml version=1.0?> <paper><title> Issues with Designing Large Scale Libraries Based on NCSTRL </title><authors> K. Maly, M. Zubair, H. Anan, D. Tan, and Y. Zchang </authors><abstract> NCSTRL is an unified …..</abstract></paper><html><head> Issues with Designing Large Scale Libraries Based on NCSTRL </head><body><p> K. Maly, M. Zubair, H. Anan, D. Tan, and Y. Zchang </p><p> Department of Computer Science, Old Dominion University </p>…..</body><html>
اسلاید 8: چرا XMLداراي اهميت فراوان است؟آسان كردن دستيابي و جستجو در اطلاعاتاستفاده از تگ هايي براي توصيف داده ها در متن باعث مي شود تا دراين حالت موتور هاي جستجو با استفاده از اين تگ ها بتوانند به راحتي اطلاعات خواسته شده از هر متن را جستجو كنند.(براي اطلاعات بيشتر رجوع شود به مبحث semantic web search engines )آسان شدن تبادل اطلاعات بين سيستم هاي ناهمگون.در دنياي واقعي سيستم هاي كامپيوتري و پايگاه داده ها شامل داده ها يي هستند كه در فرمت هاي متفاوتي ذخيره و دسته بندي شده اند .يكي از كارهاي پر دردسر تبادل داده ها بين اين سيستم ها در محيط اينترنت است.تبديل اطلاعات به يك فرمت مشخص به مانند xml مي تواند تا حد بسيار زيادي اين مشكل را بر طرف كند.(براي اطلاعات بيشتر رجوع شود يه مبحثEDI در سيستم هاي تجارت الكترونيك)
اسلاید 9: ابزار نوشتن XMLXML را مي توان همانند HTML با هر ويرايشگر متني بر روي هر سيستم عامل كامپيوتري نوشت(مانند Note Pad در ويندوز)تنها بايد آن را با پسوند . xml ذخيره نمود.همچنين ويرايشگر هاي متني ويژه اي به بازار آمده است كه مي توانند اسناد XML را هنگام نوشتن تست كنند و از صحت رعايت قوانين نوشتاري آن مطمئن شوند.(به عنوان مثال مي توانيد Stylus Studio را از اين سايت دانلود كنيد http://www.stylusstudio.com/xml_download.html )برنامه هايي وجود دارند كه مي توانند اسناد ساير برنامه ها (مانند بانك هاي اطلاعاتي ، صفحات طراحي يك سيستم و ...)را به XML تبديل كنند.براي مثال در خود برنامه SQLserver 2000 دستوراتي وجود دارد تا داده هاي داخل پايگاه داده را به يك سند XML تبديل كند و بسياري از موارد مشابه
اسلاید 10: سند XMLجز اصلي و اساسي است كه با استفاده از تگ هاي خصوصي و مورد علاقه هر شخص توليد مي شود. DTDو شماي XMLپس از توليد هر سند نكته اساسي براي استفاده كنندگان اين سند اين است كه آيا سند توليد شده معتبر است . براي مثال قوانين تو درتويي تگ ها ، مقادير صفت ها و... درست رعايت شده يا نه. به اين منظور از ابزارهايي تحت عنوان DTD ها و شماي XML استفاده مي كنند.XSLT و CSSسند XML به خودي خود در وب قابل نمايش نيست براي تبديل سند XML به فرمت قابل نمايش در وب از XSLT و يا CSS استفاده مي شود.اجزائ اساسي براي توليد و نمايش يك سند XML تحت وب
اسلاید 11: اجزائ اساسي براي توليد و نمايش يك سند XML تحت وبسند XMLDTDشماي XMLXSLTCSSهر سند XML ميتواند از شما و يا DTD به عنوان سند اعتبار استفاده كندهر سند XML مي تواند براي نمايش خود در وب از XSLT ويا CSS استفاده كند
اسلاید 12: آشنايي با قواعد نوشتاري يك سند XML
اسلاید 13: توليد سند XML يك مثال سادهمي خواهيم اطلاعات اين كتاب را به صورت يك سند XML نمايش دهيم.
اسلاید 14: <?xml version=1.0 ?> قبل از هر چيز در ابتداي فايل XML بايد اعلان version XML مورد استفاده را كرد براي اين منظور:در ابتداي سند و قبل از هر چيز بنويسيد <?xmlسپس بنويسيد“version=1.0” (يا هر version ديگري كه مورد استفاده است)در انتها ?>
اسلاید 15: <?xml version=1.0 ?> <Book></Book>پس از آن موضوعي را كه در مورد آن مي خواهيم بحث كنيم كه در اينجا يك كتاب است به صورت تگ اصلي نمايش مي دهيم .
اسلاید 16: <?xml version=1.0 ?> <Book><title> Foundamentals of Data Base Systems </title><Edition> forth</Edition><authors> Elmasri & Navathe</authors></Book>پس از آن هر بخش از اطلاعات كتاب را به صورت زير شاخه در داخل تگ اصلي اضافه مي كنيم و در جلوي آن اطلاعات مربوط به آن را مي نويسيم.
اسلاید 17: <?xml version=1.0 ?> <Book><title> Foundamentals of Data Base Systems </title><Edition> forth</Edition><authors> Elmasri & Navathe</authors></Book>تگ rootتگ هاي زير شاخه
اسلاید 18: چه قوانيني را در نوشتن يك فايل XML بايد رعايت كرد؟در ابتداي هر سند و قبل از هر چيزي <?XML version=“1.0”?>هر تگي كه بازمي شود بايد حتما بسته شود.هر سند بايد شامل يك عنصر پايه(root) باشد. بزرگي و كوچكي حروف در XML حائز اهميت است.در رعايت سلسله مراتب بازو بسته نمودن تگ ها بايد دقت شود.براي اضافه كردن Comment به برنامه از علامت زير استفاده مي شود.<!-- This is a comment -->
اسلاید 19: استفا ده از صفتدر يك سند XML هر يك از تگ هاي زير شاخه را مي توان به صورت يك صفت نيز نمايش داد.صفت را به تگ root اضافه مي كنيم و داده قبليش را نيزبه عنوان مقدار صفت به آن مي افزاييم.مقدار هر صفت بايد حتما در بين دو علامت ” ” و يا’ ’ قرار داشته باشد.
اسلاید 20: يك مثال ديگر<?xml version=1.0?> <note date=12/11/2002> <to> Tove </to> <from> Jani</from> </note> Note To: Tove From: JaniDate :12/11/2002<?xml version=1.0?> <note><date> 12/11/2002</date> <to> Tove </to> <from> Jani</from> </note> براي مثال مي خواهيم اين پيغام را مدل كنيمميتوان اين پيغام را به دو شيوه مدلسازي كرد يكي با استفاده از صفت و ديگري بدون استفاده از آن
اسلاید 21: چه تفاوتي در استفاده از صفت به جاي يك تگ زير شاخه وجود دارد؟يك صفت نمي تواند چند مقدار داشته باشد ولي يك تگ مي تواند چندين بار تكرار شود و هر بار يك مقدار متفاوت را اتخاذ كند.يك صفت نمي تواند ساختار سلسله مراتبي را به خوبي بازگو كند.براي تجزيه گر هاي مستندات XML كار با صفت مشكل تر از كار با يك زير شاخه است (از لحاظ پيچيدگي زمان اجراي يك الگوريتم).
اسلاید 22: تهيه سند اعتبار: DTD شماي XML
اسلاید 23: DTD (Document Type Definition)چيست؟براي تعيين صحت اسناد تعريف مي شود.گاهي به منظور يكپارچه سازي در استفاده از تگ ها با معاني مشخص و از پيش تعيين شده و تعيين استاندارد مورد استفاده قرار مي گيرد.به اين منظور در يك سند DTD بايد عنوان تگ هاي استفاده شده و همچنين تو در تويي آنها ، صفتهاي استفاده شده و نوع مقاديري كه مي پذيرند مشخص شود.هر سيستم قبل از استفاده از هر سند XML آن را با DTD آن سند مطابقت مي دهد.چنانچه سند xml با سند DTD هم خواني نداشت ، معتبر (well-formed) شناخته نمي شود و بي ارزش است.
اسلاید 24: انواع DTDDTD داخليبراي اسناد XML شخصي و تكي را حتتر آنست كه DTD را در داخل خود سند ايجاد كنيد.DTD خارجيچنانچه چند سري سند XML به هم مرتبط وجود دارد مي توان از يك DTD براي تمام آنها استفاده كرد (به جاي نوشتن DTD در هر سند). به اين ترتيب يك فايل خارجي شامل DTD مورد نظر ساخته مي شود و سپس اسناد XML مورد نظر توسط URL اين فايل به آن مرتبط مي شوند.
اسلاید 25: DTD داخلي<?xml version=1.0?> <!DOCTYPE note []> <note> <to> Tove</to> <from> Jani</from> <date> 12/11/2002 </date> </note> براي مثالي كه قبلا سند XML آن را نوشته بوديم حال مي خواهيم يك DTD داخلي ايجاد كنيم براي اين منظور:بعد از اعلان نسخه XML تايپ مي كنيم <!DocType note مقداري فضاي خالي براي نوشتن محتواي سند DTD قرار مي دهيمدر انتها تايپ مي كنيم ]>
اسلاید 26: DTD داخلي<?xml version=1.0?> <!DOCTYPE note [ <!ELEMENT note (to,from,date)>]> <note> <to> Tove</to> <from> Jani</from> <date> 12/11/2002 </date> </note> حال بايد به ترتيب تگ هاي آورده شده در سند را معرفي كنيم ، ابتدا تگ root را معرفي مي كنيم:ابتدا مي نويسيم <!ELEMENt بعد نام تگ root را مي نويسيمسپس در جلوي آن نام تگ هايي كه به صورت زير شاخه در عنصر root تعريف مي شوند را مي نويسيم.(to,from,date)در انتها مي نويسيم >
اسلاید 27: DTD داخلي<?xml version=1.0?> <!DOCTYPE note [ <!ELEMENT note (to,from,date)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT date (#PCDATA)> ]> <note> <to> Tove</to> <from> Jani</from> <date> 12/11/2002 </date> </note> پس از آن به ترتيب هر يك از تگ ها را تعريف مي كنيم.عبارت #PCDATA در واقع مشخص مي كند كه داده اين تگ يك عبارت متني است و در ضمن نمي توان اين تگ را چندين بار تعريف كرد و هر بار يك داده اي به آن اختصاص داد.البته توصيفگرهاي ديگري نيز وجود دارند مانند:#CDATA#IMPLIED#REQUIRED…..
اسلاید 28: DTD داخلي(براي توصيف صفت)<?xml version=1.0?> <!DOCTYPE note [ <!ELEMENT note (to,from,date)><!ATTLIST note date (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> ]> <note date=“12/11/2002 “> <to> Tove</to> <from> Jani</from> </note> چنانچه تگ اصلي داراي صفتي باشد آن را به صورت زير در DTD اضافه مي كنيم:بعد از معرفي تگ ريشه مي نويسيم<!ATTLIST بعد از آن نام تگ ريشه و صفت آن را مي نويسيمپس از آن با توجه به مقدار صفت نوع آن را با يكي از توصيفگر ها نمايش مي دهيم.در انتها تايپ مي كنيم >
اسلاید 29: DTD خارجي<!ELEMENT note (to,from,date)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT date (#PCDATA)> <?xml version=1.0?> <!DOCTYPE note SYSTEM note.dtd> <note> <to>Tove</to> <from>Jani</from> <date> 12/11/2002 </date> </note> ابتدا اين فايل را با پسوند .dtd ذخيره مي كنيم.تمام قوانين گفته شده در نوشتن DTD داخلي نيز در اينجا رعايت مي شود. سپس در سند XML بعد از اعلان مي نويسيم:<!DOCTYPEسپس نام ريشه را مي نويسيم.پس از آن مي نويسيم SYSTEMو پس از آن آدرس جايي كه فايل dtd خود را ذخيره كرده ايم مي نويسيم.
اسلاید 30: DTD خارجي<?xml version=1.0?> <!DOCTYPE note PUBLIC “-//liz Castro//DTD End_species//EN//” “http://www.cookwood.com/xml/examples/dtd_creating/end_species.dtd> <note> <to>Tove</to> <from>Jani</from> <date> 12/11/2002 </date> </note> عبارت SYSTEM كه در مثال قبل استفاده شد به اين معنا است كه ما از يك فايل dtd شخصي استفاده مي كنيم كه شناخته شده نيست چنانچه بخواهيم از يك dtd عمومي و شناخته شده استفاده كنيم به اين صورت عمل مي كنيم:به جاي SYSTEM در مثال قبل مي نويسيم PUBLIC بعد از آن DTD-name مشخصه عمومي را مي نويسيم بعد از آن آدرس آن مشخصه عمومي را مي نويسيم.
اسلاید 31: شماي XMLشماي XMl دقيقا به همان منظور تاييد صحت سند XML )مانند ( DTDتهيه شده است.قدرت نمايش و توصيف اطلاعات در شما از DTD بيشتر است.نحوه نوشتار يك شماي XML به مانند يك سند XML است و از همان قوانين استفاده مي كند.با توجه به خصوصيات ذكر شده بيشتر ترجيح داده مي شود تا براي توصيف اعتباريك سند از شما استفاده شود تا DTD.
اسلاید 32: شماي XML<?xml version=1.0?><xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.w3schools.com xmlns=http://www.w3schools.com elementFormDefault=qualified>... ...</xs:schema> چنانچه بخواهيم براي مثال ساده قبل يك شما بنويسيم به اين ترتيب عمل مي كنيم:ابتدا بايد يك فايل text-only با پسوند .xsd ايجاد كنيم .پس از آن مانند يك سند XML در خط اول آن اعلان XML را مي نويسيم.پس از آن دستوراتي را اضافه مي كنيم (به مانند مثال روبرو) كه نشان مي دهد در توصيف اصطلاحات اين زبان از چه فضاي نامي استفاده مي كنيم.
اسلاید 33: شماي XML<?xml version=1.0?><xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.w3schools.com xmlns=http://www.w3schools.com elementFormDefault=qualified><xs:element name=note> <xs:complexType> ........</xs:complexType> </xs:element> </xs:schema> تگي كه داراي تگ زير شاخه باشد به آن complex ميگوييم و چنانچه تگ زير شاخه نداشته باشد به آن simple مي گوييمحال براي نمايش شماي مثال پيغام، در ادامه معرفي فضاي نام ،تگ اصلي يا همان ريشه را معرفي مي كنيمريشه از نوع تگ complex است.
اسلاید 34: شماي XML<?xml version=1.0?><xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.w3schools.com xmlns=http://www.w3schools.com elementFormDefault=qualified><xs:element name=note> <xs:complexType> <xs:sequence> ........</xs:sequence> </xs:complexType> </xs:element> </xs:schema> براي معرفي تگ هاي زير شاخه ريشه ، آنها را در تگ sequence تعريف مي كنيم.
اسلاید 35: شماي XML<?xml version=1.0?><xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.w3schools.com xmlns=http://www.w3schools.com elementFormDefault=qualified><xs:element name=note> <xs:complexType> <xs:sequence> <xs:element name=to type=xs:string/> <xs:element name=from type=xs:string/> <xs:element name=”date type=xs:date/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> پس از آن تك تك تگ هاي زير شاخه را معرفي مي كنيم و نام آنها و نوع داده اي كه مي پذيرند را معرفي مي كنيم.
اسلاید 36: توصيف صفت در شماي XMLفرض كنيد در مثال قبل date به جاي يك تگ زير شاخه به صورت يك صفت تعريف شده باشد در اين صورت آن را به صورت مقابل نمايش مي دهيم.<?xml version=1.0?><xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.w3schools.com xmlns=http://www.w3schools.com elementFormDefault=qualified><xs:element name=note> <xs:complexType> <xs:sequence> <xs:element name=to type=xs:string/> <xs:element name=from type=xs:string/> <xs:attribute name=”date type=xs:date/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
اسلاید 37: شماي XMLانواع گونه داده اي را كه مي توان توصيف كرد عبارت است از:xs:string xs:decimal xs:integer xs:boolean xs:date xs:time
اسلاید 38: شماي XMLحال بايد در سند XML اصلي خود مشخصات اين فايل شما را معرفي كنيم.چنانچه فايل شما را با نام note.xsd ذخيره كرده باشيم در داخل تگ ريشه عبارات زير را اضافه مي كنيم تا هم فايل شما را معرفي كنيم و هم فضاي نامي را كه شماي ما از آن استفاده مي كند.<?xml version=1.0?><note xmlns=http://www.w3schools.com xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http://www.w3schools.com note.xsd> <to>Tove</to> <from>Jani</from> <date>12/11/2002 </date> </note>
اسلاید 39: نمايش سند XML در وب: XSLT CSS
اسلاید 40: XSLT ( EXtensible Stylesheet Language Transformations) XSLT سندي است كه به فرمت اسناد XML نوشته مي شود و وظيفه اصلي آن تبديل سند XML به HTML و يا XHTML براي نمايش در browser است.XSLT با استفاده از XPath(به منظور استخراج هر تگ و مقدارآن و صفتهاي مربوط به آن از سند XML استفاده مي شود) سند XML را تجزيه مي كند و با توجه به دستوراتي كه در خود سند XSLT تعريف شده به فرمت مناسب در قالب HTML تبديل مي كند.
اسلاید 41: در اينجا يك سند XML نشان داده شده است كه مي خواهيم آن را در وب نمايش دهيم
اسلاید 42: يك سند XSLTدر اينجا مي توانيد ببنيد كه مقادير تگ هاي name و Price ازسند xml خوانده مي شود و در يك جدول نمايش داده مي شود
اسلاید 43: XSLTپس از تعريف سندXSLT ،آن را با پسوند .xsl ذخيره مي كنيم.پس از آن بايد در سند XML آن را معرفي كنيم. براي اين منظور بعد از دستور اعلان version اضافه مي كنيم <?xml-stylesheet type=text/xsl href=“xslt_file_name.xsl“?>سپس فايل XML را با پسوند .xml ذخيره مي كنيم .هنگاميكه بر روي اين فايل كليك كنيد اين فايل در browser نمايش داده مي شود.
اسلاید 44: نمايش سند XML با استفاده از XSLT در browser
اسلاید 45: XSLTالبته تمامي browser ها قابليت خواندن فايل XSLT ونمايش سند XML را ندارند.browser هايي كه قابليت نمايش را دارند عبارتند از:Firefox 1.0.2Mozilla 1.7.8Netscape 8Opera 8 Internet Explorer 6Internet Explorer 5(البته در اين مورد قوانين استفاده از xslt كاملا بر قوانين w3cمنطبق نيست)
اسلاید 46: CSS (Cascading Style Sheets )يكي ديگر از ابزار نمايش سند XML در browser ها CSS است.Browser ها هنگامي كه يك سند HTML را مي خوانند با توجه يه فرمت تگ هايي كه در آن استفاده شده نحوه نمايش آن را تعيين مي كنندCSS در واقع نقش تگ هاي HTML را براي اسناد XML بازي مي كند و نحوه نمايش هر يك از داده هاي سند XML را معين مي كند . browser ها با استفاده از سند CSS (به عنوان تعيين چگونگي فرمت نمايش ) و سند XML (به عنوان داده هايي كه بايد نمايش داده شود) اقدام به نمايش آن ميكند.
اسلاید 47: در اينجا يك سند XML نشان داده شده است كه مي خواهيم آن را در وب نمايش دهيم
اسلاید 48: يك سند CSSدر اينجا نشان داده شده كه هر يك از تگ هاي سند XML به چه صورتي نمايش داده شوند
اسلاید 49: CSSپس از تعريف سند CSS ،آن را با پسوند .css ذخيره مي كنيم.پس از آن بايد در سند XML آن را معرفي كنيم. براي اين منظور بعد از دستور اعلان version اضافه مي كنيم <?xml-stylesheet type=text/css href=”css_file_name.css?>سپس فايلXML را با پسوند .xml ذخيره مي كنيم .هنگاميكه بر روي اين فايل كليك كنيد اين فايل در browser نمايش داده مي شود.
اسلاید 50: نمايش سند XML با استفاده از CSS در browser
اسلاید 51: CSSالبته تمامي browser ها قابليت خواندن فايل CSS ونمايش سند XML را ندارند.browser هايي كه قابليت نمايش را دارند عبارتند از:Firefox 1.0.2Mozilla 1.7.8Opera 8 Internet Explorer(البته اين مورد نمي تواند تمامي دستورات CSS را اجرا كند)
اسلاید 52: نحوه ارتباط اجزا اساسي براي تهيه و نمايش يك سند XML
اسلاید 53: منابعhttp://www.w3schools.com/xml/Sean McGrath ,“XML by Example”,Prentice Hall PTR ,1998اليزابت كسترو ،“ خود آموز سريع XML“ ، ترجمه حميدرضا ذوقي ، انتشارات ناقوس ، مهر 1380
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.