משתמש:Tzafrir/XOP
XOP (XML-binary Optimized Packaging) היא צורת קידוד להעברת קבצים ובאופן כללי מידע בינארי בתוך קובץ XML. אחד השימושים הנפוצים לפורמט XML הוא כדרך סטנדרטית להעברת מידע מובנה בין יישומים שונים. XML הוא מעצם מהותו פורמט טקסטואלי, ואין דרך ישירה לכלול בו מידע לא טקסטואלי ללא קידוד נוסף. XOP היא אחת מצורות הקידוד הללו. XOP שימושי במיוחד בתחומי web services. הוא הוגדר כתקן ע"י ארגון W3C[1].
תאור
עריכהXOP מאפשרת ביצוע סריליזציה (תהליך במסגרתו מתבצעת המרת נתון או מבנה נתונים לתצורה ברת אחסון) של המידע ללא ביצוע ניתוח לקסיקלי (מעבר על המידע המתקבל תוך בדיקת דקדוק של הקלט ובדיקת חוקיות הקלט בהתאם להגדרת XML) של כל המידע הקיים במנה[דרושה הבהרה]. שימוש ב XOP מונע את הצורך לקודד את המידע באמצעות Base64 (המידע עובר במקטע מחוץ לבקשה), והודות לכך מתקבל רווח בכמות המידע שניתן להעביר עד ל 33% מגודל הבקשה.
קידוד מידע בינארי באמצעות bas64 לצורה טקסטואלית מוסיף בממוצע 33% תוספת לגודל המידע שקודד , כלומר עבור 100K של מידע בינארי יתקבלו מקטע נתונים בגודל 133K שייוצגו באמצעות תווי טקסט הניתנים לאיחסון בתוך מקטע XML.
הפעלת מנגנון XOP במנוע web services מחייב ביצוע בדיקת קיום XOP עבור כל בקשה נכנסת או יוצאת (גם אם לא מופיע ב-WSDL).
צורת אריזה
עריכהXOP עובד בצורה של XML infoset בודד. החלקים הבינארים של המידע הנוסף (למשל קבצים ) מוצאים מחוץ ל XML infoset , ה refernce בתוך ה XML infoset החדש מייוצג ע"י אלמנט "xop:Include". התוצאה שהתקבלה (XOP infoset ו המידע הבינארי) יכולה להשמר או להשלח תוצאה זו נקראת XOP Package
אריזות XOP
עריכהXop package ניתן להשתמש במספר סוגי אריזת נתונים, סוג אריזת הנתונים יגדיר איך ה XML infoset יציג ויעבד מידע.
הגדרות ה XOP מגדירות כי ניתן להשתמש ב-MIME בשביל לבצע את האריזה (ניתן לבחור בשיטות אחרות). אם משתמשים ב־MIME, מבנה ה־infoset מכיל XML בתחילת חלק ה־MIME, והמידע הבינארי נמצא בחלקי ה־MIME הנוספים. ניתן לבצע סרליזציה של חלקי ה־MIME האחרים ועל ידי כך להימנע מקידוד המידע הבינארי בתוך ה־XML.
דוגמה
עריכהדוגמה המראה איך מעבירים תמונה באמצעות web service:
MIME-Version: 1.0
Content-Type: Multipart/Related;boundary=MIME_boundary;
...
--MIME_boundary
Content-Type: application/xop+xml;
...
<soap:Envelope ...
<soap:Body>...
<m:photo xmlmime:contentType='image/png'>
<xop:Include xmlns:xop='http://www.w3.org/2004/08/xop/include'
href='cid:http://example.org/me.png'/></m:photo>
...
--MIME_boundary
Content-Type: image/png
Content-Transfer-Encoding: binary
Content-ID: <http://example.org/me.png>
// מידע בינארי של הבקשה
ראה גם
עריכההערות שוליים
עריכהקישורים חיצוניים
עריכה- W3C's XML-binary Optimized Packaging באתר W3C
[[קטגוריה:XML]]