C#代码生成XML文档以及规范XSD

C#代码生成XML文档以及规范XSD

 

一: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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值