1, 命令提示符--》找到vs自带的xsd.exe工具所在的文件夹 例如: C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin 注意:win7操作系统“命令提示符”要以管理员身份运行
2,将Xml文件拷贝到xsd.exe工具所在的文件夹,生成的xsd文件也将在这个文件夹中
3,在命令提示符中输入 xsd.exe test.xml, 多个xml文件以空格隔开
命令:xsd.exe xmlfile.xml [/outputdir:]
语法示例:categories.xml
<?xml version="1.0" encoding="utf-8" ?> <categories> <category> <id>2</id> <visible>true</visible> <title>新闻分类</title> <description></description> <parentId></parentId> </category> <category> <id>0001</id> <visible>true</visible> <title>新闻分类一</title> <description>测试一~</description> <parentId>2</parentId> </category> <category> <id>0002</id> <visible>true</visible> <title>新闻分类二</title> <description>测试二~</description> <parentId>2</parentId> </category> </categories>
生成xsd文件的使用方法:
xsd categories.xml
会在当前所在的目录下生成对应文件名的xsd文件
也可以使用下面的xml进行测试:
<?xml version="1.0" encoding="utf-8" ?> <userInput> <name>书名</name> <author>作者</author> <publisher>出版社</publisher> <pubDate>2020-9-7</pubDate> <price>2.3</price> </userInput>
备注说明:生成的xsd文件中的数据类型都是string类型的,手工编写xsd会很精细,但对于复杂的XML文档来说是很费力气的。可以由XML文档推断出它的类型,尽管推断出的往往不够精准,但我们可以对推断出的字段类型进行一些修改,在大多数情况下就可以得到我们想要的了。
==========================================================================
根据xsd文件生成cs文件
xsd.exe语法示例
一般情况下,xsd.exe位于C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin
备注:根据VS的 不同版本,xsd.exe所在的路径会不同,最好是使用vs的命令行工具
1、将xsd文件自成.CS类库。
正确写法: xsd.exe xxx.xsd /l:c# /n:namespace
xsd.exe /d /l:C# a.xsd /n:Namespace1.Namespace2
/d 指令指示该工具生成 DataSet,
/l: 告诉该工具要使用哪种语言(例如 C# 或 Visual Basic .NET)。可选的
/n: 指令指示该工具另外为 DataSet 生成名为 XSDSchema.Namespace 的命名空间。该命令的输出为 XSDSchemaFileName.cs
2、 csc.exe /t:library XSDSchemaFileName.cs /r:System.dll /r:System.Data.dll /t: 指令指示该工具编译成库,
/r: 指令指定进行编译所需的依赖库。该命令的输出为 XSDSchemaFileName.dll,它可以在使用
/r: 指令编译 ADO.NET 应用程序时传递到编译器
===============================================================================
一、 如何将.xsn文件转成.cs文件。
用infopath打开.xsn文件,在文件-另存为源码,保存后,将会有一系列的文件,将myschema.xsd文件和xsd.exe文件放在同一目录下,在DOS窗口上运行:
xsd.exe /d /l:C# myschema.xsd /n:Namespace1.Namespace2
就会生成一个myschema.cs文件,部分代码如下:
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行库版本:2.0.50727.42
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
//
// This source code was auto-generated by xsd, Version=2.0.50727.42.
//
namespace Namespace1.Namespace2 {
using System;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")]
[Serializable()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.ComponentModel.ToolboxItem(true)]
[System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")]
[System.Xml.Serialization.XmlRootAttribute("NewDataSet")]
[System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")]
public partial class NewDataSet : System.Data.DataSet {
。。。。。。。。。。。
二、XmlSchema Class
具体参考官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.schema.xmlschema