Japan*
クイック ナビ|ホーム|各国のサイト
Microsoft*
Microsoft.comJapanサイトの検索:
サポート オンライン 
|高度な検索を使う|製品別 サポート ページ|製品別 お問い合わせ

PRB: MSXML DOM オブジェクトの別のバージョンをミックスすること推奨されていません。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。もし誤訳を発見された場合には、この KB 下部よりフィードバックをお寄せください。
文書番号:284856
最終更新日:2001年10月12日
リビジョン:1.0
目次

現象

MSXML parser によって公開されたMicrosoft XML(MSXML)Document Object Model(DOM)オブジェクトは、プログラムで XML ドキュメントを作成し、そしてプログラムで読み込む、そしてドキュメントを操作するのに使用できます。 推奨コーディング事例でないから、 MSXML parser の別のバージョンからの DOM オブジェクトをミックスすることを回避します。 DOM のプログラミングのうち、 MSXML DOM オブジェクトの別のバージョンをミックスしようとすると、次のいずれかのエラー メッセージが表示されます。
実行時エラー' - 2147024809(80070057)': The parameter is incorrect
実行時エラー' - 2147467262(80004002)': no こうしたサポートされるインターフェイス

先頭へ戻る

原因

いつメソッドの DOM オブジェクトの必要なメソッド パラメータが外部オブジェクトとして扱われるので、提供される異なる版のパーサーからのオブジェクトの呼び出しでの MSXML DOM オブジェクトの別のバージョンをミックスします。

先頭へ戻る

解決方法

MSXML parser の単一なバージョンによって実装されたオブジェクトを参照し、使用します。 MSXML DOM を作成するとき、 DOM オブジェクト の別のバージョンをミックスしないでください。

先頭へ戻る

詳細

問題の再現手

この資料の現象で表示されるエラー メッセージを再現する Microsoft Visual Basic サンプルをセットアップするために、以下の手順を実行します。 サンプルのコードでは、 2.6 と 3.0 MSXML parser バージョンを使用します。 DOM オブジェクトの ProgID を変更にすらなかったり再コードの利用のためにコンピュータにインストールされた MSXML parser の両方のバージョンがある必要があります。 また、 4.0 の 3.0 などバージョン 4.0 の 2.6 の MSXML ミキシング現象が再現できます。
1.Visual Basic 6.0 で新しい標準EXE プロジェクトを作成します。 Form1 は、既定で作成されます。
2.プロジェクト メニューの Microsoft XML v2.6 の参照を設定します。
3.Form1 にコマンド ボタンを追加し、 Error 1 ボタンにラベルを付けます。
4.次のコードをコピーし、 Error 1 の Click イベント プロシージャに貼り付けます。
Dim doc26 As MSXML2.DOMDocument26
Dim node26 As MSXML2.IXMLDOMNode

Set doc26 = New MSXML2.DOMDocument26
doc26.loadXML "<Books><Book>XML Programming</Book></Books>"

Set node26 = doc26.childNodes(0)

Dim doc30 As Object
Set doc30 = CreateObject("MSXML2.DOMDocument.3.0")
node26.appendChild doc30.createNode(NODE_ELEMENT, "Book", "")

MsgBox doc26.xml
					
5.上記のコードは、インスタンス MSXML 2.6 DOMDocument オブジェクトに整形式の XML を読み込みます。 MSXML 2.6 DOMDocument の子ノードに MSXML 3.0 IXMLDOMNode オブジェクトを追加するのを試みます。
6.プロジェクトを保存して実行します。 node26.appendChild ステートメントでの以下のエラー メッセージを生成するために、 Error 1 をクリックします。
実行時エラー' - 2147024809(80070057)': The parameter is incorrect
7.プロジェクトの実行を停止します。
8.Form1 に 2 のコマンド ボタンを追加し、ラベルを Error 2 と付けます。
9.メモ帳で空のテキスト ファイルを開きます。
10.次の XML コードをコピーし、メモ帳へ貼り付け、選択肢のフォルダの books.xml としてファイルを保存します。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="books.xsl"?>
<books>
 <book>
   <title>XML Step by Step</title>
 </book>
 <book>
   <title>Mastering XML</title>
 </book>
</books>
					
11.メモ帳で空の別のファイルを開きます。
12.次の XSL コードをコピーし、メモ帳へ貼り付け、 books.xml を保存した同じフォルダの books.xsl としてファイルを保存します。
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="books">
 <html>
 <body>
 <h1>A list of books</h1>
 <table>
  <xsl:apply-templates/>
 </table>
 </body>
 </html>
</xsl:template>

<xsl:template match="book">
<tr>
  <td><xsl:value-of select="./title"/></td>
</tr>
</xsl:template>

</xsl:stylesheet>
					
13.次のコードをコピーし、 Error 2 の Click イベント プロシージャに貼り付けます。
Dim xmldoc As MSXML2.DOMDocument26
Dim xsldoc As Object

Set xmldoc = New MSXML2.DOMDocument26
xmldoc.Load "<path to books.xml>"

Set xsldoc = CreateObject("MSXML2.DOMDocument.3.0")
xsldoc.Load "<path to books.xsl>"

Debug.Print xmldoc.transformNode(xsldoc)
					
上記のコードの 2 つのインスタンスの DOMDocument オブジェクトに XML と XSL ドキュメントを読み込むステートメントで books.xml と books.xsl にパスを挿入します。

このコードは、インスタンス MSXML 2.6 DOMDocument オブジェクトに XML ドキュメントを読み込みます。 インスタンス MSXML 3.0 DOMDocument オブジェクトに XSL ドキュメントを読み込んで 2 つの MSXML parser の別のバージョンからの DOMDocument オブジェクトをミックスすることで XSL 変換を実行しようとする。

14.プロジェクトを保存して実行します。 MSXML 2.6 DOMDocument オブジェクトの transformNode メソッドから以下のエラー メッセージを生成するために、 Error 2 をクリックします。
実行時エラー' - 2147467262(80004002)': no こうしたサポートされるインターフェイス

先頭へ戻る


この資料は以下の製品について記述したものです。
Microsoft XML Parser 2.0
Microsoft XML Parser 2.5
Microsoft XML Parser 2.6
Microsoft XML Parser 3.0
Microsoft XML Core Services 4.0

先頭へ戻る

キーワード: 
kbprb KB284856 KbMtja kbmt

先頭へ戻る

"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

サポート技術情報の翻訳

 

その他のサポート オプション

  • 製品別 お問い合わせ
    電話や電子メールでマイクロソフトへ問い合わせる。
  • カスタマー インフォメーション センター
    製品の購入やプライバシーなどに関する情報など、技術情報以外のお問い合わせ窓口です。
  • マイクロソフト コミュニティ
    マイクロソフト製品や関連技術に関する知識とニュースを共有することを目的に、ユーザーの皆様、各分野のエキスパートなどの間で情報交換する場です。
  • KB ご利用の際のご注意
    お使いの Windows 環境によっては、"\" (バックスラッシュ) は "¥" (円記号) と表示される場合があります。

ページ ツール


©2008MicrosoftCorporation.Allrightsreserved. 使用条件 |商標 |プライバシー |日本での個人情報の取り扱い