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



  • ۱۹
  • خرداد

جلسه ۸۹ : آموزش جایگزینی عناصر در schema

  • دسته‌بندی‌ها :
جلسه ۸۹ : آموزش جایگزینی عناصر در schema
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به کار با عنصر anyAttribute پرداختیم. طبق مطالب این جلسه پی بردیم که anyAttribute عنصری است که ما را قادر به گسترش سند XML با استفاده attributes می سازد که در schema مشخص نگردیده اند. در این جلسه که آخرین جلسه از سر فصل آموزشی schema است؛ این سر فصل را با آموزش جایگزینی عناصر در schema به پایان می بریم.

      آموزش جایگزینی عناصر در schema

      XML Schemas این امکان را به ما می دهد که بتوانیم عناصر را به جای هم جایگزین نماییم.

      جایگزینی عناصر

      حالت زیر را تصور کنید.
      دو کاربر داریم که یکی اهل نروژ و و دیگری نیز اهل انگلیس است.
      حالا کاربر نروژی دوست دارد که از عناصر نروژی و متقابلاً کاربر انگلیس نیز علاقمند به استفاده از عناصر انگلیسی در سند XML است!
      برای حل این مشکل، می توانیم یک SubstitutionGroup را در XML schema تعریف کنیم.
      ابتدا عنصر head را اعلام می کنیم و سپس به اعلام سایر عناصر می پردازیم که بیان می کنند برای عنصر head قابل تعویض هستند.

      مثال : 

      در مثال بالا، عنصر “name” عنصر head است و عنصر “navn” برای “name” قابل تعویض می باشد.

      به این قطعه از یک XML schema نگاه کنید:

      مثال : 

      سند معتبر XML (مطابق با schema فوق) می تواند چنین باشد:

      مثال : 

      یا مانند این:

      مثال : 

      مسدود کردن عنصر جایگزینی

      برای جلوگیری از جایگزینی عناصر با عنصر مشخص شده، از block attribute استفاده کنید:

      مثال : 

      به این قطعه از یک XML schema توجه نمایید:

      مثال : 

      سند معتبر XML (مطابق با schema فوق) می تواند چنین باشد:

      مثال : 

      اما LONGER معتبر ما نخواهد بود:

      مثال : 

      استفاده از substitutionGroup

      نوع عناصر قابل تعویض باید همانند نوع عنصر head یا from آن باشد.
      اگر نوع عنصر قابل تعویض همان نوع عنصر head شما باشد، لازم نیست نوع عنصر قابل تعویض را مشخص کنید.

      توجه داشته باشید که تمام عناصر در substitutionGroup (عنصر head و عناصر قابل تعویض) باید به عنوان عناصر global اعلام شود، در غیر این صورت کار نمی کنند!

      عناصر global چه عناصری اند؟

      عناصر global فرزندان فوری  immediate children عنصر “schema” هستند! و عناصر محلی Local elements نیز عناصر موجود در عناصر دیگر می باشند.

      کلام آخر

      سر فصل schema را با آموزش جایگزینی عناصر در schema به پایان بردیم.
      فصل بعدی در دوره آموزش XML سر فصل XSD خواهد بود.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۸۹ : آموزش جایگزینی عناصر در schema
      به اشتراک بگذارید