ホームページ  >  記事  >  バックエンド開発  >  XML ベースのデスクトップ アプリケーションのグラフィック コードの詳細な紹介

XML ベースのデスクトップ アプリケーションのグラフィック コードの詳細な紹介

黄舟
黄舟オリジナル
2017-03-06 16:48:031771ブラウズ

前述したように、XSL を通じて、同じデータをさまざまなデータ形式でエンド顧客に送信できます。XSL ファイルは、データの表示モードを記述し、多数の XSL を同じ XML ドキュメントに接続して、HTML に基づいた異なる表現を提供できます。実際、XML ベースのデスクトップ アプリケーションを構築できます。 Windows アーキテクチャに基づいたグラフィカル表現を以下に示します。

XML ベースのデスクトップ アプリケーションのグラフィック コードの詳細な紹介

このアプローチを採用することの主な利点は 2 つあります。1 つ目は、プラットフォームや言語に依存しない方法でデータを操作できること、2 つ目は、プログラミングなしで実行できることです。同じデータの異なるビュー表現。

実際には、元のデータをXML形式に変換し、それをHTML形式で表現できるツールが必要です。実際、IE5.0 では、XSL のサポートを通じて、データのさまざまなビューを実現できます。組み込みの XSL プロセッサを使用して、XML ストリームから出力を生成できます。開発者はさまざまな XSL スクリプトを作成し、IE の組み込み XSL プロセッサを使用して処理できます。一方、ADO コンポーネントの固有関数を使用してレコードセットを XML 形式に変換できます。サンプル コードは次のとおりです。

 If Dir(XML_FILE) = "" Then
    rs.Save XML_FILE, adPersistXML
  End If

  这里常量adPersistXML表示使用一个XML纲要来保存记录集的内容

  我们再仔细看一下Recordset对象的Save方法,其定义如下:

   Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])

すべてのパラメーターはオプションですが、初めてレコードセットをディスクに保存するときは、ファイルの名前を指定する必要があります。このメソッドを実行するときに有効なフィルターが存在する場合、フィルターを通過したデータのみが保存されます。 Recordset オブジェクトのメソッド Close を呼び出して Recordset オブジェクトを閉じると、ファイルは自動的に閉じられます。 Recordset がディスクに保存されたら、Open メソッドを使用してそれを読み取ることができます。具体的なコードは次のとおりです。

   rs.open "c:\myrs.xml"

次に、IE5 の XSL データの表示に関する問題を分析します。 W3C のドラフト標準。ここでは、VB を使用して、ADO インターフェイスを通じてデータ ソース内のデータにアクセスするアプリケーションを構築する方法について説明します。結果のレコード セットは、さまざまな形式で表示できます。 XSL ドキュメントを記述することで、さまざまなビューを自由に追加できます。

たとえば、結果セットを抽出したら、VB の DataGrid コントロールを使用してデータを簡単に表示できます。具体的なコードは次のとおりです。

 Set rs = New ADODB.Recordset
   rs.CursorLocation = adUseClient

   queryString = "select * from Employees"
   rs.Open queryString, "NorthWind" 'NorthWind是微软的示例数据库,很容易在
    'access或者是SQL SERVER中找到
   rs.ActiveConnection = Nothing 
   Set DataGrid1.DataSource = rs

多くの場合、これの 1 つのビューでは十分ではなく、必要があります。各フィールドは厳密に管理されています。テーブル全体のレコードは、テーブルとツリーの両方の形式で表現できます。複数のビューを提供すると、ユーザーはより快適に感じることができます。 XML と XSL を組み合わせると、IE5 の WebBrowser コントロールの機能を最大限に活用して直接ブラウジングできます。
ADO コンポーネント自体は、生成する XML ドキュメントから XSL ドキュメントを生成しません。これは、データの表示方法を変更するための汎用 XSL ドキュメントを自分で作成できないという意味ではありません。たとえば、ADO レコード セットを含む XML ドキュメントを表形式で自動的に表示するには、XML ドキュメントの先頭に次のコードを追加する必要があります:

  <?xml-stylesheet type="text/xsl" href="simple.xsl"?>

この simple.xsl ファイルは同じディレクトリに配置する必要があります。 2 つのネストされたループが含まれる XML ドキュメントとして、最初のループは要素のすべての属性を列挙し、2 番目のループはレコードセット内のすべてのレコードを出力するために使用されます。

simple.xsl ファイルのコードは次のように表されます:

<?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" 
   xmlns:html="http://www.w3.org/TR/REC-html40"
   result-ns=""
   language="JScript">
  <xsl:template match="/">
  <html>
  <head>
  <title>RowsetSchema</title>
  <style>
   .stdText 
   {
    font-Family:verdana;
    font-Size: 9px;
   }
  </style>
  </head>
  <body>
   <table width="100%" border="1">
   <xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute">
    <th class="stdText"><xsl:value-of select="@type" /></th>
    </xsl:for-each>
    <xsl:for-each select="xml/rs:data/z:row">
    <tr>
     <xsl:for-each select="@*">
     <td class="stdText" valign="top"><xsl:value-of match="@*"/></td>
     </xsl:for-each>
    </tr>
    </xsl:for-each>
   </table>
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>

ここで注意する必要があるのは、指定されたノードのすべての属性を列挙するための構文です。実際には、任意の 要素の文字列 @* は、すべての属性を表します (属性の名前の前には常に @ が必要です。この値を使用するには、 ノードで、それに一致する属性を設定する必要があります。 by @*.

Pass WebBrowser コントロールをデータ閲覧のエンジンとして使用すると、XML と XSL を使用してコンテンツをプレゼンテーション層から分離できます。このモデルでは、XSL は (プログラミング言語ではなく) マークアップ言語として機能します。 ) XML データの表示方法を説明します。新しいビューを追加するには、対応する XSL ドキュメントを追加するだけで済みます。実際、この Web ベースのドキュメント/ビュー モデルは、MFC のドキュメント/ビュー モデルと比較できます。

最後に、XSL と CSS の違いは何ですか? 重要な違いは、XSL は XML ドキュメント全体に適用されるのに対し、CSS は HTML タグの表示形式にのみ影響するということです。さらに、XSL は、XML データ ストリームから HTML 出力を生成するときに CSS を使用できます。コレクションは、ファイルの処理に使用されます。CSS は属性です。

上記は、XML デスクトップ アプリケーションのグラフィック コードの詳細については、PHP 中国語 Web サイト (www.php.cn) に基づいています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。