ساختار Syntax دستوری در زبان XML

7 / 10
از 2 کاربر

در این قسمت از مقالات طراحی سایت در زمینه آموزش XML ، ساختار دستوری Syntax در XML را توضیح می دهیم.
ابتدا موارد و نکات مهم در کدهای XML را توضیح می دهیم.در XML تمامی تگ ها به تگ انتهایی منتهی می شوند.تنها تگی که در XML که دارای تگ پایانی نیست ، تگ تعریف ورژن XML یا Declration است که برای تعیین نسخه XML در ابتدای اسناد XML قرار می گیرد . این تگ دارای تگ پایانی نیست . به دستور زیر توجه فرمایید :

< ?xml version="1.0" encoding="utf-XML" ? >

همچنین تگ های XML به حروف بزرگ و کوچک حساس هستند برای مثال تگ < Letter > با < letter > متفاوت است . همچنین تگ ابتدایی و انتهایی باید دارای حروف بزرگ و کوچک یکسانی باشند ، در غیر اینصورت error رخ خواهد داد .به مثال زیر توجه نمایید :

< from > This is NOT Ok ! < /From >
< from > This is Ok ! < /from >

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

< b > < i > This is NOT Ok ! < /b > < /i >
. کد بالا اشتباه بوده و ترتیب باز و بسته شدن تگ ها درست رعایت نشده است

< b > < i > This is Ok ! < /i > < /b >
. کد بالا صحیح است و ترتیب باز و بسته شدن تگ ها درست می باشد

تمامی اسناد XML باید دارای یک تگ root یا مادر باشند . تمامی اسناد XML باید دارای یک تگ root یا مادر باشند و سایر تگ های دیگر درون این تگ تعریف شوند . در کد مثال زیر این مسئله را نمایش داده ایم:

<root>
   <child>
      <subchild> ... </subchild>
   </child>
</root>

المنت های زبان XML

در این قسمت از آموزش XML  ، المنت های زبان XML را توضیح می دهیم.
در ابتدا باید بدانیم که اسناد XML شامل المنت های زبان XML هستند و هر المنت زبان XML شامل تمام چیزهایی که از تگ ابتدایی عنصر تا تگ انتهایی آن قرار دارند ، می شود . المنت ها دارای چند اجزا می باشند که عبارتند از :

√ المنت های دیگر - تگ های دیگر XML
√ متن (TEXT)
√ خواص المنت ها (ATTRIBUTES)
√ مجموعه ای از موارد فوق

دستور زیر یک قطعه کد ساده XML را نشان می دهد .

<bookstore>
   <book category="CHILDREN">
       <title>Harry Potter</title>
       <author>J K. Rowling</author>
       <year>2005</year>
       <price>29.99</price>
   </book>
   <book category="WEB">
       <title>Learning XML</title>
       <author>Erik T. Ray</author>
       <year>2003</year>
       <price>39.95</price>
  </book>
</bookstore>

در کد بالا تگ های < bookstore > و < book > ، در اصطلاح elements contents هستند ، زیرا خود شامل المنت های دیگر می شوند . تگ < book > دارای یک خاصیت ( attribute ) به نام category می باشد ، که اطلاعاتی راجع به آن را ارائه می کند . المنت هایی مثل < title > و یا < year > در اصطلاح text content هستند ، زیرا شامل متن می باشند .برای تعیین نام تگ ها باید از دستوراتی پیروی کرد که عبارتند از :

√ نام تگ ها می تواند شامل حروف ، اعداد و یا سایر کاراکترها باشد .
√ نام ها نمی توانند با یک عدد شروع شوند .
√ نام ها نمی توانند با عبارت xml آغاز شوند ( مثل xml , XML و ... ) .
√ نام ها نمی توانند شامل فاصله باشند .

بهتر است از موارد زیر برای نام گذاری تگ های XML استفاده کرد :

  •   نام ها را طوری انتخاب نمایید که گویای کار خود باشند ، به عبارت دیگر توضیح مختصری راجع به تگ ارائه دهند . مثلا تگ < first_name > برای نام و یا < last_name > برای نام خانوادگی مناسب است .
  •   نام ها بهتر است کوتاه و ساده باشند . مثلا < book_title > ، نام مناسبی است و نه < the_title_of_the_book > .
  •   از استفاده از کاراکتر " - " اجتناب کنید . اگر نامی مثل < first-name > بسازید ، ممکن است برنامه فکر کند شما می خواهید name را از first جدا نمایید .
  •   همچنین از استفاده از کاراکتر نقطه " . " پرهیز کنید . اگر نامی مثل < first.name > بسازید ، ممکن است برنامه فکر کند name خاصیتی برای first است .
  •   از استفاده از علامت " : " هم خودداری نمایید . زیرا این علامت در XML برای استفاده در namespace ها ذخیره شده و به کار بردن آن error ایجاد می کند .

خواص تگ های XML

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

< file Type = " gif " >  Computer.gif  </file>

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

< person age = " 30 "  >  Sara  </person>
< person age = ' 30 '  >  Sara  </person>

فراموش نشود که اگر مقدار خاصیت خودش دارای کاراکتر " بود از کاراکتر ' استفاده نمایید .

< person name = ' Alireza " Farhadi " '  > student </person>

تفاوت خواص XML و المنت ها در XML :
به دو قطعه کد XML زیر دقت نمایید :
در حالت اول age یک خاصیت برای تگ person است . اما در حالت دوم به صورت یک المنت برای آن در آمده است . هر دو حالت اطلاعات یکسانی را ارائه کرده و خروجی یکسانی خواهند داشت . اما روش دوم بهتر بوده و توصیه می شود .
زیرا هم ظاهر برنامه مرتبتر بوده و هم اعمال تغییرات به آن در آینده راحت تر خواهد بود .

< person age="18">
    < firstname > Anna< /firstname >
    < lastname > Smith < /lastname >
< /person > 

< person >
     < age > 18 < /age>
    < firstname > Anna< /firstname >
    < lastname > Smith < /lastname >
< /person >

خواص XML شامل سه حالت می باشد که شامل DATE , DATE که برای تگ NOTE تعریف می شود و به صورت یک المنت فرزند است و حالت سوم DATE که برای تگ NOTE تعریف می شود و هریک از مقادیر آن به صورت یک المنت فرزند درونش را تعریف می کند و چون حالت سوم بهترین و اصولی ترین روش برای تعریف تگ ها و خواص آنها می باشد این حالت را مثال می زنیم:

     <note>
   <date>
       <day>10</day>
       <month>01</month>
       <year>2008</year>
   </date>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Reminder</heading>
</note>

از آنجاییکه تعریف اطلاعات در خواص تگ های XML می تواند کمی ظاهر برنامه را پیچیده و ایجاد تغییرات در آن را سخت تر نماید . بهتر است به جای استفاده از خواص مقدار آنها را در المنت های XML تعریف کنید .
اشکالات عمده استفاده از خواص برای تعریف اطلاعات عبارتند از :

  • خواص نمی توانند چند مقداری باشند یعنی چند مقدار را درون خود جای دهند اما المنت های XML این قابلیت را دارند .
  • خواص نمی توانند ساختار درختی و سلسله مراتبی داشته باشند اما المنت های XML این قابلیت را دارند .
  •  خواص را در آینده به راحتی نمی توانید تغییر یا توسعه دهید اما المنت های XML دراین مورد بسیار بهتر هستند .

اعتبار سنجی اسناد XML

در این قسمت از آموزش XML می خواهیم اعتبار سنجی اسناد XML را توضیح دهیم .
یک سند مرتب و ساختار یافته XML ، سندی است که دارای Syntax صحیح این زبان باشد . توجه داشته باشید که اسناد xml باید دارای یک تگ مادر باشند که سایرتگ های فایل ، درون آن تعریف شوند همچنین تمامی تگ های XML باید دارای تگ انتهایی باشند ، به جز تگ Declration . توجه داشته باشید که تگ های XML به بزرگ و کوچک بودن حروف حساس اند و تگ های XML باید به ترتیب صحیح و درست قرار گیرند . مقادیر خواص تگ های XML حتما باید بین دو علامت " " یا ' ' قرار بگیرند .

دستور زیر یک سند مرتب XML را نشان می دهد.

<note>
  <to>Hamed</to>
  <from>Ali</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

یک سند مرتب XML علاوه بر اینکه دارای ساختاری صحیح است ، باید با قوانین و استانداردهای یک سند ( DTD ( Document Type Definition  مطابقت داشته باشد . هدف از تهیه یک سند DTD برای یک فایل XML ، تعیین ساختار کل سند است . این سند DTD ، ساختار کلی فایل XML را با تعیین لیست المنت های آن مشخص می سازد .DTD خود یک روش و زیان برای اعتبار سنجی اسناد XML است .

برای اضافه کردن یک سند DTD به فایل XML باید به وسیله ی تگ Doctype در ابتدای یک ایل XML آن را به یک سند DTD پیوند زد.دسور زیر نمونه ای از این سند می باشد:

<note>
  <!DOCTYPE note SYSTEM "Note.dtd" >
  <to>Hamed</to>
  <from>Ali</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

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

<!DOCTYPE note
   [
     <!ELEMENT note (to,from,heading,body) >
     <!ELEMENT to (#PCDATA) >
     <!ELEMENT from (#PCDATA) >
     <!ELEMENT heading (#PCDATA) >
     <!ELEMENT body (#PCDATA) >
   ] >

کنسرسیوم جهانی وب ( W3C ) روشی با ساختار مشابه XML را برای اعتبار سنجی اسناد XML در طراحی سایت تعیین کرده است . این روش به XML Schema معروف می باشد . در قطعه کد زیر ، استفاده از XML Schema را برای اعتبار سنجی فایل XML به کار برده ایم . به ارتباط آن با فایل XML دقت نمایید . XML Schema خود یک روش و زیان برای اعتبار سنجی اسناد XML است . به مثال زیر توجه نمایید :

<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="heading" type="xs:string"/ >
      <xs:element name="body" type="xs:string"/ >
   </xs:sequence >
</xs:complexType >
</xs:element >

قالب بندی فایل های XML با CSS

در این قسمت از آموزش xml ، قالب بندی فایل های xml با css را برای شما توضیح دهیم
اگر خواهان این هستید که فایل های xml خود را با ظاهر و قالب بندب خاصی نمایش دهید باید از یک فایل css استفاده کنید برای این کار ابتدا باید فایل xml را به فایل css وصل نمایید برای این منظور از یگ تگ < ?xml > شامل آدرس فایل CSS مورد نظر ، در ابتدای سند XML استفاده می شود . به مثال زیر توجه نمایید :

<?xml version="1.0" encoding="ISO-XMLXML59-1" ?>
<?xml-stylesheet type="text/css" href="book_catalog.css" ?>
<CATALOG>
   <BOOK>
      <TITLE> HTML</TITLE>
       <AUTHER> Developer1 </AUTHER>
       <COMPANY> Pishgaman </COMPANY>
       <PRICE> 4500 </PRICE>
       <YEAR> 13XML9</YEAR>
    </BOOK>
    <BOOK>
       <TITLE> CSS </TITLE>
       <AUTHER> Amiri </AUTHER>
       <COMPANY> Tebian </COMPANY>
       <PRICE> 6500 </PRICE>
       <YEAR> 1390</YEAR>
    </BOOK>
</CATALOG>

در جدول زیر کدی فایل CSS ای که برای قالب بندی سند XML خود به کار برده ایم را نمایش داده ایم .

CATALOG
   {
       background-color: #ffffff;
       width: 100%;
    }
BOOK
    {
       display: block;
       margin-bottom: 30pt;
       margin-left: 0;
     }
 TITLE
    {
       color: #FF0000;
       font-size: 20pt;
     }
 AUTHER
    {
       color: #0000FF;
       font-size: 20pt;
     }
PRICE,YEAR,COMPANY
    {
       display: block;
       color: #000000;
       margin-left: 20pt;
     }

پس از اینکه فایل CSS را به سند XML متصل کردید ، فایل CSS آن را قالب بندی کرده و با استایل جدید نمایش می دهد . مرورگر فایل XML را به جای نمایش ساده ، با قالب CSS نشان می دهد . با کلیک بر روی لینک زیر ، اثر فایل CSS بر روی سند XML را ببینید .

قالب بندی فایل های XML با XSLT

در مقالات طراحی سایت در این قسمت از آموزش xml ، چگونگی قالب بندی فایل های xml با xslt را برای شما توضیح می دهیم .
xslt یک زبان می باشد و شیوه ای جدا از xml می باشد .یکی از شاخه های استاندارد XSLT  با نام XSL شناخته می شود و وظیفه آن تبدیل یک سند  XML به یک سند XHTML هست. نحوه کار مشابه XSLT هست، با این تفاوت که در اینجا سند XML به سند XML دیگری تبدیل نمی شود، بلکه به کد HTML تبدیل می شود .

<?xml version="1.0" encoding="ISO-XMLXML59-1"?>
<breakfast_menu>
   <food>
      <name>Belgian Waffles</name>
      <price>$5.95</price>
      <description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
      <calories>650</calories>
   </food>
   <food>
      <name>Strawberry Belgian Waffles</name>
      <price>$7.95</price>
      <description>light Belgian waffles covered with strawberries and whipped cream</description>
      <calories>900</calories>
   </food>
   <food>
      <name>Berry-Berry Belgian Waffles</name>
      <price>$8.95</price>
      <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
      <calories>900</calories>
   </food>
   <food>
      <name>French Toast</name>
      <price>$4.50</price>
      <description>thick slices made from our homemade sourdough bread</description>
      <calories>600</calories>
   </food>
   <food>
      <name>Homestyle Breakfast</name>
      <price>$6.95</price>
      <description>two eggs, bacon or sausage, toast, and our ever-popular hash browns</description>
      <calories>950</calories>
   </food>
</breakfast_menu>

در جدول زیر نیز کد فایل XSLT را نشان داده ایم . توجه داشته باشید ، که این فایل ، قالب و استایل نمایش فایل XML را تعیین می کند . برای آشنایی با نحوه کار و کد این فایل ، توضیخات لازم را بعد از کد قرار داده ایم .

<?xml version="1.0" encoding="ISO-XMLXML59-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
   <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE">
      <xsl:for-each select="breakfast_menu/food">
         <div style="background-color:teal;color:white;padding:4px">
         <span style="font-weight:bold"><xsl:value-of select="name"/></span>
      - <xsl:value-of select="price"/>
         </div>
         <div style="margin-left:20px;margin-bottom:1em;font-size:10pt">
           <xsl:value-of select="description"/>
             <span style="font-style:italic">
                <xsl:value-of select="calories"/> (calories per serving)
             </span>
          </div>
      </xsl:for-each>
</body>
</html>

البته XML و XSLT  به عنوان یک استاندارد Syntax خاص خود و قواعد خود را دارند که باید آنها را یاد بگیرید و برطبق آنها کدهای XML و XSLT خود را بنویسید .

ارسال نظر و نظرات ثبت شده
شایان :
2 0
خیلی مختصر و مفید بود متصوصا برای افراد مبتدی.تشکر