码迷,mamicode.com
首页 > Windows程序 > 详细

C#生成XSD规范

时间:2015-01-24 06:45:42      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

一: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规范

标签:

原文地址:http://www.cnblogs.com/qq260250932/p/4245377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!