XmlElementのインスタンス化について

このQ&Aのポイント
  • XmlElementを直接生成する理由としては、XmlDocumentのCreateElementを呼び出す方が一貫性があり、コードの可読性が向上するためです。
  • また、XmlElementを直接生成すると、タグ名を変更する場合に全てのコードを修正する必要が生じることがあります。
  • さらに、XmlElementを直接生成すると、XMLのエスケープ処理や検証が行われないため、エラーが生じる可能性があります。
回答を見る
  • ベストアンサー

XmlElementのインスタンス化について

お世話になってます。 XMLのカテゴリで質問しましたが、回答をえられなかったのでこちらで質問させて頂きます。 XmlElementをインスタンス化するときに分からないことがあります。 通常XmlElementを生成するときにはXmlDocumentのCreateElementを呼び出し生成しますが、 XmlElementを直接生成しないのは何故でしょうか。(してはいけない理由は何でしょうか。) 自分で調べた限りではmsdnにも「XmlElement を直接インスタンス化しないでください。」 としか書いてありません。 http://msdn.microsoft.com/ja-jp/library/system.xml.xmlelement.xmlelement.aspx 申し訳ありませんが、詳しい方ご教授お願いします。

  • diplo
  • お礼率50% (11/22)

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1621/5656)
回答No.1

>自分で調べた限りではmsdnにも「XmlElement を直接インスタンス化しないでください。」としか書いてありません。 MSDNに書いてあることが全てだと思いますけど? フレームワークのマニュアルなどでやってはいけない理由を事細かに書いてるものはほとんどないんじゃないかなぁ。

diplo
質問者

お礼

ご回答いただきありがとうございます。 確かにXmlElementを直接生成することは可能でしたが、 Elementの名前を設定出来きないので実際には使い様がないことが分かりました。

関連するQ&A

  • TreeView と DOMツリー

    C# WPF でプログラミングをしています。 TreeView に XML の階層構造を表示させて、ある項目を選択し、ボタンをクリックするとその項目の子ノードが追加されるようにするプログラムを作っています。 選択した項目(TreeView.SelectedItem(Object型)) を、DOMツリーの要素ノード (XmlElement型) にキャストし、それに新しく作った要素ノード(XmlElement型)をつなげるといったようにしているのですが、その際「挿入するノードは、異なるドキュメント コンテキストのものです。」のエラーが発生してしまいます。 XmlElement tvi = treeView.SelectedItem as XmlElement; XmlElement item = doc.CreateElement("item"); tvi.PrependChild(item); // エラー発生箇所 ※ doc は XmlDocument のインスタンスです。 解決策を教えてください。よろしくお願いします。

    • ベストアンサー
    • XML
  • MSDNライブラリを VS2010に適用するには

    http://msdn.microsoft.com/ja-jp/library/ms123401.aspx 上記URLのライブラリをVisualStudio2010にインストールする方法が分かりません。 2008や2013向けのインストーラーは見つかるのですが、2010用が見つかりません。 MSDNライブラリをVS2010で使用する方法について、分かる方が居れば、ご教授お願いいたします。

  • 大規模なデータウェアハウスを構築・運用するための主要テクノロジー

    大規模なデータウェアハウスを構築・運用するための主要テクノロジー http://www.computerworld.jp/eye/t/sql/server2008/05/ パーティション テーブルとパーティション インデックスに対するクエリ処理の機能強化 http://msdn.microsoft.com/ja-jp/library/ms345599.aspx パーティションの切り替えを使用した効率的なデータの転送 http://msdn.microsoft.com/ja-jp/library/ms191160.aspx パーティション テーブルとパーティション インデックスの変更 http://msdn.microsoft.com/ja-jp/library/ms175864.aspx パーティション・テーブルにおけるパフォーマンスの考察 http://blogs.msdn.com/b/sqljapan/archive/2007/06/13/3260757.aspx

  • msdnのヘルプについて

    都合上、オフラインのヘルプではなく、msdnでヘルプを見てるのですが たとえばアクセスのRunSQLメソッドのヘルプを見たければ、 http://msdn.microsoft.com/ja-jp/library/office/ff194626.aspx のように、msdnのオフィスのページのヘルプを発見できましたが、 違う例えで、VBA.Strings.UCase関数のヘルプを見たい場合は、 オフィスのページのヘルプは用意されてないのでしょうか? UCase関数に関しては、 http://msdn.microsoft.com/ja-jp/library/53e2ew8a(v=VS.90).aspx このページしか見つけられません。 内容はVisual Basicのものですが、VBAライブラリーのものは、VBのページをVBAに読み替えてるしかないのでしょうか? 私は、VBはよく知らないので、VBAのヘルプのページがあればな。と思うのですが、 無理でしょうか?

  • Dateにnewを付与せず(関数として)呼び出した

    Dateにnewを付与せず(関数として)呼び出した場合、下記のようになるみたいですが、何故でしょうか? ・引数がない場合 → 現在の時間(UTC)を表す文字列を返す ・引数あり→引数を無視して、同上 ■質問1 ・この決まりは、「MDN」もしくは「msdn」リファレンスだとどこに記載されているでしょうか?(「ECMA」には記載されているのですが、リファレンス的にどういう位置付けになっているかを確認したいです) ・オブジェクトを生成せず呼び出せるからには、「Date();」関数がどこかに記載されていると思ったのですが、探したけど見つかりません ▽Global オブジェクト   http://msdn.microsoft.com/ja-jp/library/cc427717.aspx ■質問2 >Date オブジェクトに一切パラメータを渡さなかった場合は、オブジェクトは現在の時刻 (UTC) で初期化されます ▽Date オブジェクト   http://msdn.microsoft.com/ja-jp/library/cc427714.aspx ・と言うことは、Date オブジェクトを生成しなくても、「Date();」すると、結局、ここ(Date オブジェクト)に辿り着くのでしょうか? ・「Date();」関数は、どこにあるのでしょうか?(どこに所属してる? UTCが返ってくる理由を知りたい)

  • XMLパーサー(であってるのかな?)について

    いつもお世話になっています。 VB6.0でXMLファイルを読み込むプログラムを修正しています。 参照設定で「Microsoft XML,version2.0(msxml.dll)」というのを使用しています。 そこで、みなさんにお伺いしたいのが、 このオブジェクトのヘルプファイルの場所なんです。 正直言っていろいろなメンバーがあったり、メソッドがあったり しても、何を書いてるのか「やんわりと」しかわかりません(;_;) MSDNでそれらしきライブラリを見つけたのですが、 微妙に名前が違ってて、それでもいいのかわからず・・・ ヘルプドキュメント(MSDNなど)の場所をご存知の方 いらっしゃいましたら、教えて下さい。 自分でみつけたのは 1 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemxmlxmlnodememberstopic.asp 2 http://www.microsoft.com/japan/msdn/xml/general/beginner.asp#What でした。これであってるのでしょうか? 2は、まさにやってるのは「これ」なんですが、あまりにも概要だけで、細かい処理の内容までわかりません。 みなさんよろしくお願いします。

  • "picture.jpg" の "picture" を取りだすには

    お世話になります。 "picture.jpg" のような文字列から 拡張子を省いた値を 取りだすにはどうすれば良いのでしょうか? Java でいう str.lastIndexOf(".") や substr() のような関数はあるのでしょうか? msdn 関数 http://msdn.microsoft.com/ja-jp/library/32s6akha.aspx

  • 【至急】セットしたmovefileコマンドの取消

    はじめまして、助けて下さい。 MoveFileEx関数(マイクロソフトMSDNサイト)<https://msdn.microsoft.com/ja-jp/library/cc429621.aspx>を誤って設定してしまい、 絶対に消してはいけないファイルを削除するコマンドを入れてしまいました。 バックアップを取るにしても、ファイルの容量が大きすぎてバックアップを取れません。 この予約コマンド自体を無効にする方法はないでしょうか。

  • MSDNのプロダクトキーの上限について教えて下さい

    Microsoft Visual Studio Professional 2013 with MSDN 通常版 を持っているのですが、 サブスクリプションのプロダクトキーについての質問です。 今まであまり使う事が無かったので詳しく知らなかったのですが、 https://msdn.microsoft.com/ja-jp/subscriptions/dd197355.aspx 上記ページを見ると、 例えばWindows 10 PRO はプロダクトキーが5個まで発行できるのですが、 テスト用として、5人の人が10台づつのパソコンにインストールしても構わないという認識で合っておりますでしょうか?

  • VB2005 DataGridViewのClipbordCopyについて

    こんにちは。 VB2005のDataGridViewに表示されている全てのセルをヘッダーも含めてClipbordにコピーしたいのですが、 どのように行えばよろしいでしょうか? MSDNには、 http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagridview.clipboardcopymode.aspx のサンプルがありますがアクティブなセルしか取得できません。 ご教授のほどよろしくお願いします。

専門家に質問してみよう