なるようにする。

スノーボードとプログラムとときどき○○○

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  36  : 記事  0  : コメント  78  : トラックバック  5

書庫

日記カテゴリ

xsdをdocxへ その1

http://blogs.wankuma.com/tyato/archive/2007/08/27/92159.aspx

支離滅裂な文章が踊っているので要約すると、

 ・XSDからパラメータ関連の仕様書をdocxに自動で出力したい

っていうことになるみたいですハイ。

まずはxsdをどーにかして読み込みたい。しかし、XSDって定義やん!どないすんねん?などと思っていると、こんなコード発見。

 const string schemaPath = @"C:\\test.xsd";
 const string documentPath = @"C:\\test.xml";
 System.IO.StreamReader xmlStream = new System.IO.StreamReader(schemaPath);
 DataSet dataSet1= new DataSet();
 dataSet1.ReadXmlSchema(xmlStream);
 xmlStream.Close();
 dataSet1.ReadXml(documentPath, XmlReadMode.InferSchema);
 foreach (DataColumn col in dataSet1.Tables["item"].Columns)
 {
 Console.WriteLine("-"+col.ColumnName+":"+col.DataType);
 }

あ、なるほど。スキーマとして読み込んで、定義部分を引っ張り出すことができるわけですな。

まぁ整形はおいといて、あとはdocxが自分で作り出せればOK

するとマイクロソフト様がこんなん公開してた


Office XML ファイル形式と 3.0 .NET Framework からのパッケージ コンポーネントを使用する単純な Excel 2007 ブックまたは単純な Word 2007 ドキュメントを作成する方法
http://support.microsoft.com/kb/931866/ja


ビンゴ!これですこれ。んでできあがったのはこんな感じ

 private void btn_readxsd_Click(object sender, EventArgs e)
 {
  const string schemaPath = @"C:\\test.xsd";
  const string documentPath = @"C:\\test.xml";

  System.IO.StreamReader xmlStream = new System.IO.StreamReader(schemaPath);
  dataSet1.ReadXmlSchema(xmlStream);
  xmlStream.Close();

  dataSet1.ReadXml(documentPath, XmlReadMode.InferSchema);

  String worddata = "";
  foreach (DataColumn col in dataSet1.Tables["item"].Columns)
  {
   worddata += "カラム名称:" + col.ColumnName + "<br>データタイプ:" + col.DataType + "<br>";
  }
  CreateDocxFile(worddata, "xmlschema.docx");
 }

 C#さわりはじめてから2ヶ月程度なんでツッコまないで~(@@;

とりあえず XSD読み込み→docx出力 まではいけた

あとは必要な情報と整形の問題なわけですが、事件はリアルタイムに進行中。

文中の<br>は改行できねーかなーと思っていれてみましたが、全く意味がなし

。・゚・(ノД`)・゚・。

つか、パラメータの定義やから、docxでなくて、xlsxの方がいいんじゃね?と思い始めた。。

 

つづく!(レントン風)

 

 

P.S.

FireFoxで最初投稿したらえらいことにっ

IE7で整形しなおしてみますた。ちゃんと見えるかなぁ

投稿日時 : 2007年8月29日 0:50

コメント

# re: xsdをdocxへ その2 2007/08/29 0:53 シャノン
改行してくだちぃorz

# re: xsdをdocxへ その2 2007/08/29 1:06 中博俊
XMLSchemaDocumentかなんかで読み込めるはず。
DataSetじゃうまくいかないこと当社比300%

Post Feedback

タイトル
名前
Url:
コメント