博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML通過XSD產生CLASS
阅读量:5302 次
发布时间:2019-06-14

本文共 4315 字,大约阅读时间需要 14 分钟。

步驟一:通過XML獲取XSD

格式:xsd "XML的完整路徑帶文件名" /O:"輸出路徑不帶文件名"。

C:\Windows\system32>xsd "D:\2 Queue_List\QueueList_request.xml" /O:"D:\2 Queue_List"

步驟二:通過XSD獲取Class

xsd file.xsd {/classes | /dataset} [/element:element] [/language:language] [/namespace:namespace] [/outputdir:directory] [URI:uri]

C:\Windows\system32>xsd /c "D:\2 Queue_List\QueueList_request.xsd" /O:"D:\2 Queue_List"

步驟三:通過Class獲取XML

注意推薦把產生的Class中的數組變成List方便使用。

寫XML幫助類

using System.IO;using System.Text;using System.Xml.Serialization;namespace XSD{    ///     /// XmlHelper 的摘要描述    ///     public class XmlHelper    {        public XmlHelper()        {            //            // TODO: 在此加入建構函式的程式碼            //        }        public string Serialize
(T dataToSerialize) { try { var serializer = new XmlSerializer(typeof(T)); //// 不聲明頭 //XmlWriterSettings settings = new XmlWriterSettings(); //settings.Indent = true; //settings.NewLineChars = ""; ////settings.Encoding = encoding; ////settings.IndentChars = " "; //// 不聲明頭 //settings.OmitXmlDeclaration = true; // 強制指定新的命名空間,這裡設置為空 XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add(string.Empty, string.Empty); Utf8StringWriter stringwriter = new Utf8StringWriter(); serializer.Serialize(stringwriter, dataToSerialize, namespaces); return stringwriter.ToString(); } catch { throw; } } public T Deserialize
(string xmlText) { try { var stringReader = new System.IO.StringReader(xmlText); var serializer = new XmlSerializer(typeof(T)); return (T)serializer.Deserialize(stringReader); } catch { throw; } } public class Utf8StringWriter : StringWriter { public override Encoding Encoding { get { return Encoding.UTF8; } } } }}

測試方法

using System;using System.Collections.Generic;using System.Text;namespace XSD{    class Program    {        static void Main(string[] args)        {            Queue_List queueList = new Queue_List();            queueList.Items = new List();            #region queueNumber            Queue_ListQueueNumber qn = new Queue_ListQueueNumber();            qn.queueDetails = new List
(); //Queue_ListQueueNumberQueueDetails obj = new Queue_ListQueueNumberQueueDetails(); //obj.number = "1"; //qn.queueDetails.Add(obj); qn.queueDetails.Add(new Queue_ListQueueNumberQueueDetails() { number = "1" }); queueList.Items.Add(qn); #endregion Queue_ListCategoryDetails bb = new Queue_ListCategoryDetails(); bb.subQueueInfoDetails = new List
(); //Queue_ListCategoryDetailsSubQueueInfoDetails b11 = new Queue_ListCategoryDetailsSubQueueInfoDetails(); //b11.identificationType = "C"; //b11.itemNumber = "1"; //bb.subQueueInfoDetails.Add(b11); bb.subQueueInfoDetails.Add(new Queue_ListCategoryDetailsSubQueueInfoDetails() { identificationType = "C", itemNumber = "1" }); queueList.Items.Add(bb); #region scanRange Queue_ListScanRange cc = new Queue_ListScanRange(); cc.rangeQualifier = "701"; cc.rangeDetails = new List
(); Queue_ListScanRangeRangeDetails c11 = new Queue_ListScanRangeRangeDetails(); c11.max = "250"; c11.min = "1"; cc.rangeDetails.Add(c11); queueList.Items.Add(cc); #endregion //qn.queueDetails = new Queue_ListQueueNumberQueueDetails[1] {Queue_ListQueueNumberQueueDetails}; string strXml = new XmlHelper().Serialize(queueList); Console.WriteLine(strXml); Console.Read(); } }}

转载于:https://www.cnblogs.com/chen110xi/p/6113256.html

你可能感兴趣的文章
SimpleDateFormate的使用
查看>>
菜鸟运维笔记:Windows上用Xshell管理你的云主机
查看>>
JavaScript中的this
查看>>
Activity生命周期
查看>>
jsp
查看>>
OpenNI / NITE的Stable版更新
查看>>
03 基本数据结构 - 栈
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
微信小程序之随笔
查看>>
每秒处理10万高并发订单的乐视集团支付系统架构分享
查看>>
Lua_02
查看>>
ios蓝牙详解
查看>>
安装MySQL5.7.18遇到的坑
查看>>
React Native在Android平台运行gif的解决方法转载
查看>>
Mybatis RowBounds 是逻辑分页
查看>>
hdu 3341(ac自动机+状态压缩)
查看>>
51单片机之蓝牙遥控小车_效果展示+单片机知识+完整蓝牙电车代码
查看>>
Sql Server中REPLACE函数的使用
查看>>
SqlServerl的行转列
查看>>
JavaScript跨域总结与解决办法
查看>>