1, 命令提示符--》找到vs自帶的xsd.exe工具所在的文件夾 例如: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 注意: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