تبلیغات
آموزشASP.NET - XSD چیست ؟( بخش دوم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
دوشنبه 23 اسفند 1389 :: نویسنده : ارش کاکاوند
در بخش اول  این مقاله ، به  بررسی ضرورت استفاده از XSD و معرفی برخی از ویژگی های آن اشاره گردید، در بخش دوم به بررسی  گرامر XSD  خواهیم پرداخت .

گرامر XSD
برای تشریح گرامر XSD ،در ابتدا به  ذکر یک مثال پرداخته و سپس المانهای موجود در آن  تشریح می گردد. جدول زیر نمونه سند XML  را نشان می دهد :

یک سند نمونه XML

<?XML Version = "1.0"?>
     <Students>
           <Student>
                  <ID>12345</ID>
                  <GPA>3.5</GPA>
            </Student>
            <Student>
                  <ID>67890</ID>
                  <GPA>4.0</GPA>
            </Student>
      </Students>

توصیف سند فوق، بر اساس متد XSD بصورت زیر است :

توصیف سند XML با استفاده از متد XSD

<?XML Version = "1.0"?>
     <XSD:Schema xmlns:xsd='http://www.W3.org/2001/xmlschema'>
           <XSD:Element Name="student" Minoccurs="0" MaxOccurs="Unbounded"/>
               <XSD:ComplexType>
                    <XSD:Sequence>
                    <XSD:Element Name="ID" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Element Name="GPA" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    </XSD:Sequence>
                </XSD:ComplexType>
            </XSD:Element>
      </XSD:Schema>

در ادامه با توجه به سند XML اشاره شده  وXSD مربوطه ، به تجزیه و تحلیل توصیف تعریف شده خواهیم پرداخت .

اعلامیه XML
با توجه به اینکه XSD خود یک سند XML است ، پس خط اول آن میتواند یک اعلامیه XML باشد . (به خط اول توصیف تعریف شده XSD توجه نمائید )

<?XML Version = "1.0"?>

المان ریشه  در توصیف XSD
المان ریشه در یک سند XSD ،همواره با تگ  <Schema> مشخص می گردد . بمنظور اعلام به پارسر XML که توصیف ارائه شده از روش XSD تبعیت می نماید ، لازم است Namespace مرجع در المان <schema> تعیین گردد. Namespace  فوق  توسط کنسرسیوم وب ارائه شده  است .(به خط دوم توصیف تعریف شده XSD توجه نمائید )

 

    <XSD:Schema xmlns:xsd='http://www.W3.org/2001/xmlschema'>
            .
            .
            .
      </XSD:Schema>

نکته : پیشوند  XSD که در مثال فوق از آن استفاده شده است، نشاندهنده متد بکارگرفته شده  بمنظور توصیف سند است . پیشوند فوق ، در صورت تعریف در NameSpace مرجع ، می تواند هر چیز دیگری را نیز شامل شود . همچنین اگر NameSpace مربوطه بصورت پیش فرض مشخص گردد ، می توان آن را حذف نمود. پیشنهاد می گردد بمنظور افزایش خوانائی سند و همچنین جلوگیری از مشکلات آتی خصوصا" زمانی که در توصیف مربوطه از توصیف دیگری استفاده میگردد، ( Import)  حتما" از پیشوند فوق ، استفاده گردد .

عناصر (Elements)
المان ها ، مهمترین بخش در یک سند XSD می باشند . جهت معرفی هر المان می بایست خصلت های زیر تعریف گردند .

  • Name :  خصلت اجباری فوق ، نام عنصر مورد نظر را مشخص می نماید .

  • Type : خصلت فوق ، نوع داده (Data Type) عنصر  مورد نظر را مشخص و می تواند ساده نظیر  String  و یا از انواع داده مرکب باشد .

  • MinOccurs : خصلت  فوق،اختیاری بودن یا اجباری بودن عنصرمورد نظر  را مشخص می نماید. این خصلت اجباری نبوده و در صورت عدم مقدار دهی ، بصورت پیش فرض عدد یک برای آن در نظر گرفته خواهد شد . جدول ذیل مقادیر مختلف خصلت فوق را نشان می دهد.

توضیحات

مقدار نسبت داده شده

عنصر اختیاری است

0

عنصر باید حداقل به تعداد مشخص شده در سند وجود داشته باشد

Integer > 0

  • MaxOccurs  : خصلت فوق، تعداد مجاز عنصر در سند را مشخص می نماید. این خصلت نیز اجباری نبوده و در صورت عدم مقدار دهی ،بصورت پیش فرض عدد یک برای آن در نظر گرفته خواهد شد . جدول ذیل مقادیر مختلف خصلت فوق را نشان می دهد.

توضیحات

مقدار نسبت داده شده

عنصر فقط می تواند به اندازه عدد مشخص شده در سند وجود داشته باشد

Integer > 0

محدودیتی در ظهور عنصر در سند وجود ندارد

Unbounded

تگ  Sequence
این تگ(نشانه) زمانی استفاده می گردد، که توالی عناصر در سند برای ما اهمیت داشته باشد. از نشانه فوق، فقط در تعریف عناصر مرکب (عناصری که بیش از یک جزء داشته باشند) میتوان استفاده نمود ، در چنین حالتی  محل قرارگیری آن  می بایست قبل از تعریف اجزاء مربوطه باشد .
با توجه به توضیحات فوق و مشاهده مجدد سند توصیفی نمونه، آنالیز سند XML مربوطه به شرح ذیل خواهد بود .

توصیف سند XML با استفاده از متد XSD

<?XML Version = "1.0"?>
     <XSD:Schema xmlns:xsd='http://www.W3.org/2001/xmlschema'>
           <XSD:Element Name="student" Minoccurs="0" MaxOccurs="Unbounded"/>
               <XSD:ComplexType>
                    <XSD:Sequence>
                    <XSD:Element Name="ID" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Element Name="GPA" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    </XSD:Sequence>
                </XSD:ComplexType>
            </XSD:Element>
      </XSD:Schema>

  • این سند شامل عناصری است به نام Student که یا اصلا" در سند وجود ندارد و یا به هر تعداد ممکن است وجود داشته باشد چراکه MinOccurs آن برابر صفر است و MaxOccurs  آن برابر Unbounded .

  • عنصر Student ، شامل دو زیر عنصر به نامهای ID و GPA و از نوع String بوده و هرکدام فقط میتوانند یک بار در سند ظاهر شوند چرا که MinOccurs و MaxOccurs آنها برابر یک است (در مثال فوق ،در صورت حذف خصلت های MinOccurs و MaxOccurs مربوط به توصیف عناصر ID و GPA  ،هیچ تغییری در ماهیت توصیف ایجاد نمی شود، چرا که مقادیر پیش فرض آنها  برابر یک است ).

  • عناصر ID و GPA در سند باید به صورت پشت سرهم بیایند چرا که در توصیف سند از نشانه Sequence استفاده شده است .

 در بخش سوم این مقاله، به بررسی نوع های ساده (SimpleType) و نوع های مرکب (ComplexType)  در XSD  خواهیم پرداخت .





نوع مطلب :
برچسب ها :
لینک های مرتبط :


پنجشنبه 23 شهریور 1396 08:11 ب.ظ
I have been surfing online more than 3 hours today,
yet I never found any interesting article like
yours. It's pretty worth enough for me. In my view, if all webmasters and bloggers made good content as you did, the web
will be much more useful than ever before.
شنبه 18 شهریور 1396 07:07 ق.ظ
Wow! At last I got a blog from where I know how to
truly get useful facts concerning my study and knowledge.
سه شنبه 14 شهریور 1396 12:54 ب.ظ
What's up to every one, the contents existing at this site are genuinely awesome for people experience, well, keep up the
nice work fellows.
چهارشنبه 1 شهریور 1396 12:47 ب.ظ
Hi! I could have sworn I've visited this site before but after going through a few of the articles I realized it's
new to me. Nonetheless, I'm certainly pleased I stumbled
upon it and I'll be bookmarking it and checking back regularly!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :