在Code中从XML创建XSD

我正在使用MSDN这段代码从XML创建XSD

 XmlReader reader = XmlReader.Create("contosoBooks.xml"); XmlSchemaSet schemaSet = new XmlSchemaSet(); XmlSchemaInference schema = new XmlSchemaInference(); schemaSet = schema.InferSchema(reader); foreach (XmlSchema s in schemaSet.Schemas()) { textbox.text = s.ToString(); } 

我想根据我的xml文件输出.xsd。 当我生成.xsd文件时,我唯一得到的内容是: System.Xml.Schema.XmlSchema

当我使用Visual Studio选项生成XSD来创建Schema时,它会正确显示。 但是,我有超过150个xml文档,我需要创建XSD,因此需要一个编程选项。 有人可以帮忙吗?

这就是你所缺少的……而不是简单地做s.ToString() ,这样做:

 XmlWriter writer; int count=0; foreach (XmlSchema s in schemaSet.Schemas()) { writer = XmlWriter.Create((count++).ToString()+"_contosobooks.xsd"); s.Write(writer); writer.Close(); Console.WriteLine("Done " + count); } reader.Close(); 

然后,您可以编写适当的逻辑来更好地执行读/写操作,读取许多xml文件并创建相应的xsd文件等。

我从这里获取了contosobooks.xml: https : //code.google.com/p/code4cs/source/browse/trunk/AppCase/dNet/Xml/data/contosoBooks.xml? specs = vsvn135 & r = 135

输出xsd是:

                              

xsd.exe可以做你想要的:

如果指定XML文件(.xml扩展名),Xsd.exe将根据文件中的数据推断出架构并生成XSD架构。 输出文件与XML文件具有相同的名称,但扩展名为.xsd。

以下命令从myFile.xml生成XML架构并将其保存到指定目录。

 xsd myFile.xml /outputdir:myOutputDir 

你可以在这里和这里阅读更多相关信息

要么

您可以像下面这样以编程方式尝试:

 XmlReader reader = XmlReader.Create(@"yourxml.xml"); XmlSchemaSet schemaSet = new XmlSchemaSet(); XmlSchemaInference schema = new XmlSchemaInference(); schemaSet = schema.InferSchema(reader); foreach (XmlSchema s in schemaSet.Schemas()) { using (var stringWriter = new StringWriter()) { using (var writer = XmlWriter.Create(stringWriter)) { s.Write(writer); } textbox.text = stringWriter.ToString(); } } 

使用命令行工具xsd.exe

用法示例:

nameOf.xsd /c /n:yourNamespace /out:C:\path\to\save

/ c参数创建一个类(与/ dataset相反,它创建一个强类型的DataSet)

您通常可以在以下位置找到:C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin

然后使用批处理文件或Powershell创建所有150个类。

我用这个命令行:

 Administrator:Developer Command Prompt for VS2013 

从xml创建xsd文件:

 xsd FullFilePath.xml /outputdir:myOutputDir 

生成对象以在项目中表示xsd文件。

 xsd /c /n:myNameSpace FullPath\fileName.xsd 

然后它会告诉.cs文件的创建位置。

下载microsoft visual studio 2010或2012.its非常简单。 只需单击.xml文件,然后选择microsft visual studio,然后您将看到xml选项卡,然后单击xml架构。 它将生成xsd,将其保存到您的本地。