عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
XML برای برنامه نويسان VB و ASP ( بخش دوم ) |
مديريت وب |
10834 |
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 خارجی |
<?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 خواهيم پرداخت .