問題タブ [xml]

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.

0 投票する
8 に答える
4673 参照

c# - C#: XML からクラスをインスタンス化する

私が持っているのは、すべて同じインターフェースを実装するクラスのコレクションですが、内部ではかなり大きく異なる可能性があります。プログラムの起動時にどのクラスがコレクションに入るかを構成ファイルで制御したいのですが、次のようになります。

そしてそれを次のように変えます:

非常に一般的な方法で。どうすればよいかわからないのはprop1、構成ファイル内の文字列を取得し、それをコード内の実際のプロパティ アクセサーに変換することです。それを可能にするメタプログラミング機能は C# にありますか?

0 投票する
3 に答える
12171 参照

xml - 検索して一意に置換

次のコードを使用して、改行文字 ( 
) で検索と置換を実行し、段落の終了タグと段落の開始タグに置き換えています。

これはほぼ完全に機能しますが、段落が2つ以上離れて</p><p></p><p>.

これを段落ごとに1回だけ置き換えるようにすることは可能ですか?

0 投票する
3 に答える
3324 参照

xml - IEnumerable と ICollection の XML シリアル化の防止継承される型(&)

注: XMLIgnoreは答えではありません。

OK、それでXML Serialization and Inherited Typesに関する私の質問に続いて、私はそのコードを私が取り組んでいるアプリケーションに統合し始めました.

IEnumerableICollection<T>を実装するいくつかのクラスで問題が発生しました

これらの問題は、XMLSerializer がこれらをシリアライズしようとすると、それらを外部プロパティと見なし、使用したいプロパティ (つまり、AbstractXmlSerializerのプロパティ) を使用する代わりに、ここに来てフォールオーバーすることです (原因:型の不一致)、ほぼ振り出しに戻ります。これらのメソッドをXmlIgnore属性で装飾することもできないため、その方法で停止することはできません。

私の現在の解決策は、インターフェイスの実装を削除することです (この現在のアプリケーションでは、それは大したことではなく、コードをきれいにしただけです)。

これに対する私のプライドを飲み込み、それができないことを受け入れる必要がありますか? 私はちょっとプッシュして、XmlSerializer から予想以上のものを得たことを知っています:)


編集

また、追加する必要があります。現在、フレームワーク 2 で作業しています。


アップデート

lomaxx の回答を受け入れました。私のシナリオでは、実際にこれを行うことはできませんが、うまくいくことはわかっています。他に提案がなかったため、コードからインターフェイスの実装を削除することになりました。

0 投票する
4 に答える
1640 参照

xml - XML パーサー/バリデーターのアルゴリズムの複雑さ

さまざまな XML ツール (パーサー、バリデーター、XPath 式エバリュエーターなど) のパフォーマンスが、入力ドキュメントのサイズと複雑さによってどのように影響を受けるかを知る必要があります。CPU 時間とメモリ使用量がどのように影響を受けるかを文書化したリソースはありますか? ドキュメントのサイズはバイトですか? ノード数?また、その関係は線形、多項式、またはそれより悪いものですか?

アップデート

IEEE Computer Magazine vol 41 nr 9、2008 年 9 月の記事で、著者は 4 つの一般的な XML 解析モデル (DOM、SAX、StAX、および VTD) を調査しています。彼らはいくつかの非常に基本的なパフォーマンス テストを実行し、入力ファイルのサイズが 1 ~ 15 KB から 1 ~ 15 MB に、または約 1000 倍大きくなると、DOM パーサーのスループットが半分になることを示しています。他のモデルのスループットには大きな影響はありません。

残念ながら、ノード数/サイズの関数としてのスループット/メモリ使用量など、より詳細な調査は行われませんでした。

記事はこちら。

アップデート

この問題の正式な扱いを見つけることができませんでした。参考までに、XML ドキュメント内のノード数をドキュメントのサイズ (バイト単位) の関数として測定する実験をいくつか行いました。私は倉庫管理システムに取り組んでおり、XML ドキュメントは典型的な倉庫ドキュメント (事前出荷通知など) です。

以下のグラフは、バイト単位のサイズとノード数の関係を示しています (これは、DOM モデルでのドキュメントのメモリ フットプリントに比例するはずです)。さまざまな色は、さまざまな種類のドキュメントに対応しています。スケールは log/log です。黒い線は青い点に最適です。興味深いことに、すべての種類のドキュメントで、バイト サイズとノード サイズの関係は直線的ですが、比例係数は大きく異なる可能性があります。

ベンチマーク-bytes_vs_nodes
(ソース: flickr.com )

0 投票する
1 に答える
2771 参照

xml - 「これらの要素の任意の数 - 任意の順序」の XML スキーマ構造

次のような XML スキーマを作成する必要があります。

私が必要としているのは、任意の数の el3、el4、および el5 を任意の順序で表示できるように、"WhatGoesHere" を置き換えることです。たとえば、{el3, el3, el5, el3} を含めることができます

これを解決する方法について何か考えはありますか?

0 投票する
3 に答える
13906 参照

xml - ノードセットの長さ

XLST では、ノードセットの長さをどのように調べますか?

0 投票する
3 に答える
2325 参照

xml - XML パーサー検証レポート

ほとんどの XML パーサーは、ドキュメントで最初のエラーが発生した後、あきらめます。実際、IIRC、それは実際にはパーサーの「公式」仕様の一部です。

そのルールを破るものを探しています。特定のスキーマ (有効なスキーマを想定) と xml 入力を受け取り、最初のエラーの後も処理を続行し、エラーごとにイベントを発生させるか、終了時にリストを返すように試行する必要があります。ドキュメントのエラーのレポート。この要件は上から来るものなので、純粋主義者の「しかし、続けるのは意味がない」というコメントを最小限に抑えるようにしましょう。

ドキュメントが整形式であるかどうかと、スキーマに準拠しているかどうかの両方を評価するものを探しています。理想的には、それらを異なるクラスのエラーとして評価します。私は .Net ソリューションを好みますが、スタンドアロンの .exe も使用できます。別のプラットフォームを使用しているものを知っている場合は、他の誰かが役に立つと思うかもしれないので、投稿してください。

アップデート:

私がこれを使用するほとんどのドキュメントは、整形式であると期待しています。データとして & の代わりに & があちこちに含まれているか、タグの配置が間違っている可能性があります。パーサーが何かから回復できるとは思っていません。ただ、最善を尽くして続行するためです。ドキュメントがあまりにも調子が悪い場合は、可能な限り吐き出す必要があり、その後に何らかの「致命的で続行できません」というエラーが発生します。それ以外の場合、スキーマの検証部分は非常に簡単です。

0 投票する
4 に答える
134289 参照

java - XML から org.w3c.dom.Document を文字列で読み込むにはどうすればよいですか?

文字列に完全な XML ドキュメントがあり、Documentオブジェクトが必要です。Google はあらゆる種類のゴミを探し出します。最も簡単な解決策は何ですか?(Java 1.5 の場合)

解決策Matt McMinnのおかげで、この実装に落ち着きました。入力の柔軟性と例外の粒度は、私にとって適切なレベルです。(エラーが不正な XML に起因するものなのか、SAXExceptionそれとも単なる IOの誤りによるものなのかを知っておくとよいでしょうIOException。)

0 投票する
20 に答える
75299 参照

xml - XML属性とXML要素

職場では、データを別のオフラインアプリケーションに渡すためのXMLファイルを作成するように求められています。このアプリケーションは、データの一部を更新するために、2番目のXMLファイルを作成して返します。その過程で、XMLファイルの構造について他のアプリケーションのチームと話し合っています。

私が思いついたサンプルは、基本的に次のようなものです。

他のチームは、これは業界標準ではなく、属性はメタデータにのみ使用する必要があると述べました。彼らは提案した:

私が最初に提案した理由は、作成されるファイルのサイズがはるかに小さいためです。転送中にファイルに含まれるアイテムは約80000個になります。彼らの提案は実際には私が提案したものの3倍の大きさであることがわかりました。言及された不思議な「業界標準」を検索しましたが、最も近いのは、XML属性はメタデータにのみ使用する必要があるということでしたが、議論は実際のメタデータとは何かについてでした。

長い説明(申し訳ありません)の後、メタデータとは何かをどのように判断しますか?また、XMLドキュメントの構造を設計するときに、属性または要素をいつ使用するかをどのように判断する必要がありますか?

0 投票する
1 に答える
5890 参照

xml - Microsoft Office 2007 automated installation - editing the config.xml file

I'm creating an automated installation of Office 2007. To customise your Office 2007 installation the Office Customization Tool (OCT) does most of the work for you. One the OCT's features is the ability to run additional programs during the Office installation. However it is pretty poor at it.

Fortunately by editing the appropiate config.xml file contained within the installer files you have more control over running these additional programs. Within the config.xml file this feature is defined by the command element. This link on TechNet talks all about it.

In this documentation it states:

I would like to use double-quotation marks in an argument that I wish to pass to the command I'm executing. Unfortunately when I configure my config.xml file as shown in the example, the Office 2007 installer crashes and displays the following error message in the setup logs:

Does anyone have any experience with this issue? I'd love to get another perspective on it.