12

.Net と C# を使用してプログラムでデータベースの XML スキーマを生成することは可能ですか? NDbUnit を調べたいのですが、大規模なデータベースの場合、スキーマを手動で作成するのは現実的ではありませんか?

4

3 に答える 3

26

データベースから XML スキーマを生成することは可能ですか?

確かに、XMLSpyはデータベースから XML スキーマを生成できます。

テストしたことはありませんが、別の方法があります。

create table Person
(
Age int not NULL check( Age > 0) ,
Height numeric(10,2) not NULL check( Height > 5),
Gender varchar(5) not null check( Gender in ('M', 'F', 'O')),
BirthDate datetime null,
)

DECLARE @schema xml
SET @schema = (SELECT * FROM Person FOR XML AUTO, ELEMENTS, XMLSCHEMA('PersonSchema'))
select @schema
于 2008-11-18T14:24:39.670 に答える
2

私はこのようにそれを行うことができます:

DataSet results = new DataSet();

SqlCommand command = new SqlCommand("SELECT * FROM table", new SqlConnection(connectionString));

SqlDataAdapter sqlAdapter = new SqlDataAdapter(command);

sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query
results.WriteXmlSchema(mySchema);

問題は、この方法をどのように適応させて、不確定な量のテーブルで使用できるようにすることができるかということです。正確には理想的ではない連結にもかかわらず、文字列を構築せずに!

于 2008-11-18T14:44:03.407 に答える
-1

MyGeneration の typed-dataset-template を使用して、XSD を自動生成します ( http://www.mygenrationssoftware.com )。その無料、OSS、および素晴らしい作品。また、NDbUnit チームは現在、データベースからスキーマを抽出するだけでなく、付随する XML データセットに含まれるテスト データを編集できるようにする NDbUnit のアドオン ツールに取り組んでいます。このツールの ETA は 7 月中旬頃です。

于 2009-06-07T11:11:31.660 に答える