XSD (XML Schema Definition) הוא תקן של W3C שמגדיר את המבנה של מסמכי XML. XML היא שפת סימון להעברת מידע בין מערכות. התקן פותח במקור על ידי מיקרוסופט. באמצעות XSD אפשר להגדיר מבנה בלתי תלוי בפלטפורמה ולבדוק אם קובץ XML תקין, לפי כללי יישום ספציפיים (Application Domain Constraints).
XSD מאפשר להוסיף טיפוסי נתונים (Typing) ולבחון ערכים בעזרת Facets, מגבלות על הערכים. מנגנונים אלה אינם נתמכים ב-DTD הישן.
באמצעות XSD ניתן לבדוק שהתגיות או תוכן התגים הם מטיפוס מסוים או עומדים במגבלות שנקבעו.
שימוש מרכזי של XSD הוא הגדרת פורמט נתונים וולידציה, בדיקה שהנתונים עומדים בכללים.
ישנה דוגמה לסכמת XSD בסיסית שמגדירה מבנה למדינה. קובץ XML המקיים את הסכמה יכול לכלול שם מדינה ואוכלוסייה, כמו France ו-60,144,000.
XSD מאפשר טיפוסים פרימיטיביים וטיפוסים שמוגדרים על ידי המשתמש. אפשר ליצור רשימות ואיחודים (union) של טיפוסים.
simpleType מייצג טיפוס פשוט של נתונים. הוא לא יכול להכיל תת-אלמנטים ולא יכול להכיל attributes (תכונות).
complexType הוא טיפוס מורכב. הוא יכול לכלול אלמנטים אחרים ותכונות. סוגים שונים של complexType מאפשרים מבנים מרובים.
תג sequence מגדיר סדר של תת-אלמנטים. אפשר להגדיר כמה פעמים אלמנט יכול להופיע בעזרת מאפיינים כמו maxOccurs.
xsd:anyType הוא הטיפוס הבסיסי לכל הטיפוסים בסכמה. במפות שפות תכנות הוא עשוי להתאים ל-Object ב-Java או ל-void* ב-C/C++.
הורשה ב־XML מתבצעת באמצעות restriction או extension. restriction מצמצם את מגרש הערכים של טיפוס האב, ו-extension מוסיף אליו אלמנטים.
Facets מגדירים כללים עבור ערכים, למשל: pattern (תבנית), enumeration (רשימת ערכים אפשריים), length, minLength, maxLength, maxInclusive ו-minInclusive. restriction משמש בעת ירושה מהטיפוס האב, בעוד facet מגדיר את תחום הערכים עצמו.
באמצעות הורשה אפשר להשיג רב-צורתיות (פולימורפיזם) וליצור אלמנט שיכול להיות מטיפוסים שונים.
ניתן למנוע הורשה על טיפוסים כדי לשמור על מבנה סגור ושלם.
XSD (XML Schema Definition) הוא כלל שמסביר איך מסמך XML צריך להיראות. XML היא שפה שמארגנת מידע.
XSD אומר אילו תגים יהיו בקובץ. זה עוזר לבדוק שהקובץ תקין.
simpleType הוא טיפוס פשוט. הוא לא יכול להכיל תכונות (attributes) או תת-תגים.
complexType הוא טיפוס מורכב. הוא יכול להכיל תגיות אחרות ותכונות.
דוגמה נפוצה היא סכמת מדינה. בקובץ יכול להופיע שם המדינה (France) ומספר התושבים.
תג sequence אומר באיזה סדר תתגיות יבואו. אפשר להגיד כמה פעמים תג יכול להופיע.
Facets הם כללים לערכים. לדוגמה: אורך, תבנית או רשימת ערכים מותרת.
אפשר לרשת טיפוס מאחד לטיפוס אחר. יש שתי דרכים: restriction ו-extension. restriction מקטין את האפשרויות. extension מוסיף פריטים.
xsd:anyType הוא הטיפוס הכי כללי. הוא הבסיס לכל הטיפוסים.
תגובות גולשים