מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מה
מדיניות טרנספורמציה של XSL מחילה טרנספורמציות שפה מותאמות אישית בגיליון סגנונות (XSLT) מותאמות אישית על הודעות XML שמאפשרות להמיר אותן מ-XML לפורמט אחר, כמו XML, HTML או פשוט טקסט. המדיניות הזו משמשת לעיתים קרובות לשילוב אפליקציות שתומכות ב-XML, אבל נדרשות פורמטים שונים של XML לאותם נתונים.
דוגמאות
בדוגמאות הבאות מוצגים כל המשאבים בתהליך טרנספורמציה של XSL.
מדיניות XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
מדיניות XSL פשוטה. עבור לדוגמה הבאה כדי לראות את גיליון הסגנון של ה-XSX שאליו קיימת הפניה
המדיניות (my_transform.xsl
). הרכיב <Source>
חשוב.
לדוגמה, אם ה-XML שרוצים לשנות נמצא בתגובה, הטרנספורמציה לא
יתרחשו אלא אם תגדירו את המקור כ-response
(והמדיניות מצורפת אל
). אבל במקרה הזה, ה-XML המיועד לטרנספורמציה נמצא בבקשה.
גיליון סגנונות של XLSX ->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:text><Life></xsl:text> <xsl:value-of select="$newline"/> <xsl:text>Here are the odd-numbered items from the list:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="list/listitem"> <xsl:if test="(position() mod 2) = 1"> <xsl:number format="1. "/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:if> </xsl:for-each> <xsl:text></Life></xsl:text> </xsl:template> </xsl:stylesheet>
גיליון הסגנונות my_transform.xsl
שיש אליו הפניה במדיניות. מעבר אל
כדי לראות דוגמה להודעת XML נכנסת.
הודעה ->
<?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list>
הודעה לדוגמה בבקשה (מצוינת בסעיף של המדיניות)
רכיב <Source>request</Source>
בדוגמה הראשונה).
מסר שעבר שינוי
<Life> Here are the odd-numbered items from the list: 1. A Love Supreme 3. Here Come the Warm Jets 5. London Calling 7. The Joshua Tree </Life>
ההודעה שהשתנתה לאחר שגיליון הסגנון של ה-XSLT מהדוגמאות האלה מוחל על ה-XML הודעה.
הפניה לרכיב
מגדירים מדיניות טרנספורמציה של XSL באמצעות הרכיבים הבאים.
שם השדה | תיאור | |||
---|---|---|---|---|
שם (חובה) |
שם המדיניות. תווים שבהם אפשר להשתמש בשם מוגבלים ל:
A-Z0-9._\-$ % אבל ממשק המשתמש לניהול אוכף הגבלות נוספות,
לדוגמה, הסרה אוטומטית של תווים שהם לא אלפאנומריים.
|
|||
מקור (אופציונלי) |
מכיל את ההודעה שממנה יש לחלץ את המידע. בדרך כלל הערך הזה הוא
ל-request או ל-response , תלוי אם ההודעה
אמורים לקבל טרנספורמציה נכנסת או יוצאת.
|
|||
OutputVariable (משתנה פלט) (אופציונלי) |
משתנה שמאחסן את הפלט של הטרנספורמציה. המשתנה OutputVariable לא יכול להיות מסוג הודעה, כלומר, ההודעה לא יכולה להיות 'message', 'בקשה' או 'תגובה'. אתם צריכים להגדיר את הרכיב הזה כמשתנה מותאם אישית, ואז לצרוך את המשתנה הזה. כדי להחליף את תוכן ההודעה בפלט של הטרנספורמציה, צריך למחוק את לרכיב מסוים. לדוגמה, אם אתם ממירים הודעה ל-HTML, אל תכללו את הקוד הזה. לרכיב מסוים. |
|||
ResourceURL (חובה) | קובץ ה-XSLT שישמש להמרת ההודעה. | |||
פרמטרים (אופציונלי) | התעלמות מ-UnresolvedVariables (אופציונלי) |
המערכת מתעלמת משגיאות במשתנים שלא נפתרו בהוראות של סקריפט XLS.
הערכים התקפים: true/false
ערך ברירת המחדל: false
|
||
פרמטר (אופציונלי) | name (חובה) |
פרמטרים תומכים בשימוש בפרמטר XSL בגיליונות סגנון, שבהם השם שמוסיפים
כאן במדיניות מופיע שם הפרמטר XSL. לדוגמה, אם תזין שם של
'uid', ה-XSL עשוי להיראות כך: הפרמטר מקבל את הערך שלו מהפניה למשתנה הקשר (שמזוהה באמצעות
המאפיין דוגמה ומידע נוסף זמין בכתובת http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (אופציונלי) |
מציינת את ההפניה שממנה נובעת הערך ממשתנה. לדוגמה, אם
"uid" הפרמטר צריך לקבל את הערך שלו ממשתנה שנקרא authn.uid, הפרמטר
הרכיב ייראה כך: אם משתמשים במאפיין הזה, אין להשתמש במאפיין הערך. |
|||
ערך (אופציונלי) |
אפשר להשתמש במאפיין הזה כדי לכתוב בתוך הקוד את ערך הפרמטר. אם משתמשים במאפיין הזה, אין להשתמש במאפיין ref. |
הערות שימוש
ה-XSX מוטמע בקובץ .xsl
עצמאי שמאוחסן ב-API
שרת proxy בדומיין /resources/xsl
. מדיניות ה-XSL רק מפנה לקובץ ה-XSL. צפייה
קובצי משאבים למידע נוסף.
מדיניות ה-XSL דורשת שני מקורות קלט:
- השם של גיליון סגנונות XLS, שמכיל קבוצה של כללי טרנספורמציה) המאוחסן בקובץ
שרת proxy ל-API מתחת ל-
/resources/xsl
- מקור ה-XML שיש לשנות (בדרך כלל הודעת בקשה או הודעת תשובה)
אין תמיכה ב-<xsl:include>
וב-<xsl:import>
.
Apigee Edge מסתמך על Saxon XL , ותומך ב-XLS 1.0 ו-2.0.
התייחסות לשגיאות
שגיאות בזמן ריצה
השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.
קוד שגיאה | סטטוס HTTP | סיבה | תיקון |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
השגיאה הזו מתרחשת אם משתנה ההודעה או המחרוזת שצוינו ברכיב <Source> של מדיניות ה-XSL Transform הם מחוץ להיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או שלא ניתן לפענח אותם (לא מוגדר).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | השגיאה הזו מתרחשת אם המטען הייעודי (payload) ב-XML של הקלט אינו זמין או שפורמטו שגוי, או אם מדיניות XSLTransform נכשלת או שלא ניתן לבצע טרנספורמציה של קובץ ה-XML של הקלט בהתאם לכללי הטרנספורמציה שצוינו בקובץ ה-XSL. יכולות להיות סיבות רבות לכישלון של מדיניות XSLTransform. סיבת הכשל בהודעת השגיאה תספק מידע נוסף על הסיבה. | build |
שגיאות בפריסה
השגיאות האלה יכולות להתרחש כשפורסים שרת proxy שכולל את המדיניות הזו.
שם השגיאה | סיבה | תיקון |
---|---|---|
XSLEmptyResourceUrl |
אם הרכיב <ResourceURL> במדיניות XSL Transform ריק, הפריסה של שרת ה-proxy של ה-API תיכשל. |
build |
XSLInvalidResourceType |
אם סוג המשאב שצוין באלמנט <ResourceURL> של מדיניות XSL Transform אינו מסוג xsl , הפריסה של שרת ה-proxy של ה-API תיכשל. |
build |