מאמת XML / XSD
בצד השרתדוגמאות
תוצאת אימות
סכימת XSD
מסמך XML
פרטים טכניים
איך מאמת XML / XSD עובד
מה הכלי עושה
מאמת XML XSD זה בודק מסמכי XML מול הגדרות XML Schema באמצעות עיבוד בצד השרת. הכלי מאמת מבנה, טיפוסי נתונים, סדר אלמנטים ודרישות מאפיינים שמוגדרים בסכמה שלכם. כאשר האימות נכשל, הוא מדווח על שגיאות ספציפיות עם מספרי שורה ועמודה כאשר זמין. המאמת מטפל במרחבי שמות, טיפוסים מורכבים, אילוצי sequence ופאסטים של סכמה כמו התאמת תבניות והגבלות ערכים.
דוגמה: אימות קטלוג ספרים
שקלו סכמת XSD זו שדורשת שלספרים יהיו מזהים מסוג integer ומחירים מסוג decimal:
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>XML לא תקין כמו <book id="abc"><price>not-a-number</price></book>ייכשל באימות עם שגיאות אילוץ טיפוס הן עבור מאפיין ה-ID והן עבור אלמנט המחיר.
מקרי שימוש נפוצים
מפתחים משתמשים באימות XML Schema בעת אינטגרציה עם SOAP APIs, אימות קובצי תצורה או עיבוד פורמטים להחלפת נתונים. תרחישים נפוצים כוללים אימות תגובות API מול סכמות שפורסמו, בדיקת קובצי תצורה לפני פריסה והבטחת איכות נתונים בצינורות ETL. המאמת שימושי במיוחד לתפיסת אי-התאמות טיפוסים, אלמנטים נדרשים חסרים וסדר אלמנטים שגוי לפני שהנתונים מגיעים למערכות פרודקשן.
מנוע האימות והמגבלות
כלי זה משתמש ב-libxml2 דרך ה-binding של libxmljs ל-Node.js, ומספק תאימות ל-XML Schema 1.0. המאמת מעבד סכמות במלואן בצד השרת מטעמי אבטחה ואינו מושך משאבים חיצוניים או פותר imports מבוססי רשת. עיבוד ישויות חיצוניות (XXE) מושבת לצורך בטיחות. includes ו-imports של סכמות עובדים רק אם כל הסכמות המופנות מסופקות בתוך תוכן ה-XSD הראשי.
- גישה לרשת:חסומה מטעמי אבטחה
- ייבוא סכמות:חייב להיות inline, ללא פתרון חיצוני
- ישויות חיצוניות:מושבת (הגנת XXE)
- מגבלות עיבוד:חלות מגבלות גודל סבירות
עיבוד בצד השרת לעומת עיבוד בצד הלקוח
בדיקות תקינות מבנית (well-formedness) של XML בצד הלקוח מספיקות לאימות תחביר בסיסי. עם זאת, אימות XSD דורש מנוע ייעודי משום שדפדפנים אינם כוללים מעבדי XML Schema. אימות בצד השרת מבטיח תוצאות עקביות, מטפל בתכונות סכימה מורכבות כמו ירושה וייבוא, ומספק בידוד אבטחתי מפני תוכן XML שעלול להיות זדוני.