2011-08-17 13 views
3

かなり大きいXSDファイルがありますhereです。C#:XMLスキーマ(XSD)ファイルからDDLおよびORMクラスを自動生成

私はファイルから次を生成したい:

  1. は、(PostgreSQL用)DDLを生成し、適切なXSD

  2. に「許可」の値によって指定され、DDLは、初期値が含まれている必要がありますが
  3. 誰もがツールを提案することができ、私はステップ1

で作成したデータベース内のレコードでCRUD操作を実行できるようになりますORMを生成しますまたはこれを達成するための一連のツール/テクノロジ

私自身のソリューションをロールバックする必要がある場合は、誰かがXSLTのチュートリアルをお勧めします(私は既にXML/XPathを知っているので、料理書が望ましい)。

ちなみに、Windows上でxsd.exeを試しましたが、XSDファイルに循環参照があることを示すエラーメッセージが表示されず、失敗しました。私はモノでxsd.exeを試してみましたが、うまくいきました - しかし、作成されたファイルにはいくつかの無効なステートメントがありました。私はxsd.exeがこれらの双子の目標を達成する方法ではない(おそらく間違っている)と推測しています。もし私が間違っていたら、教えてください。

また、私は、XSDファイルからDDLを生成するAnn Lewkowicz's XSLT transform fileで取った - しかし、それは無限ループに陥ってしまっているように見えた - ともだから私は、次の助けが必要

「無限再帰」について訴え:XSD fileは確かをめちゃくちゃにされている場合

  • まず、誰テスト/確認することができますか? - もしあれば、それを修正する方法は?
  • XSDファイルからDDLとORMを生成するにはどうすればよいですか?
+2

DDL/ORMの生成に関して、T4を見ましたか?個人的には、T4はXSLT(http://www.olegsych.com/2007/12/text-template-transformation-toolkit/)よりもはるかにこれらのタスクに適していると思います。 – FuleSnabel

+1

XSDがネジ止めされています。 VSで開くときにこのエラーが発生する:このスキーマは無効なXSDスキーマであり、次のエラーがあります: 'http://www.w3.org/XML/1998/namespace:lang'属性は次のとおりです。宣言されていない。 –

+0

@hugh jadick:確認していただきありがとうございます。私は問題を解決しましたが(固定ファイルはまだアップロードされていません)、残っている唯一の問題はXSDからORMとDDLを生成する方法です。Visual Studioで固定XSDファイルを開くことができました。確かにVisual StudioからDDLとORMを生成する方法が必要ですか? – oompahloompah

答えて

0

私は個人的に発電機を書いたでしょう。そこに良い発電機があるかもしれませんが、私は何も見ていません。私が使用しようとしたのは(XSDを出発点として使用したことはないが)ひどいコードを生成し、悪化すると必然的に発生するすべての癖を処理するのはむしろ不可能である。

これは、人が想像しているよりもはるかに少ない仕事であり、多くの利点をもたらします。実際に生成されたものを実際に完全に制御できることはもちろんです。そして、あなたは(そして非常に簡単に)それを次のレベルに持ち帰り、実行時に生成することができます。後者は、スキーマが最終的な場合はほとんど意味がありませんが、絶え間なく進化している場合は時間を大幅に節約できます。

私はこれがあなたが望んでいた答えではないと確信しています。誰かが仕事のための良いツールを知っていれば、私も興味があります。

関連する問題