3.3 תאימות של מפעילי משתמשים
מפעיל - משתמש חייב לעמוד בכל הקריטריונים הבאים:
1. ע"מ להיות עיקביים עם XML 1.0 , המפעיל-משתמש חייב לבצע ניתוח ( parsing ) ולהעריך את מסמך ה- XHTML כדי לוודא שהוא מעוצב היטב.
אם המפעיל-משתמש מצהיר על עצמו כמפעיל -משתמש המבצע אימות (validating agent), עליו גם לאמת מסמכים כנגד ה- DTD שלהם, על פי XML.
2. אם המפעיל-משתמש מכריז כי הוא תומך באמצעים/יכולות המוגדרות במפרט זה או הנדרשות במפרט זה באמצעות התייחסות נורמטיבית, עליו לעשות זאת באופן שמתאים להגדרת האמצעי/היכולת.
3. כשמפעיל-משתמש מעבד מסמך XHTML כ- XML כללי, הוא יזהה רק את המאפיינים מסוג ID כמזהי-מקטעים (הכוונה למאפיין id ברוב האלמנטים של XHTML).
4. אם מפעיל-משתמש נתקל באלמנט לא מוכר, עליו להציג את תוכן האלמנט.
5. אם מפעיל-משתמש נתקל באלמנט לא מוכר, עליו להתעלם מכל מפרט האלמנט (ז"א המאפיין וערכו).
6. אם מפעיל-משתמש נתקל בערך מאפיין לא מוכר, עליו להשתמש בברירת המחדל של ערך המאפיין.
7. אם המפעיל-משתמש נתקל בהתייחסות לישות (שאינה אחת מהישויות שהוגדרו מראש), אשר המפעיל-משתמש לא עיבד שום הצהרה עבורה (מה שעשוי לקרות אם ההצהרה מצויה בתת-קבוצה חיצונית שהמפעיל-משתמש טרם קרא), יש להציג את ההתייחסות לישות כתווים אשר מרכיבים את ההתייחסות (החל ב- & ובסיום יש לרשום ;).
8. כאשר המפעיל-משתמש מציג תוכן: אם המפעיל-משתמש נתקל בתווים או בהתייחסויות לישויות שהן תווים, אשר מוכרים לו אך אינם ניתנים להצגה, על המפעיל-משתמש להציג את המסמך באופן שיהיה ברור למשתמש שהצגה רגילה לא התבצעה.
9. התווים להלן מוגדרים ב- XML כתווים בעלי "רווח לבן":
רווח (;0020X#&)
טאב (;0009X#&)
D000X#&;) enter)
A000X#&;) Line feed)
מעבד ה- XML מנרמל קודים שונים של סופי השורה לתו line-feed יחיד, אשר מועבר לאפליקציה.
בנוסף, מפעיל-משתמש XHTML חייב להתייחס גם לתווים הבאים כתווי רווח לבן :
C000X#&;) Form feed)
B000X#&;) Zero width space)
באותם אלמנטים בהם מאפיין 'xml:space' נקבע כ'preserve', על המפעיל-משתמש להשאיר את כל תווי הרווח הלבן כפי שהם (מלבד תווי רווח לבן אשר מתחילים ומסיימים, אותם יש להסיר).
במקרים אחרים, יש לטפל ברווח לבן לפי הכללים הבאים:
* יש להסיר את כל הרווחים הלבנים מסביב ל- block elements.
* יש להסיר הערות ואלה אינם משפיעים על הטיפול ברווחים לבנים.
יש להתייחס לתו רווח-לבן אחד משני צידי הערה כשני תווים של רווח לבן.
* יש להסיר את הרווח הלבן המוביל והמסיים בתוך block element.
* יש להפוך את תווי line- feed בתוך block element לרווח (אלא במקרים שבהם
מאפיין xml:space מכוון
ל- 'preserve' ).
* יש לצמצם סדרה של רווחים לבנים לתו רווח לבן יחיד (אלא במקרים שבהם מאפיין xml:space מכוון ל- 'preserve' ).
* ביחס להצגה: המפעיל-משתמש חייב להציג את התוכן באופן שמתאים לשפה בה
נכתב התוכן.
בשפות אשר הכתב העיקרי הוא לטיני, משתמשים בדר"כ בתו הרווח של ASCII כדי לקודד גבולות דקדוקיים של מילים ורווחים לבנים טיפוגרפיים.
בשפות אשר הכתב הוא מסוג סנסקריט, תאילנדי וכו', ניתן לקודד גבולות דקדוקיים באמצעות תו 'ZW 'space אך אלה לא יוצגו בפלט כרווח לבן טיפוגרפי.
שפות הדומות לערבית יכולות לקודד רווח לבן טיפוגרפי באמצעות תו רווח, אך הן גם יכולות להשתמש בתו רווח ZW כדי להגדיר גבולות דקדוקיים (פנימיים) (מה שנראה לעין האנגלית, כמילים בערבית הן בעצם מספר מלים למשל kitAbuhum'=kitAbu-hum' - their book' ).
השפות בכתב סיני אינן מקודדות גבולות באופן הזה ואינן משתמשות ברווח לבן טיפוגרפי באופן כזה.
רווח לבן בערכי מאפיינים יעובד לפי XML.
אף שלא קיימת דרישה שמסמכי 1.0 XHTML חייבים להיות מתאימים למפעילי - משתמשים קיימים, בפועל קל להשיג זאת.
ראה הנחיות
נספח 3.