Web服務應用程式存在的一個常見問題是,真正的後端軟體不支援xml(或至少不支援你Web服務所使用的標準化的XML)。要解決這個問題,許多架構都實作了一個翻譯階段,用來解釋收到的XML,並將它轉換成後端系統能夠辨識的更適當的格式。雖然將XML翻譯成不同的格式有很多種方式法,但是可擴展樣式表語言(eXtensibleStylesheet Language,XSL)提供了一個強健的、標準的和對XML友好的解決方案。
一些常見的問題
在XML訊息和將要處理它的應用程式之間,存在著許多可能需要翻譯的地方。但是,這也存在著許多常見的問題,包括:
查詢(Lookup)
映射(Mapping)
聚合(Aggregation)
分割(Splitting)
公式(Formulas )
重新排序(Reordering)
查詢處理會接受收到的值,並為目標系統將它對應到不同的值。例如,你的XML有一個值是309,但是應用程式需要的值是「Uber Widget」。
映射在本質上是將來自一個欄位的值重新指派為另一個值。例如,在XML裡,你可能有一個AccountNumber元素,它需要被重新指派成為一個叫做CustomerAccountNumber的新元素。
聚合處理是將兩個或更多來自XML的項目組合成一個用於後端系統的單一項目。一個常見的例子是將姓和名字段組合成單一的姓名(欄位)。分割是聚合的逆向操作,它是將XML的一個值分成兩個或更多分開的元件。
公式處理一般涉及對一個或更多XML值的計算,以獲得一個用於新應用程式的值。一個例子是利用XML裡子定單來計算定單的總量。
最後,重排序是更改XML裡項目的序列或結構的處理,這樣它們就能夠符合目標系統所期望的序列或結構。
映射舉例
現在讓我們用一個例子來更仔細地看看這個過程。我們假設收到的XML就像Listing 1裡面的一樣:
Listing 1: webserviceorder.xml
<?xml version="1.0" ?> <Order> <OrderNumber>8100</OrderNumber> <AccountNumber>99213</AccountNumber> <Item> <SKU>2388</SKU> <Description>Uber Widget</Description> <Quantity>15</Quantity> <PRicePer>10.95</PricePer> </Item> <Item> <SKU>6273</SKU> <Description>Flangeoid</Description> <Quantity>10</Quantity> <PricePer>52.00</PricePer> </Item> </Order>
現在,我們的訂單系統需要一個稍微不同的格式。我們所需要做的是將從Web服務收到的訂單轉換成為Listing 2裡的這種格式。
Listing 2: applicationorder.xml
<?xml version="1.0" encoding="UTF-8" ?> <NeWorder> <CustomerAccountNumber>99213</CustomerAccountNumber> <CustomerOrderNumber>8100</CustomerOrderNumber> <OrderItems> <OrderItem> <SKU>2388</SKU> <CustomerPrice>10.95</CustomerPrice> <Quantity>15</Quantity> <Subtotal>164.25</Subtotal> </OrderItem> <OrderItem> <SKU>6273</SKU> <CustomerPrice>52.00</CustomerPrice> <Quantity>10</Quantity> <Subtotal>520</Subtotal> </OrderItem> </OrderItems> </NewOrder>
翻譯
由於這是一個簡化的例子,所以我們在轉換格式的時候需要對XSL模板所做的只有不多的事情。我們要注意的第一件事是:我們必須映射一些元素:
把Order映射成NewOrder
把AccountNumber映射成CustomerAccountNumber
把OrderNumber映射成CustomerOrderNumber
把Item映射成OrderItem
把PricePer映射成CustomerPrice
#然後,我們需要將OrderItem元素重新安排到一個叫做OrderItems的新元素之下。最後,我們加入一個叫做Subtotal的新元素,它會根據(商品)單價和數量進行計算。
映射翻譯是最簡單的,因為你只需要簡單地在範本裡定義新元素,並指明這個新元素擁有來自收到的XML文件裡元素的值。對Items的重排序是透過將Item子模板呼叫放進一個叫做OrderItems的新元素裡實現的。最後,使用一個簡單的XPath表達式來進行計算。 Listing 3顯示了用來將收到的XML轉換成針對應用程式的XML的XSL文件。
Listing 3: translate.xsl
<?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates select="Order" /> </xsl:template> <xsl:template match="Order"> <NewOrder> <CustomerAccountNumber><xsl:value-of select="AccountNumber" /></CustomerAccountNumber> <CustomerOrderNumber><xsl:value-of select="OrderNumber" /></CustomerOrderNumber> <OrderItems> <xsl:apply-templates select="Item" /> </OrderItems> </NewOrder> </xsl:template> <xsl:template match="Item"> <OrderItem> <SKU><xsl:value-of select="SKU" /></SKU> <CustomerPrice><xsl:value-of select="PricePer" /></CustomerPrice> <Quantity><xsl:value-of select="Quantity" /></Quantity> <Subtotal><xsl:value-of select="PricePer * Quantity" /></Subtotal> </OrderItem> </xsl:template> </xsl:stylesheet>
以上就是用XSL翻譯Web服務應用程式的內容,更多相關內容請關注PHP中文網(www.php.cn)!

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。

XML在RSS中的核心作用是提供一種標準化和靈活的數據格式。 1.XML的結構和標記語言特性使其適合數據交換和存儲。 2.RSS利用XML創建標準化格式,方便內容共享。 3.XML在RSS中的應用包括定義feed內容的元素,如標題和發布日期。 4.優勢包括標準化和可擴展性,挑戰包括文件冗長和嚴格語法要求。 5.最佳實踐包括驗證XML有效性、保持簡潔、使用CDATA和定期更新。

rssfeedsarexmldocuments usedforcontentAggregation and distribution.totransformthemintoreadableContent:1)parsethethexmlusinglibrarieslibrariesliblarieslikeparserinparserinpython.2)andledifferentifferentrssssssssssssssssssssssssssssssssssssssssssssssersions andpotentionparsingrorS.3)

JSONFeed是一種基於JSON的RSS替代方案,其優勢在於簡潔性和易用性。 1)JSONFeed使用JSON格式,易於生成和解析。 2)它支持動態生成,適用於現代Web開發。 3)使用JSONFeed可以提升內容管理效率和用戶體驗。

如何構建、驗證和發布RSSfeeds? 1.構建:使用Python腳本生成RSSfeed,包含標題、鏈接、描述和發布日期。 2.驗證:使用FeedValidator.org或Python腳本檢查RSSfeed是否符合RSS2.0標準。 3.發布:將RSS文件上傳到服務器,或使用Flask動態生成並發布RSSfeed。通過這些步驟,你可以有效管理和分享內容。

確保XML/RSSfeeds安全性的方法包括:1.數據驗證,2.加密傳輸,3.訪問控制,4.日誌和監控。這些措施通過網絡安全協議、數據加密算法和訪問控制機制來保護數據的完整性和機密性。

XML是一種標記語言,用於存儲和傳輸數據,RSS是一種基於XML的格式,用於發布頻繁更新的內容。 1)XML通過標籤和屬性描述數據結構,2)RSS定義特定標籤發布和訂閱內容,3)使用Python的xml.etree.ElementTree模塊可以創建和解析XML,4)XPath表達式可查詢XML節點,5)feedparser庫可解析RSSfeed,6)常見錯誤包括標籤不匹配和編碼問題,可用xmllint驗證,7)使用SAX解析器處理大型XML文件可優化性能。

XML是一種用於數據存儲和交換的標記語言,RSS是基於XML的格式,用於發布更新內容。 1.XML定義數據結構,適合數據交換和存儲。 2.RSS用於內容訂閱,解析時使用專門庫。 3.解析XML可使用DOM或SAX,生成XML和RSS需正確設置元素和屬性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),