首先在开始菜单中找到:Visual Studio 2005 命令提示

大柏树按:VS2010在:开始—> Microsoft Visual Studio 2010 —> Visual Studio Tools —> Visual Studio Command Prompt (2010)

进入文件所在目录,如:-> D:

操作示例 下面的命令从 myFile.xdr 生成一个 XML 架构并将它保存到当前目录中。
xsd   myFile.xdr 下面的命令从 myFile.xml 生成一个 XML 架构并将它保存到指定目录中。
xsd myFile.xml   /outputdir:myOutputDir 下面的命令生成一个与 C# 语言中的指定架构相对应的 DataSet,并在当前目录中将其保存为 XSDSchemaFile.cs。
xsd /dataset /language:C# XSDSchemaFile.xsd 下面的命令为程序集 myAssembly.dll 中的所有类型生成 XML 架构,并在当前目录中将它们保存为 schema0.xsd。
xsd   myAssembly.dll

其它:------------------------------------------------------------------------------------------------------------------

XML 架构定义工具从 XDR、XML 和 XSD 文件或者从运行库程序集中的类生成 XML 架构或公共语言运行库类。
xsd file.xdr [/outputdir:directory] xsd file.xml [/outputdir:directory] xsd file.xsd {/classes | /dataset} [/element:element] [/language:language] [/namespace:namespace] [/outputdir:directory] [URI:uri] xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]] 参数 说明 file.extension 要转换的输入文件。必须将 extension 指定为下列之一:.xdr、.xml、.xsd、.dll 或者 .exe。 如果指定一个 XDR 架构文件(.xdr 扩展名),则 Xsd.exe 将 XDR 架构转换为 XSD 架构。输出文件与 XDR 架构同名,但扩展名为 .xsd。
如果指定一个 XML 文件(.xml 扩展名),则 Xsd.exe 从文件中的数据推导出架构并产生一个 XSD 架构。输出文件与 XML 文件同名,但扩展名为 .xsd。
如果指定一个 XML 架构文件(.xsd 扩展名),则 Xsd.exe 将为对应于 XML 架构的运行库对象生成源代码。
如果指定一个运行库程序集文件(.exe 或 .dll 扩展名),则 Xsd.exe 为该程序集中的一个或多个类型生成架构。可以使用 /type 选项来指定为其生成架构的类型。输出架构被命名为 schema0.xsd、schema1.xsd,依此类推。Xsd.exe 只有在给定类型使用 XMLRoot 自定义属性指定命名空间时才产生多架构。
常规选项 选项 说明 /h[elp] 显示此工具的命令语法和选项。 /o[utputdir]:directory 指定输出文件的目录。此参数只能出现一次。默认为当前目录。 /? 显示此工具的命令语法和选项。
XSD 文件选项 必须为 xsd 文件仅指定下列选项中的一个。
选项 说明 /c[lasses] 生成与指定架构相对应的类。若要将 XML 数据读入对象,请使用 System.XML.Serialization.XMLSerializer.Deserializer 方法。 /d[ataset] 生成一个从 DataSet 派生的类,该类与指定的架构相对应。若要将 XML 数据读入派生类,请使用 System.Data.DataSet.ReadXml 方法。
还可以为 .xsd 文件指定下列任何选项。
选项 说明 /e[lement]:element 指定架构中要为其生成代码的元素。默认情况下,键入所有元素。可以多次指定该参数。 /l[anguage]:language 指定要使用的编程语言。从 CS(默认)、VB 或者 JS 中选择。还可以为实现 System.CodeDom.Compiler.CodeDomProvider 的类指定完全限定名。 /n[amespace]:namespace 为生成的类型指定运行库命名空间。默认命名空间为 Schemas。 /u[ri]:uri 为架构中要为其生成代码的元素指定 URI。该 URI(如果存在)应用于使用 /element 选项指定的所有元素。
DLL 和 EXE 文件选项 选项 说明 /t[ype]:typename 指定要为其创建架构的类型的名称。可以指定多个类型参数。如果 typename 不指定一个命名空间,则 Xsd.exe 将程序集中的所有类型与指定类型相匹配。如果 typename 指定一个命名空间,则仅匹配那个类型。如果 typename 以星号字符 (*) 结尾,则此工具匹配所有以 * 前的字符串开头的类型。如果省略 /type 选项,则 Xsd.exe 为程序集中的所有类型生成架构。
备注 Xsd.exe 执行下列操作:
XDR 到 XSD 使用精简 XML 数据架构文件生成 XML 架构。XDR 为早期基于 XML 的架构格式。 XML 到 XSD 使用 XML 文件生成 XML 架构。 XSD 到 DataSet 使用 XSD 架构文件生成公共语言运行库 DataSet 类。生成的类为规则 XML 数据提供复杂对象模型。 XSD 到类 使用 XSD 架构文件生成运行库类。生成的类可以和 System.XML.Serialization.XMLSerializer 一起使用以读取和编写遵循架构的 XML 代码。 类到 XSD 使用运行库程序集文件中的一个或多个类型生成 XML 架构。生成的架构定义由 System.XML.Serialization.XMLSerializer 使用的 XML 格式。 Xsd.exe 只允许操作遵循由 WWW 联合会 (W3C) 提议的 XML 架构定义 (XSD) 语言的 XML 架构。有关 XML 架构定义提议或 XML 标准的更多信息,请参阅 http://w3c.org

一:C#生成XML,其元素或属性由类的定义来设置(xml串行化)

将一个字符串转到一个XML文档中的xmlAttribute或xmlElement

using System;System.xml.Serialization;

namespace xmlserializa

{

1.初始化一个类,设置属性值

[XmlRoot("Truck")] ----设置作为XML中的根元素名称     public Truck()         { }                [XmlAttribute("id")] --------设置作为xml中的属性         public int ID         {             get{return this._id;}             set { this._id = value; }         }         [XmlElement("chepai")]------设置作为XML中的元素(默认状态)         public string cheID         {             get { return this._cheID; }             set { this._cheID = value; }         }         private int _id = 0;         private string _cheID = "";    }

class Program     {         [STAThread]         static void Main(string[] args)         {

2.创建XmlSerializer实例

XmlSerializer ser = new XmlSerializer(Type.GetType("ConsoleApplication1.Truck"));             Truck tr = new Truck();             tr.ID = 1;             tr.cheID = "赣A T34923";

3.Serialize方法--完成对类的串行化             ser.Serialize(Console.Out, tr);

}

}

个人总结,这个可以用来在C#中对XML的生成。

二:C#生成XSD规范,利用XmlSchema类

1。xsd基础:

类型:xs:integer;   xs:positiveInteger;(>0的整数);    xs:nonPositiveInteger;(<=0的整数);         xs:Bool;    xs:string         xs:dateTime;(日+时);       xs:date;(日);           xs:time;(时);

<xs:schema....>

<xs:complexType name="autotype">------2级    <xs:sequence>          <xs:element name="name" type="xs:string"/>-----1级     </xs:sequence> </xs:complexType>

<xs:complexType name="booktype">-----3级    <xs:sequence>           <xs:element name="typename" type="autotype"/>------应用2级     </xs:sequence> </xs:complexType>

<xs:element name="book" type="booktype"/>-----应用3级

</xs:schema>

2。设计成XML模式

class Program     {         [STAThread]         static void Main(string[] args)         {  XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());             nsm.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");             XmlSchema sche = new XmlSchema();             XmlSchemaComplexType cauth = new XmlSchemaComplexType();             cauth.Name = "author";             XmlSchemaSequence seqauth = new XmlSchemaSequence();             XmlSchemaElement ele = new XmlSchemaElement();             ele.Name = "name";             ele.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");             seqauth.Items.Add(ele);             XmlSchemaElement eleage = new XmlSchemaElement();             eleage.Name = "age";             eleage.SchemaTypeName = new XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema");             seqauth.Items.Add(eleage);             cauth.Particle = seqauth;             sche.Items.Add(cauth);                         sche.Compile(new ValidationEventHandler(valia));             sche.Write(Console.Out, nsm);         } }

个人总结:

结果:

<?xml version="1.0" encoding="gb2312"?> ----------------xs:..........->xmlNamespaceManager.AddNamespace <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">-new XmlSchema   <xs:complexType name="author">------------------new XmlSchemaComplexType     <xs:sequence>----------------------------------new XmlSchemaSequence       <xs:element name="name" type="xs:string"/>---new XmlSchemaElement       <xs:element name="age" type="xs:positiveInteger"/>------new XmlSchemaElement      </xs:seqence>   </xs:complexType> </xs:schema>

XmlSchema.Items.Add(XmlSchemaComplexType) XmlSchemaComplexType.Particle = XmlSchemaSequence XmlSchemaSequence.Add(XmlSchemaElement)

http://blog.sina.com.cn/s/blog_5d77d3390100btr4.html

C#生成XSD规范的更多相关文章

  1. 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD

    利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...

  2. XsdGen:通过自定义Attribute与反射自动生成XSD

    前言 系统之间的数据交互往往需要事先定义一些契约,在WCF中我们需要先编写XSD文件,然后通过自动代码生成工具自动生成C#对象.对于刚刚接触契约的人来说,掌握XMLSpy之类的软件之后确实比手写XML ...

  3. JDK Tools - wsimport: 编译 WSDL 生成 JAX-WS 规范的 Java 类

    wsimport 命令是用来编译 wsdl 生成JAX-WS 规范的 Java 类的工具. 命令格式 wsimport [ options ] wsdl 命令参数 -s directory 指定源文件 ...

  4. 根据xml文件自动生成xsd文件

    根据xml生成xsd文档 1. 找到vs自带的xsd.exe工具所在的文件夹位置: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 注意 ...

  5. 根据XML文件生成XSD文件

    在.net开发环境中查找XSD.exe文件,比如我的在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下,将该路径添加到Path中,打开控制台,到 ...

  6. 如何用xmlspy将xml文档生成xsd文件

    所以我们有必要知道如何通过xmlspy这个非常方便的工具进行xml的转换工作.点击“File”-“New”系统会弹出“create new document”的窗口,此时选择“xml XML docu ...

  7. SpringBoot入门教程(二十)Swagger2-自动生成RESTful规范API文档

    Swagger2 方式,一定会让你有不一样的开发体验:功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能:及时更新 :开发过程中花一点写注释的时间,就可以及时的更新API文档 ...

  8. 使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件

    vs自带命令行工具 命令:xsd  xml文件路径 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>xsd d:Scheme.xml ...

  9. 如何由XSD自动生成XML和实体类

    项目中有时候要用XML作为数据源,因此需要定义XML文件和相应的类,最佳方法是首先定义XSD,然后自动生成实体类,最后生成XML和填充数据:读取XML数据源的时候,首先用XSD验证XML数据格式,然后 ...

随机推荐

  1. centos 设置时间为北京时间

    https://www.cnblogs.com/biaopei/p/7730462.html

  2. 尚硅谷面试第一季-07Spring Bean的作用域之间有什么区别

    目录结构: 关键性代码: beans.xml <!-- ★bean的作用域 可以通过scope属性来指定bean的作用域 -singleton:默认值.当IOC容器一创建就会创建bean的实例, ...

  3. topcoder srm 662 div1

    problem1 link 首先枚举差值$d$,判断是否存在一个序列任意连续两个之间的差值小于$d$. 首先将数字排序,然后从小到大依次放置每一个数字.每个当前的数字有两个位置可以放,当前序列的前面或 ...

  4. SOAP和WebService的那些事

    当初对这段历史有过一点研究,不过当初写得关于这部分历史的论文不知道被我丢哪儿去了,下面我用通俗一点的语言来话说一下这段历史吧,因为当初详细到具体人物具体时间的已经记不清了,所以这里写得不够专业,大家就 ...

  5. ibus-libpinyin 无法选择除第一个外的候选词

    其实不只一个人遇到这问题 https://github.com/libpinyin/ibus-libpinyin/issues/127 临时可用的解决办法是: 清理libpinyin的cache目录相 ...

  6. JXOI2018守卫 区间DP

    链接 https://loj.ac/problem/2545 思路 f[i][j]表示i到j区间的最小监视人数 可以预处理出来g[i][j],表示i能否监视到j (其实预处理的关系不大,完全可以直接判 ...

  7. MySQL 日期时间函数

    目录 datetime和timestamp区别: timestamp类型字段特殊性: Mysql获取日期时间函数: now() curdate() curtime() Extract() last_d ...

  8. HDU 6191 Query on A Tree(可持久化Trie)

    题意 \(n\) 个点的有根树,根为 \(1\) .每个点有点权,有 \(q\) 个询问,每次询问以 \(u\) 为根的子树的点的点权中异或 \(x\) 所得的最大值是多少. 思路 求出整棵树的 \( ...

  9. Docker3之Swarm

    Make sure you have published the friendlyhello image you created by pushing it to a registry. We’ll ...

  10. Katana的WebAPI集成Swagger 解决方案

    这位大哥写的博客很清楚了,我就不重复了. http://www.cnblogs.com/caodaiming/p/4156476.html 错误解决 http://blog.csdn.net/gold ...