2010-12-16 10 views
2

xml形式で製品の知識を見せたいと思います。私は別のサイト、私はこれを表示したくないかどうかproductnameを表示したい。したがって、私は基本XMLスキーマfile.inを作成したい、私はこのXSDから別のXMLスキーマを取得したいすべてのサイト。手伝って頂けますか?XmlとXmlのスキーマ

+2

私はあなたの質問を十分に理解することができません。データベースからデータを読み込み、読み込んだデータをXMLドキュメントとして表示したいとしますか?あなたはもっと具体的になりますか? – JeffFerguson

答えて

2

最も簡単な方法は関係なく、あなたはその後、XMLで何をしたいのかを、あなたのテーブルのうち、XMLを作成する最も簡単な方法は、それをシリアル化することですされています

  1. 10列のようなC#クラスを作成してください(Visual Studioに重労働をさせるためにLinq To SqlまたはEntity Frameworkを読んでください)。

  2. クラスXMLをシリアライズ可能にします。 「Plain Old C#Object」(POCOとも呼ばれる)を作成している場合は、何もする必要はありません。 Linq to SQLでは、Datamodelのシリアル化モードを単方向に設定します。

  3. データを変数で取得します。 LINQので が...これは

var db = new MyRepository(); 
var myList = from r in db.MyTableRecords 
      where r.someField == 'somevalue' 
      select r; 

のと同じくらい簡単ですそうしないとのSqlConnection、SqlCommandオブジェクトとSqlDataReaderのを使用してデータを自分で得ることを見ているには:

var myList = new List<MyClass>(); 
using (var conn = new SqlConnection(MyConnectionString)) 
{ 
    conn.Open(); 
    using(var cmd = conn.CreateCommand()) 
    { 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "SELECT ([Field1], ... [Field10]) FROM MyTable"; 
     using (var rdr = cmd.ExecuteReader()) 
     { 
     while (rdr.Read()) 
     { 
      myList.Add(new MyClass() 
      { 
       Field1 = rdr[0], 
       ... 
       Field10 = rdr[9] 
      }); 
     } 
     } 
    } 
} 
  1. SerializそれをE:
StringBuilder sb = new StringBuilder(); 
using (var sw = new StringWriter(sb)) 
{ 
    XmlSerializer xs = new XmlSerializer(typeof(List<MyClass>)); 
    xs.Serialize(sw, myList); 
} 
System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
doc.LoadXml(sb.ToString()); 

プレスト!あなたのデータを含むXML文書。 LinqをSqlに使用すると、これは非常に迅速かつ苦労します。あなたがそれを把握してそれを実行したら、Entity Frameworkを試して、T4を使って独自のクラスを生成する方法を学んでください。

0

この

StringBuilder sb = new StringBuilder(); 
var xml = System.Xml.XmlWriter.Create(sb); 

dataTable.WriteXml(xml, System.Data.XmlWriteMode.WriteSchema); 

return sb.ToString();