پس از عرضه XML ، مجموعه ای از تکتولوژی های دیگر در رابطه با آن و با هدفمندی خاصی مطرح و ارائه گردیده است . بهمین دلیل است که امروزه XML بعنوان خانواده ای بزرگ از سایر تکنولوژی ها در نظر گرفته می شود .XSD) XML Schema Definition) ، یکی از تکنولوژی های موجود در این زمینه است. در مجموعه مقالاتی که در این رابطه ارائه خواهد شد، به بررسی جایگاه XSD و نحوه ارتباط آن با XML خواهیم پرداخت . در این مقاله ، به بررسی ضرورت استفاده از XSD و معرفی برخی از ویژگی های آن اشاره خواهد شد .
چرا به Schema نیاز است ؟
یکی از مزایای مهم XML ،ارائه انعطاف و تسهیلات لازم برای طراحان و پیاده کنندگان در رابطه با تشریح ساختار داده ها است. سندهای XML ، دارای مخاطبان خاص خود ( انسان و یا سایر برنامه های کامپیوتری ) بوده و می بایست امکانات لازم از زاویه استفاده کننده نیز مورد توجه قرار گیرد . در این رابطه می بایست مجوزهای لازم بمنظور ارائه هر یک از عناصر و یا خصلتهای موجود در سند مشخص گردد.ترتیب عناصر و خصلت های موجود در یک سند XML نیز بسیار حائز اهمیت بوده و همواره مورد نیاز منابعی خواهد بود که بنحوی از سندهای XML بعنوان ساختاری برای تامین داده های خود استفاده می نمایند. همانگونه که اشاره شد، سندهای XML ممکن است توسط انسان و یا سایر برنامه ها و نرم افزارها استفاده گردند. بدیهی است با فراگیر شدن استفاده از داده ها با فرمتی که توسط سندهای XML مطرح می گردد ،انتظار حمایت از انواع داده ها که در سایر زبانهای برنامه نویسی نظیر Java، VB، C++ ، SQL وجود دارد ،بشدت مورد نیاز خواهد بود. پیاده کنندگان سندهای XML بدنبال یک راهکار مناسب برای تعریف نوع داده ها (Date ، String ، Integer) و سایر موارد مربوط به قانونمند نمودن ساختار داده ها در رابطه با یک سند XML بودند .بدین ترتیب تعریف Schema برای سندهای XML ، امری حیاتی و ضروری تلقی گردید .
Schema ، محتوای مجاز یک کلاس از اسناد XML را تشریح می کند.
تاریخچه XML Schema
برای نوشتن سندهای XML ،در ابتدا از شکل ساده ای از زبان نشانه گذاری SGML استفاده می گردید .SGML ، صرفا" برای نشانه گذاری اسناد مورد استفاده قرار می گرفت . جایگاه استفاده از XML در ابتدا برای برنامه نویسان مشخص نبود و اکثر عرضه کنندگان مرورگرهای وب ، از تکنولوژی فوق حمایت نمی کردند . پس از مدت زمان کوتاهی، تکنولوژی XML جایگاه خاصی را در بین متقاضیان خصوصا" برنامه نویسان پیدا کرد . اکثر استفاده کنندگان به این نکته پی بردند که XML گزینه ای مناسب برای اکثر نیازهای آنان بوده و کاربرد آن بسیار فراتر از نشانه گذاری اسناد است .
در زمان عرضه XML 1.0 توسط کنسرسیوم وب ، از تکنولوژی DTD برای تشریح سندهای XML استفاده می گردید . گرامر استفاده شده در DTD ، پاسخگوی برخی از نیازهای جدید خصوصا" در رابطه با انتقال اطلاعات بود . در ادامه نیاز های جدیدی در رابطه با پردازش داده های موجود در اسناد XML مطرح گردید . بمنظور ارائه قابلیت فوق برای منابع مصرف کننده ، می بایست امکاناتی بمنظور تشریح مناسب داده ها ( ارتباط ، نوع داده و ... ) در اختیار برنامه نویسان قرار گیرد . بدین ترتیب برنامه نویسان قادر به تشخیص رفتار داده ها در یک سند XML و انجام پردازش های لازم در رابطه با داده های موجود در یک سند XML خواهند بود . بمنظورپاسخ مناسب به خواسته های فوق ، کنسرسیوم وب تصمیم به طراحی یک زبان توصیفی جدید با نام XML Schema گرفت . در این رابطه یک گروه کاری با همین نام تاسیس گردید . مهمترین هدف گروه فوق، ایجاد یک زبان توصیفی جدید با قابلیت استفاده توسط استفتاده کنندگان ، تولیدکنندگان و برنامه نویسان با توجه به طیف گسترده انتظارات هر گروه بود . گروه XML Schema کنسرسیوم وب ، فعالیت خود را از فوریه سال 1999 آغاز و پس از دو سال در 2001 موفق به طراحی زبان توصیفی شدند . تکنولوژی فوق با نام XML Schema Definition و یا XSD معرفی گردید . در زمانیکه گروه فوق ، سرگرم طراحی زبان توصیفی خود بودند، راهکارهای متفاوتی در این خصوص توسط سایر شرکت ها ارائه گردید . مثلا" شرکت ماکروسافت تکنولوژی XDR را عرضه نمود . تکنولوژی استاندارد شده کنسرسیوم وب ، در مدت زمان کوتاهی پس از عرضه ، بعنوان گزینه ای مناسب برای تشریح ساختار داده ها ی موجود در یک سند XML ، مورد توجه عموم متقاضیان قرار گرفت .
ویژگی های مهم XSD
فرمت آن همانند یک سند XML است. بنابراین ضرورتی به فراگیری گرامر جدیدی برای ایجاد XSD نخواهد بود . بدین ترتیب می توان از تمام ابزارهای موجود در رابطه با سندهای XML ، در ارتباط با XSD نیز استفاده کرد .
ضمن حمایت از انواع داده (Data Type) تعریف شده در اکثر زبانهای برنامه سازی، امکان تعریف نوع داده مورد نظر استفاده کننده را نیز فراهم می نماید . بدین ترتیب می توان محتویات سند را محدود به نوع داده مورد استفاده در نرم افزار خود نمود و یا حتی از خصلت فیلدهای موجود در بانک اطلاعاتی کپی برداری کرد .
امکان تعریف کلید یکتا (Key) در عناصر اطلاعاتی را بمنظور عملیات یکتا سازی(Uniqe) فراهم می نماید .
از خصلت توارث مدل شئ گراء ، بخوبی تبعیت می نماید . بدین ترتیب یک توصیف می تواند از توصیف دیگر به ارث رسیده باشد .ویژگی فوق ، توانائی تولید توصیف هائی با قابلیت استفاده مجدد را میسر می سازد .
امکان تعریف عناصر با ارزش NULL ، و یا فاقد ارزش ، در XSD وجود دارد .
از Namespace بخوبی حمایت می نماید . بدین ترتیب امکان توصیف اسناد با استفاده از Namespace مختلف فراهم می گردد . این ویژگی در راستای تولید توصیف هائی با قابلیت استفاده مجدد است .
اسناد XSD ، نیز نظیر سندهای XML ، توسط پارسر اعتبار سنجی شده و در صورت وجود خطا ء گزارشات لازم ارائه می گردد .
در بخش دوم ، به بررسی گرامر XSD خواهیم پرداخت .
XSD چیست ؟( بخش دوم )
در بخش اول این مقاله ، به بررسی ضرورت استفاده از XSD و معرفی برخی از ویژگی های آن اشاره گردید، در بخش دوم به بررسی گرامر XSD خواهیم پرداخت .
گرامر XSD
برای تشریح گرامر XSD ،در ابتدا به ذکر یک مثال پرداخته و سپس المانهای موجود در آن تشریح می گردد. جدول زیر نمونه سند XML را نشان می دهد :
یک سند نمونه XML
12345
3.5
67890
4.0
توصیف سند فوق، بر اساس متد XSD بصورت زیر است :
توصیف سند XML با استفاده از متد XSD
در ادامه با توجه به سند XML اشاره شده وXSD مربوطه ، به تجزیه و تحلیل توصیف تعریف شده خواهیم پرداخت .
اعلامیه XML
با توجه به اینکه XSD خود یک سند XML است ، پس خط اول آن میتواند یک اعلامیه XML باشد . (به خط اول توصیف تعریف شده XSD توجه نمائید )
المان ریشه در توصیف XSD
المان ریشه در یک سند XSD ،همواره با تگ مشخص می گردد . بمنظور اعلام به پارسر XML که توصیف ارائه شده از روش XSD تبعیت می نماید ، لازم است Namespace مرجع در المان تعیین گردد. Namespace فوق توسط کنسرسیوم وب ارائه شده است .(به خط دوم توصیف تعریف شده XSD توجه نمائید )
.
.
.
نکته : پیشوند XSD که در مثال فوق از آن استفاده شده است، نشاندهنده متد بکارگرفته شده بمنظور توصیف سند است . پیشوند فوق ، در صورت تعریف در NameSpace مرجع ، می تواند هر چیز دیگری را نیز شامل شود . همچنین اگر NameSpace مربوطه بصورت پیش فرض مشخص گردد ، می توان آن را حذف نمود. پیشنهاد می گردد بمنظور افزایش خوانائی سند و همچنین جلوگیری از مشکلات آتی خصوصا" زمانی که در توصیف مربوطه از توصیف دیگری
XSD چیست ؟( بخش سوم )
در بخش اول این مقاله به بررسی مقاهیم و جایگاه نکنولوژی XSD اشاره و در بخش دوم به بررسی بررسی گرامر XSD پرداخته گردید . در این بخش به بررسی انواع داده ساده ( simple type ) و مرکب ( complex type ) ، خواهیم پرداخت .