XSL を使用した Web サービス アプリケーションの変換
Web サービス アプリケーションに関する一般的な問題は、実際のバックエンド ソフトウェアが XML をサポートしていない (または、少なくとも Web サービスで使用される標準化された XML をサポートしていない) ことです。この問題を解決するために、多くのアーキテクチャでは、受信した XML を解釈し、バックエンド システムが認識できるより適切な形式に変換する変換フェーズを実装しています。 XML をさまざまな形式に変換する方法は数多くありますが、拡張可能なスタイルシート言語 (eXtensibleStylesheet Language、XSL) は、堅牢で標準的な XML フレンドリーなソリューションを提供します。
よくある質問
XML メッセージとそれを処理するアプリケーションの間で変換が必要になる場合は、さまざまな方法があります。ただし、次のような一般的な問題が数多くあります。
ルックアップ
マッピング
集計
分割
数式
並べ替え
クエリ処理は、受信した値を受け入れ、それをターゲット システムの別の値にマップします。たとえば、XML の値は 309 ですが、アプリケーションに必要な値は「Uber Widget」です。
マッピングは基本的に、あるフィールドから別の値に値を再割り当てします。たとえば、XML では、CustomerAccountNumber という新しい要素に再割り当てする必要がある AccountNumber 要素がある場合があります。
集計処理は、XML の 2 つ以上の項目をバックエンド システムの 1 つの項目に結合することです。一般的な例は、姓と名のフィールドを 1 つの名前 (フィールド) に結合することです。分割は、XML 値を 2 つ以上の個別のコンポーネントに分割する集計の逆です。
数式処理には通常、新しいアプリケーションの値を取得するための 1 つ以上の XML 値の計算が含まれます。一例として、XML サブオーダーを使用して注文の合計金額を計算することが挙げられます。
最後に、並べ替えは、XML 内の項目の順序や構造を変更して、ターゲット システムが予期する順序や構造に適合させるプロセスです。
マッピング例
次に、例を使用してこのプロセスを詳しく見てみましょう。受信した XML がリスト 1 のようなものであると仮定します。
リスト 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 サービスから受け取った注文をリスト 2 の形式に変換することだけです。
リスト 2: アプリケーションの順序。最初に注意しなければならないことは、いくつかの要素をマップする必要があることです:
Order を NewOrder にマップ
AccountNumber を CustomerAccountNumber にマップ
Item を OrderItem にマップ
PricePer を CustomerPrice にマップ
次に、次のことを行う必要があります。 OrderItem 要素を OrderItems という新しい要素の下に再配置します。最後に、単価と数量に基づいて計算される小計という新しい要素を追加します。
マッピング変換は、テンプレート内で新しい要素を定義し、この新しい要素が受信した XML ドキュメント内の要素の値を持つように指定するだけなので、最も簡単です。項目の並べ替えは、項目サブテンプレートの呼び出しを OrderItems という新しい要素に配置することによって実行されます。最後に、単純な XPath 式を使用して計算を実行します。リスト 3 は、受信した XML をアプリケーション固有の XML に変換するために使用される XSL ドキュメントを示しています。
リスト 3:translate.xsl
<?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 を使用して Web サービス アプリケーションを翻訳する内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. module を使用したファイルへのログ出力:logging はカスタム レベルのログを生成し、指定したパスにログを出力できます ログ レベル: debug (デバッグ ログ) = 5) {clearTimeout (time) // すべての結果が取得された場合 10連続した時間が空です スケジュールされたタスクのログをクリアします}return}if(data.log_type==2){//新しいログが取得された場合 for(i=0;i

Caddy の概要 Caddy は強力で拡張性の高い Web サーバーであり、現在 Github 上に 38,000 以上のスターが付いています。 Caddy は Go 言語で書かれており、静的リソースのホスティングとリバース プロキシに使用できます。 Caddy には以下の主な特徴があります: Nginx の複雑な構成と比較して、元の Caddyfile 構成は非常にシンプルです; 提供する AdminAPI を通じて構成を動的に変更できます; デフォルトで自動 HTTPS 構成をサポートし、自動的に適用して構成できますHTTPS 証明書; 数万のサイトのデータに拡張可能; 追加の依存関係なしでどこでも実行可能; Go 言語で記述されているため、メモリの安全性がより保証されます。まずはCentOに直接インストールします

JavaAPI 開発における Web サーバー処理に Jetty7 を使用する インターネットの発展に伴い、Web サーバーはアプリケーション開発の中核部分となり、多くの企業でも注目を集めています。増大するビジネス ニーズを満たすために、多くの開発者が Web サーバー開発に Jetty の使用を選択しており、その柔軟性と拡張性は広く認識されています。この記事では、JavaAPI 開発における Jetty7 の使用方法を紹介します。

顔面遮蔽弾幕とは、映像内の人物を遮ることなく大量の弾幕が浮遊し、人物の背後から浮遊しているように見せることです。機械学習は数年前から普及していますが、これらの機能がブラウザでも実行できることは多くの人に知られていません。この記事では、ビデオ連発における実際的な最適化プロセスを紹介します。記事の最後に、適用可能なシナリオをいくつか示します。このソリューションを開くことを望んでいます。いくつかのアイデアがあります。 mediapipeDemo (https://google.github.io/mediapipe/) は、顔ブロック弾幕のオンデマンドアップアップロードの主流の実装原理を示していますサーバーのバックグラウンド計算により、ビデオ画面内のポートレート領域を抽出し、SVG ストレージに変換しますクライアントがビデオを再生している間、サーバーから SVG をダウンロードし、弾幕、ポートレートと組み合わせる

まず、frpって何?という疑問があると思います。簡単に言うと、frp はイントラネット侵入ツールであり、クライアントを設定すると、サーバー経由でイントラネットにアクセスできるようになります。現在、私のサーバーは Web サイトとして nginx を使用しており、ポート 80 が 1 つだけあります。では、FRP サーバーもポート 80 を使用したい場合はどうすればよいでしょうか?クエリ後、nginx のリバース プロキシを使用してこれを実現できます。追加: frps はサーバー、frpc はクライアントです。ステップ 1: サーバーの nginx.conf 構成ファイルを変更し、次のパラメータを nginx.conf の http{} に追加します。server{listen80

フォーム検証は Web アプリケーション開発において非常に重要なリンクであり、フォーム データを送信する前にデータの有効性をチェックして、アプリケーションのセキュリティ脆弱性やデータ エラーを回避できます。 Web アプリケーションのフォーム検証は、Golang を使用すると簡単に実装できます。この記事では、Golang を使用して Web アプリケーションのフォーム検証を実装する方法を紹介します。 1. フォーム検証の基本要素 フォーム検証の実装方法を紹介する前に、フォーム検証の基本要素が何であるかを知る必要があります。フォーム要素: フォーム要素は

Cockpit は、Linux サーバー用の Web ベースのグラフィカル インターフェイスです。これは主に、初心者/熟練ユーザーにとって Linux サーバーの管理を容易にすることを目的としています。この記事では、Cockpit アクセス モードと、CockpitWebUI から Cockpit への管理アクセスを切り替える方法について説明します。コンテンツ トピック: コックピット エントリ モード 現在のコックピット アクセス モードの確認 CockpitWebUI からコックピットへの管理アクセスを有効にする CockpitWebUI からコックピットへの管理アクセスを無効にする まとめ コックピット エントリ モード コックピットには 2 つのアクセス モードがあります。 制限付きアクセス: これは、コックピット アクセス モードのデフォルトです。このアクセス モードでは、コックピットから Web ユーザーにアクセスできません。

Web 標準は、W3C およびその他の関連組織によって策定された一連の仕様とガイドラインです。HTML、CSS、JavaScript、DOM、Web アクセシビリティおよびパフォーマンスの最適化の標準化が含まれます。これらの標準に従うことで、ページの互換性を向上させることができます。 、メンテナンス性とパフォーマンス。 Web 標準の目標は、Web コンテンツをさまざまなプラットフォーム、ブラウザー、デバイス上で一貫して表示および操作できるようにして、より優れたユーザー エクスペリエンスと開発効率を提供することです。
