دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۹
  • خرداد

جلسه ۷۳ : بررسی و مقایسه Attributes ها و عناصر در DTD

  • دسته‌بندی‌ها :
جلسه ۷۳ : بررسی و مقایسه Attributes ها و عناصر در DTD
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته کار با Attributes ها در DTD را فرا گرفتیم و در جلسه پیش از آن نیز به کار با عناصر در DTD آشنا شدیم؛ لذا وقت آن رسیده به که مقایسه این دور بپردازیم و این جلسه یعنی بررسی و مقایسه Attributes ها و عناصر در DTD به همین منظور تهیه شده و ارائه می گردد.

      بررسی و مقایسه Attributes ها و عناصر در DTD

      در XML هیچ گونه قانونی مبنی بر زمان استفاده از attributes و نیز زمان استفاده از عناصر فرزند child وجود ندارد.

      استفاده از عناصر در مقابل Attributes ها

      داده ها را می توان در عناصر child یا attributes ها ذخیره کرد.
      نگاهی به این مثالها بی اندازید:

      مثال : 

      مثال : 

      در مثال اول جنسیت یک attribute است. اما در گذشته، جنسیت یک عنصر child محسوب می شد.
      البته هر دو نمونه اطلاعات مشابهی را ارائه می دهند.

      هیچ زمان مشخصی در مورد استفاده از attributes ها و یا استفاده از عناصر child وجود ندارد. اما تجربه من این است که ویژگی ها در HTML مفید هستند، اما در XML سعی کنید از آنها اجتناب نمایید.
      البته زمانی که با اطلاعات feels یا information feels مانند داده ها سر و کار دارید می توانید از عناصر child استفاده نمایید.

      راه مورد علاقه من!

      راه مورد علاقه من این است که داده ها را در عناصر child ذخیره کنم.
      سه اسناد XML زیر دقیقا یکسان هستند:

      یک ویژگی تاریخ date attribute در مثال اول استفاده می شود:

      مثال : 

      یک عنصر تاریخ date element هم در مثال دوم استفاده می شود:

      مثال : 

      حالا هم یک عنصر تاریخ گسترش یافته expanded date element نیز در سومین مورد استفاده می شود: (این یکی بیش از همه مورد علاقه من است):

      مثال : 

      اجتناب از استفاده از attributes ها!

      آیا باید از attributesها استفاده کرد؟

      در ادامه به برخی از مشکلات و کاستی های attributes اشاره می نماییم:

      • attributes ها نمی توانند حاوی مقادیر چندگانه باشند (عناصر child را داشته باشند).
      • attributes ها به راحتی قابل گسترش نیستند (برای تغییرات آینده).
      • attributes ها نمی توانند ساختار را توصیف کنند (عناصر child می توانند).
      • attributes ها  با استفاده از کد برنامه، دستکاری می شوند.
      • مقادیر attributes ها در برابر DTD به راحتی قابل تست نیستند.

      اگر از attributes ها به عنوان ظروفی حاوی داده ها استفاده می کنید در آن صورت در انتها با اسنادی رو به رو می شوید که قابلیت خوانایی و تفسیر پایینی دارند.
      لذا توصیه می کنم از attributes ها فقط برای ارائه اطلاعاتی که مربوط به داده ها نیست استفاده کنید.
      کار زیر را انجام ندهید (این عمل را درستی برای استفاده از XML نیست):

      مثال : 

      ID در این مثال فقط یک شمارنده یا یک تعیین کننده منحصر به فرد برای شناسایی یادداشت های مختلف در فایل XML است؛ نه بخشی از داده های note.
      آنچه که می خواهم بگویم این است که متادیتاها ( داده ای که در مورد داده است) باید به عنوان attributes ذخیره شود و آن داده نیز خودش به عنوان عنصر.

      کلام آخر

      در این جلسه به بررسی و مقایسه Attributes ها و عناصر در DTD پرداختیم.
      در جلسه بعد که آخرین جلسه از این سر فصل آموزشی است به کار بر روی Entities ها خواهیم پرداخت.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۷۳ : بررسی و مقایسه Attributes ها و عناصر در DTD
      به اشتراک بگذارید