بررسی DTD , XML-Data Schema و جايگاه آنان در XML New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 سه شنبه  5  ارديبهشت  1396  2017  Apr.  25   Tuesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 XML برای برنامه نويسان VB و ASP ( بخش دوم )

 مديريت وب

9402

8

3.9

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

XML برای برنامه نويسان VB و ASP ( بخش دوم )

XML برای برنامه نويسان VB و ASP ( بخش دوم )

در بخش اول اين مقاله با مفاهيم اوليه تکنولوژی XML آشنا شديم . در بخش دوم به بررسی DTDs and XML-Data Schemas خواهيم پرداخت .

Document Type Definition DTD)

قبل از بررسی  تکنولوژی DTD  و Schema  ذکر موارد زير مفيد خواهد بود :

  • مولفين سندهای XML می توانند ساختار دلخواه و مورد نظر خود را برای تشريح داده های مربوطه ايجاد نمايند .

  • يک مولف سندهای XML ،  نمی تواند اين اطمينان را داشته باشد که ساختار ايجاد شده برای سند ها ، توسط ساير مولفين سندهای XML تغيير نمی نمايد .

  • ما بدنبال روشی هستيم که اين اطمينان را ايجاد نمايد که تغيير تصادفی ساختار يک سند XML  تحقق پيدا نخواهد کرد .

  • DTD ، روشی برای تشريح و مسنتد سازی ساختار استفاده شده در يک سند XML است . برای اعبتار سنجی يک سند XML وجود DTD ضرورت دارد ( ممکن است از تکنولوژی مشابه استفاده گردد )

  • مولفين سندهای XML ، با استفاده از مجموعه ای قوانين که نوشته خواهند شد ، يک سند XML را معتبر می نمايند .

  • يک سند XML ،  زمانی " خوش شکل"  ناميده می شود که گرامر مربوط به XML در آن رعايت شده باشد. صرف "خوش شکل " بودن يک سند XML ، بمنزله معتبر بودن آن نيست .

  • با استفاده از DTD ، المان های مورد نياز يک سند XML تعريف ، المان های اختيار ی  ، تعداد دفعات تکرار يک المان  و ترتيب المان ها  از لحاظ استقرار در يک سند XML مشخص می گردد.

  • DTD ممکن است نوع داده های موجود در سند XML را نيز مشخص نمايد .( مشخص نمودن نوع در رابطه با المان و خصلت ها صدق خواهد کرد ) .

  • DTD بعنوان بخشی از استاندارد XML بوده که توسط کنسرسيوم وب ارائه شده است .

  • در زمان اعتبار سنجی يک سند XML از طريق يک DTD و بکمک بخش اعتبار سنجی پارسر ، سند XML بمنظور تشخيص حضور تمام المان ها  و عدم تعريف يک المان بررسی خواهد شد .  ساختار سلسله مراتبی المان ها ی تعريف شده در DTD  نيز بررسی خواهد شد . مقدار تمامی خصلت ها نيز بمنظور اطمطنان از صحت موارد اعلام شده با مشاهده شده ، نيز کنترل می گردد .

  • هر نوع اطلاعات لازم در خصوص يک سند XML ( از بالا تا پايين يک سند ) توسط DTD تعريف و معتبر خواهد شد .

  • يک DTD می تواند بصورت داخلی و يا خارجی استفاده گردد . در مدل داخلی ، اطلاعات مربوط به DTD بهمراه سند XML قرار گرفته و يک فايل را تشکيل خواهند داد ( سند XML و DTD مربوطه )  . در مدل خارجی ، اطلاعات مربوط به DTD در يک فايل مجزا و با انشعاب dtd ذخيره و در سند XML مربوطه به آن مراجعه خواهد شد .

  • در صورت تعريف يک DTD بصورت خارجی ، امکان مراجعه به آن توسط سندهای XML متعددی وجود خواهد داشت . با توجه به گفته فوق ، استفاده از روش فوق دارای مزايای عمده نسبت به حالتی است که DTD را بصورت داخلی و همراه با سند XML استفاده  نمائيم .

  • برای برنامه هائی که اطلاعات خود را بصورت XML مبادله می نمايند ، DTD  مهم خواهد بود .

  • يک نمونه  DTD   داخلی

مثال :  يک نمونه  DTD داخلی

<?xml version="1.0"?>
    <!DOCTYPE message [
    <!ELEMENT message (#PCDATA)>
    ]>

<message>
     Internal  DTD
</message>

  • يک نمونه  DTD خارجی

مثال :  يک نمونه  DTD خارجی

<?xml version="1.0"?>
<!DOCTYPE message SYSTEM "message.dtd">
<message>
   External  DTD
</message>

سندهای XML ، می توانند شامل يک DTD اختياری باشند . سندهای XML از گزينه فوق بمنظور تضمين فرمت مشخص شده استفاده می نمايند. مثال زير يک سند XML بهمراه DTD آن را نشان می دهد . سند XML  در بخش اول مقاله ارائه شده است . در مثال فوق DTD بصورت داخلی  و همراه سند استفاده شده است .

مثال :  يک سندXML بهمراه DTD مربوطه

<?xml version="1.0"?>
<!DOCTYPE mycomputer [
<!ELEMENT mycomputer (pc, docking_station, case)>
<!ELEMENT pc (processor, ram, drives, display,modem, network)>
<!ATTLIST pc
type (Laptop|Desktop) "Desktop"
brand CDATA #IMPLIED
model CDATA #IMPLIED>
<!ELEMENT processor (#PCDATA)>
<!ELEMENT ram (#PCDATA)>
<!ELEMENT drives (drive*)>
<!ELEMENT drive (#PCDATA)>
<!ELEMENT display (#PCDATA)>
<!ELEMENT modem (#PCDATA)>
<!ELEMENT network (#PCDATA)>
<!ELEMENT docking_station (#PCDATA)>
<!ELEMENT case (color, fabric)>
<!ATTLIST case
brand CDATA #IMPLIED>
<!ELEMENT color (#PCDATA)>
<!ELEMENT fabric (#PCDATA)>
]>


<mycomputer>
<pc type="Laptop" brand="Toshiba" model="Tecra 8000">
<processor>300 Mhz Pentium II</processor>
<ram>128 MB</ram>
<drives>
<drive>9 MB Hard Disk</drive>
<drive>1.4 MB Floppy Disk</drive>
<drive>CD-ROM</drive>
</drives>
<display>14 inch active matrix LCD panel</display>
<modem>Toshiba internal V.90</modem>
<network>Xircom Cardbus Ethernet II 10/100</network>
</pc>
<docking_station/>
<case brand="USL">
<color>black</color>
<fabric>vinyl</fabric>
</case>
</mycomputer>

يکی ديگر از روش های استفاده از DTD در يک سند XML  ، بصورت خارجی است . در اين حالت اطلاعات مربوط به DTD در يک فايل مجزا و با انشعاب dtd ذخيره و در ادامه در سند XML به آن مراجعه می گردد .

مثال :  بخش آغازين يک سندXML  و نحوه  استفاده از DTD بصورت خارجی

<?xml version="1.0"?>
<!DOCTYPE mycomputer SYSTEM "mycomputer.dtd">
<mycomputer>
       
....  
</mycomputer>

سندهای XML خوش شکل و معتبر

يک سند "خوش شکل"  XML ، سندی است که دارای  گرامر صحيح و تعريف شده در رابطه با XML  باشد . گرامر مربوطه در قالب مجموعه ای از قوانين مشخض شده است . برخی از اين قوانين عبارتند از :

  • سند می بايست دارای يک و يا چند المان باشد .

  • سند می بايست دارای يک المان ريشه  بوده که ساير عناصر با يک ساختار مناسب ( تودر تو ) به آن متصل می گردند .

  • تمام المان های موجود در سند می بايست دارای تگ شروع و پايان باشند .

يک سند "خوش شکل"  XML  که شامل يک DTD ( داخلی و يا خارجی ) می باشد ، بعنوان يک سند معتبر در نظر گرفته خواهد شد . پارسر XML ( پردازنده نيز ناميده می شود ) با استفاده از يک DTD قادر به معتبر نمودن يک سند XML خواهد بود .  بررسی جزئيات مربوط به تکنولوژی DTD از حوصله اين مقاله خارج است .

XML-Data and Schema

DTD دارای محدوديت و مسائل خاص خود می باشد :

  • برای نوشتن DTD لازم است که با يک زبان جديد آشنا شويم .

  • DTD  انتظارات لازم در خصوص نوع داده ها را بخوبی تامين نمی نمايد .

  • DTD  قابليت بسط و توسعه را ندارد .

XML-Data ، با هدف حل مشکلات فوق ايجاد شده است . XML-Data يک زبان مبتنی بر XML بوده که از آن بمنظور تشريح  پيش نويس (Schema) يک سند استفاده می گردد . زبان فوق ، بسط پذير، انعطاف پذير و قدرتمند است . فايل های Schema با انشعاب xsd ذخيره می گردند .  فايل های Schema خود بمنزله سندهای XML بوده و المان ريشه آنان Schema نام دارد . در ابتدای فايل های Schema  ، می بايست namespace مربوطه تعريف گردد . جدول زير XML-Data Schema ،  معادل DTD ارائه شده در مثال قبل را نشان می دهد :

مثال :  XML-Data Schema   مربوط به سند XML

<schema xmlns = "http://www.w3.org/2001/XMLSchema">
<ElementType name="mycomputer" content="eltOnly" order="seq">
      <element type="pc"/>
      <element type="docking_station"/>
      <element type="case"/>
</ElementType>
<ElementType name="pc" content="eltOnly" order="seq">
     <element type="processor"/>
     <element type="ram"/>
     <element type="drives"/>
     <element type="display"/>
     <element type="modem"/>
     <element type="network"/>
</ElementType>
<ElementType name="pc">
     <AttributeType name="type"
      xmlns:dt="urn:schemas-microsoft-com:datatypes"
      dt:type="enumeration" dt:values="Laptop Desktop"
      default="Desktop"/>
     <AttributeType name="brand" required="no"/>
     <AttributeType name="model" required="no"/>
     <attribute type="type"/>
     <attribute type="brand"/>
     <attribute type="model"/>
</ElementType>
    <ElementType name="processor" content="textOnly"/>
    <ElementType name="ram" content="textOnly"/>
    <ElementType name="drives" content="eltOnly">
       <element type="drive" minOccurs="0" maxOccurs="*"/>
</ElementType>
    <ElementType name="drive" content="textOnly"/>
    <ElementType name="display" content="textOnly"/>
    <ElementType name="modem" content="textOnly"/>
    <ElementType name="network" content="textOnly"/>
    <ElementType name="docking_station" content="textOnly"/>
    <ElementType name="case" content="eltOnly" order="seq">
        <element type="color"/>
        <element type="fabric"/>
</ElementType>
<ElementType name="case">
    <AttributeType name="brand" required="no"/>
    <attribute type="brand"/>
</ElementType>
<ElementType name="color" content="textOnly"/>
<ElementType name="fabric" content="textOnly"/>
</Schema>

بررسی جزئيات تکنولوژی  Schema از حوصله اين مقاله خارج است .

آيا معتبر سازی يک سند ، ضرورت دارد ؟

در صورتيکه سندهای XML  دارای يک حيات طولانی بوده و يا از آنها بمنظور مبادله اطلاعات بين سيستم ها و برنامه های متفاوت استفاده می گردد ، لازم است که معتبر سازی يک سند XML بکمک DTD و يا Schema انجام گيرد . در صورتيکه از سند های XML برای ارسال اطلاعات بين لايه های متفاوت يک برنامه سه لايه استفاده می گردد ، ضرورتی به معتبر ساری يک سند XML نخواهد بود .  اگر قصد ايجاد تعداد زيادی از سندهای معتبر را داشته باشيد ، می توان يک ابزار مناسب بمنظور ايجاد DTD و يا Schema را تهيه نمود .

در بخش سوم اين مقاله به بررسی XML Document Object Model  خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382