طرحواره اکسامال
طرحواره اکسامال (به انگلیسی: XML schema) (اسکیما یا شمای اکسامال) یک توصیف برای «نوع» یک سند XML میباشد. این نوع طرحواره معمولاً در قالب محدودیتهایی روی ساختار و محتوای اسناد XML بیان میشود. قابل ذکر است که خود XML نیز محدودیتهای ترکیبی (نحوی) روی سند XML برقرار میکند، و نقش طرحواره اضافه کردن تعدادی محدودیت میباشد .
انواع محدودیتهای طرحوارههای XML
در زیر چند نوع از محدودیتهای طرحواره XML آمدهاست:
- ترکیبی از قواعد گرامری که محتوی ترتیب عناصر میباشند.
- گزارههای صحیح و غلط، که محتوای XML باید آن را برآورده کند.
- انواع داده که دارای محتوای عناصر و ویژگیهای سند XML هستند.
- ویژگیهای اختصاصی تر، مثل: منحصر به فرد بودن
- محدودیتهای مرتبط با یکپارچگی ارجاعها
زبانهای طرحواره نویسی XML
زبانهای اختصاصی برای طرحواره نویسی XML توسعه یافتهاست. مثل زبان تعریف نوع سند (DTD) که مختص و محلی برای مشخصات XML میباشد، این زبان طرحواره نویسی دارای توانمندیهای نسبتاً محدودی میباشد. زبان DTD غیر از بیان طرحوارهها، کاربردهای دیگری نیز در XML دارد. دو زبان قویتر برای برای طرحوارههای XML که بیشتر استفاده میشوند، XML Schema (با S حرف بزرگ) و RELAX NG میباشند .
انتساب طرحواره به سند
مکانیزمهای متفاوتی برای انتساب طرحواره به سند XML وجود دارد و این عمل انتساب براساس زبان طرحواره نویسی متفاوت میباشد. این انتساب ممکن است: به وسیله خود نشانهگذاریهای موجود در سند XML انجام شود، یا از طریق روشهای بیرونی انجام گیرد .
درستیسنجی
به فرایند بررسی انطباق سند XML با طرحواره، درستیسنجی (به انگلیسی: Validation) گفته میشود. این مفهوم با مفهوم «خوش تعریف بودن» از نظر نحوی در XML متمایز میباشد. یک سند ممکن است «خوشتعریف» باشد ولی معتبر (Valid) نباشد، مگر آنکه یک تجزیهکننده (parser) در زبان XML آن را درستی سنجی کند، در این فرایند، سند XML برای انطباق با طرحواره مرتبط خود بررسی میگردد. معمولترین نوع آنها «تجزیهکنندههای درستی سنجی DTD» میباشند، ولی بعضی از آنها از XML Schema یا RELAX NG پشتیبانی میکنند .
درستیسنجی یک سند نوعی در برابر یک طرحواره از نظر مفهومی از عمل «تجزیهٔ XML» متمایز میباشد (XML Parsing) و یک عملیات متمایز است؛ ولی، در عمل، «درستیسنجها» با «تجزیهکنندههای XML» یکپارچه شدهاند .
منابع
- ↑ "XML schema". Wikipedia (به انگلیسی). 2019-12-31.