問題タブ [msxml6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - MSXML4 と MSXML6 の XSLT 解析ネームスペース エラー
MSXML4 から 6、または XSLT 1.0 と 2.0 などに関する多くの投稿をオンラインで見ましたが、私の質問に答えることができませんでした。
Javascript を介して IE7 の MSXML4 API (XSLTransform および FreeThreadedDomDocument) で動作する XSLT 変換コードがあります。
同じコードは、Javascript を介して IE9 の MSXML6 API (XSLTransform および DomDocument) では機能しません。このエラーがスローされます
「名前空間 'urn:mynamespace:mytable:transactions' には関数が含まれていません」
ActiveX が IE9 で MSXML4 と 6 の両方に対して有効になっていることを確認しました。以下は、メイン トランスフォーマ XSLT のコード、リファレンス XSLT および JS コードです ...
コア XSLT: functions.xsl
主な XSLT: MyTransformer.xsl ... functions.xsl を参照
JS コード
MSXML6またはIE9でどこが間違っているのか教えてもらえますか?
どうも。
delphi - IXSLTemplate (MSXML 6) - xsl:import を解決する方法
COM 経由で mxsml 6 を使用して変換を実行しています。ソース スタイルシートには xs:import ステートメントがあり、それを含める方法はわかっていますが、MSXML にそのように指示するにはどうすればよいでしょうか? IXSLTemplate に解決済みのソースをロードするように指示する場所が見つからないようです
詳細:
- 「指定されたオブジェクトが見つかりません」というエラーが表示されます
- ソース ドキュメントで ResolveExternals = true を設定しています
- スキーマトロン検証を実行しようとしています
- 私は Delphi を使用しているため、msxml を使用することが唯一の選択肢のようです
- 私はサーバー環境のメモリにすべてを持っているので、ファイルを使用する必要はありません。
コード:
変換の元のソース:
- http://gforge.hl7.org/gf/project/fhir/scmsvn/?action=browse&path=%2Ftrunk%2Fbuild%2Ftools%2Fschematron%2Fiso_svrl_for_xslt1.xsl&view=markup
- http://gforge.hl7.org/gf/project/fhir/scmsvn/?action=browse&path=%2Ftrunk%2Fbuild%2Ftools%2Fschematron%2Fiso_schematron_skeleton_for_xslt1.xsl&revision=1319&view=markup
c++ - MSXML のしくみ (インプロセスCOMオブジェクトの仕組み)
私はコンポーネント オブジェクト モデル (COM) の専門家ではありませんが、次のように機能することを理解しています。 プログラム A (「サーバー」プログラム) は、TLB ファイルを介して COM インターフェイスを公開します。クライアント プログラムはこのインターフェイスを使用し、その関数を呼び出します (そして、基本的なことはすべて無料で行われます)。したがって、この場合、「サーバー」プログラムが実行されていて、「クライアント」プログラムが COM オブジェクトを使用して「サーバー」と通信します。各プログラム (プロセス) には、独自のアドレス空間があります。MSXML では少し異なります。私が理解していることから、msxmlX.dll は COM dll ですが、実行時に (msxmlX.h と msxmlX.lib を使用して) 暗黙的にリンクすると、実行可能ファイルと同じメモリ空間に読み込まれます。そう、
c++ - ヘッダー衝突の可能性
Visual C++ で XSD スキーマに対して XML ファイルを検証したいと考えています。インターネットを調べたところ、見つけた MSXML の例が最も簡単なように思えました。
これを私が取り組んでいるプロジェクトに統合しようとしています。特定の XSD スキーマの検証を実行するクラスを作成XMLSchemaValidation
し、対応する XSD ファイル名でオブジェクトを初期化しました。ヘッダー ファイルに次のディレクティブがあります。
しかし、次のエラーが発生し始めました。
そして私も得る:
最初は#import <msxml.dll>
サンプル コードのようにしましたが、MSXML のインストールでは、W7 で言う場所にファイルが配置されません。
#define WIN32_LEAN_AND_MEAN
stdafx.h ファイルで既に削除しました ( Visual C++ で msxml6.h を使用するとエラーが発生します)
私は何を間違っていますか?
c++ - MSXML メモリ リーク
MSXML を使用して測定データを単純な XML ファイルに書き込むレガシー アプリケーションを処理する必要があります。基本的に、これが起こっていることです:
各項目の後、pXmlTmpNode.Release()
が呼び出されます。最後に、他のすべてのノードと同様pXmlDocument
にReleased
.
createXMLDocument
は次のように定義されます。
新しい要素 (つまり、配列) を追加するunsiged char
には、次の関数が適用されます。
使用されているかどう#import <msxml4.dll>
かに関係なく#import <msxml6.dll>
、メモリ リークが発生しているようです。etc. は巨大になる可能性があるためmeasdata
、これはかなり大きな問題です。コードを機能させるためにできることはありますか? ありがとう、マシュー
ms-access - MSXML を使用した Access VBA の自己終了 XML タグ
Access VBA で Microsoft XML v6.0 を使ってみました。私の質問は、VBA を記述して XML 出力を作成し、出力に自己終了タグを持たせる方法はありますか?
次のコードのように、フィールドが作成されると、2 つのタグの間にテキストが配置され
ます。
<field> name='Unit' value='TEST'</field>
エクスポート方法です
<field name='Unit' value='TEST'/>
エクスポートしたい方法です
xml - 日付による XPath クエリのフィルタリング
dateに基づいてノードを照会しているサンプル XML があります。
サンプル XML ドキュメント:
したがって、基本的に3つの日付があります。
- 2012 年 2 月 1 日
- 2013 年 2 月 1 日
- 2014/2/1
MSXML を使用すると、XPath クエリを使用してこれらの日付でクエリとフィルター処理を行うことができます。
そして、これは機能し、IXMLDOMNodeList
1 つのアイテムを含むものを返します。
もう機能しないことを除いて
MSXML を使用したその XPath クエリ。W3C が XPath の完全に異なる形式で標準化する前の 1990 年代後半に Microsoft が作成した xml のバリアント。
しかし、そのバージョンの MSXML は「標準準拠」ではありません(標準が存在する前に作成されたため)。2005 年以来、推奨されているもの、標準に準拠しているもの、私が必要とする機能を備えているのは MSXML 6 だけです。
これは簡単な変更です。DOMDocument60
クラスではなくクラスをインスタンス化するだけDOMDocument
です。
ただし、同じ XPath クエリでは何も返されません。
日付で値をフィルタリングする「標準に準拠した」方法は何ですか?
それは文字列のふりをします、あなたは言います
2013-02-01T00:00:00-05:00
実際には文字列であるのに、XML は をある種の特別な日付として扱っていると私が考えているのではないかと思われるかもしれません。ですから、文字列比較のように考えるべきかもしれません。
それが機能しないことを除いて、これは機能します。文字列比較は機能しません:
/NewDataSet/Table[ValidFromDate<"a"]
ノードを返しません/NewDataSet/Table[ValidFromDate>"a"]
ノードを返しません/NewDataSet/Table[ValidFromDate!="a"]
すべてのノードを返します/NewDataSet/Table[ValidFromDate>"2014-02-12T00:00:00-05:00"]
ノードを返しません/NewDataSet/Table[ValidFromDate<"2014-02-12T00:00:00-05:00"]
ノードを返しません/NewDataSet/Table[ValidFromDate!="2014-02-12T00:00:00-05:00"]
ノードを返しません
では、ここまでです
以前は機能していたものを達成するための「標準に準拠した」方法は何ですか?
日付文字列のXPathクエリの「正しい」方法は何ですか?
または、XPath クエリが機能しないのはなぜですか?
または、さらに良いことに、以前は機能していたクエリが機能しなくなったのはなぜですか? 構文が悪いと判断した決定は何でしたか。クエリ構文を「壊す」ことで解決していたエッジケースは何ですか?
MSXML6 互換バージョン
ほぼ私が使用する言語での最終的な機能コードは次のとおりです。
xml - MSXML2.DOMDocument60 が Excel をクラッシュさせる
XML ファイルを読み込んで解析する VBA マクロを作成しました。この正確なコードはしばらくの間正常に機能していましたが、現在は機能していません。Excel 2013 64 ビットを実行している 2 台の異なるコンピューターでテストしました。失敗するコードは次のとおりです。
Set コマンドをコメントアウトすると、コードは続きます。エラーはスローされず、Excel が完全にクラッシュします。上記のコードはマクロの開始場所であり、その前に実行中のコードはありません。MSXML の v6.0 への参照を設定しました