SAP UI5 应用的 OData XML 格式的元数据请求解析原理,基于 DOMParser
前一篇文章SAP UI5 應用的 OData 元數(shù)據(jù)請求響應的解析原理分析我們介紹了 SAP UI5 OData 元數(shù)據(jù)解析的入口。本文繼續(xù)介紹基于 DOMParser 的 XML 數(shù)據(jù)解析原理。
入口如下:
var xmlParse = function (text) {/// <summary>Returns an XML DOM document from the specified text.</summary>/// <param name="text" type="String">Document text.</param>/// <returns>XML DOM document.</returns>/// <remarks>This function will throw an exception in case of a parse error.</remarks>var domParser = window.DOMParser && new window.DOMParser();var dom;if (!domParser) {dom = msXmlParse(text);if (!dom) {xmlThrowParserError("XML DOM parser not supported");}return dom;}dom = domParser.parseFromString(text, “text/xml”); 這是一個原生方法調(diào)用。
成功解析出的 dom 元素對象:
下面開始遍歷這個 dom 對象:
拿到第一個元素:
遞歸操作:
解析成功的 metadata:
解析出的 entityType:
解析成功的元數(shù)據(jù),存儲在 response.data 里:
觸發(fā) metadata 加載成功的 callback:
拋出 loaded 事件:
該事件的參數(shù)為 metadata 的 json 對象格式和 xml 文本:
OData 元數(shù)據(jù)就緒后,執(zhí)行初始化操作:
遍歷所有的 binding 數(shù)據(jù)源。
SAP UI5 使用的 datajs.js, 是一種開源的跨瀏覽器 JavaScript 程序庫,可以讓開發(fā)人員在瀏覽器環(huán)境里消費 OData 服務。
在 SAP UI5 庫里位于路徑 sap/ui/thirdparty 下面,SAP 對該文件也做了一些自己的修改,通過注釋 BEGIN: MODIFIED BY SAP 和 END: MODIFIED BY SAP 來標識。
一個例子如下:
odata.defaultHandler = {read: function (response, context) {/// <summary>Reads the body of the specified response by delegating to JSON and ATOM handlers.</summary>/// <param name="response">Response object.</param>/// <param name="context">Operation context.</param>// ##### BEGIN: MODIFIED BY SAP// added response.body check and removed assigned(response.body) call...for the case that if body is empty string...don't process any response body dataif (response && response.body && response.headers["Content-Type"]) {// ##### END: MODIFIED BY SAPdispatchHandler("read", response, context);}},更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的SAP UI5 应用的 OData XML 格式的元数据请求解析原理,基于 DOMParser的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传大众汽车将解雇Cariad软件部门高管
- 下一篇: 视频怎么AI换脸 视频AI换脸简单几步搞