Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Nội dung
Chính sách Chuyển đổi BII áp dụng Chuyển đổi ngôn ngữ biểu định kiểu mở rộng (XSLT) tùy chỉnh cho Thông báo XML, cho phép bạn chuyển đổi chúng từ XML sang định dạng khác, chẳng hạn như XML, HTML hoặc văn bản thuần tuý . Chính sách này thường được dùng để tích hợp các ứng dụng hỗ trợ XML, nhưng những ứng dụng đó yêu cầu định dạng XML khác nhau cho cùng một dữ liệu.
Mẫu
Các mẫu sau đây cho thấy tất cả tài nguyên trong quy trình chuyển đổi BII.
Chính sách {8/} ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Chính sách BII đơn giản. Chuyển đến ví dụ tiếp theo để xem biểu định kiểu KML được tham chiếu trong
chính sách (my_transform.xsl
). Phần tử <Source>
rất quan trọng.
Ví dụ: nếu XML bạn muốn chuyển đổi nằm trong phản hồi, thì phép biến đổi sẽ không
xảy ra trừ khi bạn đặt Nguồn thành response
(và chính sách này đi kèm với
quy trình phản hồi). Nhưng trong trường hợp này, XML cần chuyển đổi nằm trong yêu cầu.
Biểu định kiểu KML ->
<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>
Biểu định kiểu my_transform.xsl
được tham chiếu trong chính sách. Chuyển đến phần tiếp theo
mẫu để xem ví dụ về thông báo XML đến.
Thông báo ->
<?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>
Thông báo mẫu trong yêu cầu (được nêu trong
<Source>request</Source>
phần tử trong mẫu đầu tiên).
Thông báo đã chuyển đổi
<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>
Thông báo đã chuyển đổi sau biểu định kiểu XML từ các mẫu này sẽ được áp dụng cho XML .
Tham chiếu phần tử
Định cấu hình chính sách Chuyển đổi {8/} bằng cách sử dụng các phần tử sau.
Tên trường | Mô tả | |||
---|---|---|---|---|
Tên (Bắt buộc) |
Tên chính sách. Bạn chỉ có thể sử dụng các ký tự trong tên này:
A-Z0-9._\-$ % . Tuy nhiên, giao diện người dùng Quản lý thực thi thêm các hạn chế,
chẳng hạn như tự động xoá các ký tự không phải là chữ và số.
|
|||
Nguồn (Không bắt buộc) |
Chứa thông báo mà thông tin cần được trích xuất. Thông thường, giá trị này là
được đặt thành request hoặc response , tuỳ thuộc vào việc thông báo được
chuyển đổi là hướng đến hoặc đầu ra.
|
|||
OutputVariable (Không bắt buộc) |
Một biến lưu trữ đầu ra của phép biến đổi. OutputVariable không được là của loại Thông báo, tức là loại Thông báo không được là "tin nhắn", "yêu cầu" hoặc "phản hồi". Bạn nên đặt phần tử này thành biến tuỳ chỉnh, rồi sử dụng biến đó. Để thay thế nội dung thông báo bằng kết quả của phép biến đổi, hãy xoá thuộc tính này . Ví dụ: nếu bạn đang chuyển đổi một thư thành HTML thì đừng sử dụng thuộc tính này . |
|||
ResourceURL (Bắt buộc) | Tệp XML được dùng để chuyển đổi thông báo. | |||
Thông số (Không bắt buộc) | ignoreUnresolvedVariables (Không bắt buộc) |
Bỏ qua mọi lỗi biến chưa được giải quyết trong hướng dẫn tập lệnh XML.
Giá trị hợp lệ: true/false
Giá trị mặc định: false
|
||
Thông số (Không bắt buộc) | tên (Bắt buộc) |
Thông số hỗ trợ sử dụng tham số {8/} trong biểu định kiểu của bạn, trong đó tên bạn thêm
ở đây trong chính sách là tên của tham số BII. Ví dụ: nếu bạn nhập tên của
"uid", ABI của bạn có thể có dạng như sau: Tham số nhận giá trị từ tham chiếu đến biến ngữ cảnh (được xác định theo
thuộc tính Để tham khảo ví dụ và thông tin khác, hãy xem http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (Không bắt buộc) |
Chỉ định tham chiếu lấy nguồn giá trị từ một biến. Ví dụ: nếu một
"uid" tham số cần lấy giá trị từ biến có tên là "authn.uid", tham số
phần tử sẽ có dạng như sau: Nếu bạn sử dụng thuộc tính này thì đừng sử dụng thuộc tính giá trị. |
|||
giá trị (Không bắt buộc) |
Bạn có thể sử dụng thuộc tính này để mã hoá cứng giá trị của tham số. Nếu bạn sử dụng thuộc tính này thì đừng sử dụng thuộc tính tham chiếu. |
Lưu ý về cách sử dụng
ViewModel được triển khai trong tệp .xsl
độc lập, được lưu trữ trong API
trong /resources/xsl
. Chính sách {8/} chỉ tham chiếu đến tệp {8/}. Xem
Tệp tài nguyên để xem thêm.
Chính sách {8/} yêu cầu hai dữ liệu đầu vào:
- Tên của biểu định kiểu ViewModel, chứa một bộ quy tắc chuyển đổi) được lưu trữ trong
Proxy API trong
/resources/xsl
- Nguồn của XML cần chuyển đổi (thường là yêu cầu hoặc thông báo phản hồi)
<xsl:include>
và <xsl:import>
không được hỗ trợ.
Apigee Edge dựa vào Saxon Randi trình xử lý và hỗ trợ Kerberos 1.0 và 2.0.
Tham chiếu lỗi
Lỗi thời gian chạy
Những lỗi này có thể xảy ra khi thực thi chính sách.
Mã lỗi | Trạng thái HTTP | Nguyên nhân | Khắc phục |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Lỗi này xảy ra nếu thông báo hoặc biến chuỗi được chỉ định trong phần tử <Source> của
chính sách Chuyển đổi NDK nằm ngoài phạm vi (không có sẵn trong quy trình cụ thể nơi
chính sách đang được thực thi) hoặc không thể được giải quyết (không được xác định).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Lỗi này xảy ra nếu tải trọng XML đầu vào không có sẵn/không đúng định dạng hoặc chính sách NDKTransform bị lỗi/không thể chuyển đổi tệp XML đầu vào dựa trên quy tắc chuyển đổi được cung cấp trong tệp NDK. Có thể có nhiều nguyên nhân khác nhau khiến chính sách NDKTransform không thành công. Lý do không thực hiện được trong thông báo lỗi sẽ cung cấp thêm thông tin về nguyên nhân. | build |
Lỗi triển khai
Những lỗi này có thể xảy ra khi bạn triển khai proxy chứa chính sách này.
Tên lỗi | Nguyên nhân | Khắc phục |
---|---|---|
XSLEmptyResourceUrl |
Nếu phần tử <ResourceURL> trong chính sách Chuyển đổi NDK trống, thì quá trình triển khai proxy API sẽ không thành công. |
build |
XSLInvalidResourceType |
Nếu loại tài nguyên được chỉ định trong phần tử <ResourceURL> của chính sách Chuyển đổi NDK không phải thuộc loại xsl thì sẽ không triển khai được proxy API. |
build |