步驟一:通過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
{
/// <summary>
/// XmlHelper 的摘要描述
/// </summary>
public class XmlHelper
{
public XmlHelper()
{
//
// TODO: 在此加入建構函式的程式碼
//
} public string Serialize<T>(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<T>(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<object>(); #region queueNumber
Queue_ListQueueNumber qn = new Queue_ListQueueNumber();
qn.queueDetails = new List<Queue_ListQueueNumberQueueDetails>();
//Queue_ListQueueNumberQueueDetails obj = new Queue_ListQueueNumberQueueDetails();
//obj.number = "1";
//qn.queueDetails.Add(obj);
qn.queueDetails.Add(new Queue_ListQueueNumberQueueDetails() { number = "" });
queueList.Items.Add(qn);
#endregion Queue_ListCategoryDetails bb = new Queue_ListCategoryDetails();
bb.subQueueInfoDetails = new List<Queue_ListCategoryDetailsSubQueueInfoDetails>();
//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 = "" });
queueList.Items.Add(bb); #region scanRange
Queue_ListScanRange cc = new Queue_ListScanRange();
cc.rangeQualifier = "";
cc.rangeDetails = new List<Queue_ListScanRangeRangeDetails>();
Queue_ListScanRangeRangeDetails c11 = new Queue_ListScanRangeRangeDetails();
c11.max = "";
c11.min = "";
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();
}
}
}

下載

XML通過XSD產生CLASS的更多相关文章

  1. 使用 FOR XML PATH 產生 XML 格式時,遇到 NULL 該如何處理?

    當您嘗試利用 FOR XML PATH 產生 XML 格式時,若遇到 Result Set 為 Null 時,會導致整個查詢結果為 Null ,若您想要在查不到資料時,可以顯示自訂的內容,本文將提供可 ...

  2. Datagard產生gap

    本文轉載自無雙的小寶的博客:http://www.cnblogs.com/sopost/archive/2010/09/11/2190085.html 有時候因為網路或備份故障等原因,主機所產生的歸檔 ...

  3. ASP.NET Web API 文件產生器 - 使用 Swagger

    转帖:http://kevintsengtw.blogspot.hk/2015/12/aspnet-web-api-swagger.html Swagger 是一套 API 互動文件產生器,使用 HT ...

  4. COB Epoxy灌膠時氣泡產生的原因與解決方法

    COB的黑膠 (Epoxy)有氣泡通常是不被允許的,因為外部氣孔不但會影響到外觀,內部氣孔更有可能會破壞 Wire bonding 的鋁線穩定度.既使在COB製程剛完成的時候沒有通過功能測試,也不代表 ...

  5. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)

    說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...

  6. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)

    說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...

  7. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)

    JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...

  8. C# 在執行程式目錄下產生文件夾

    //產生一個Log文件夾string appPath = Application.StartupPath; if (!Directory.Exists(appPath + "/log&quo ...

  9. 在XML里的XSD和DTD以及standalone的使用2----具体使用详解

    如何定义XSD并在XML中使用XSD 同时XSD可以对XML中的格式进行约束,当约束失败时给出提示. 下面以下使用VS2010为平台进行演示. 1.新建一个项目,然后在项目中添加xml架构文件(.xs ...

随机推荐

  1. PostgreSQL Hardware Performance Tuning

    Bruce Momjian POSTGRESQL is an object-relational database developed on the Internet by a group of de ...

  2. int(M)与int

    int(M) ,加上zerofill后M才表现出有点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10 ...

  3. sqlserver 字符串拼接及拆开联表查询的问题

    一.sql根据一个以逗号隔开的人员guid类型的ID字符串查出其对应的姓名同样拼接成逗号隔开的字符串: 1.需求:管理员发送通知(通知分为普通通知,奖品订单,调查问卷三种类型)给用户,并且可以查看统计 ...

  4. Html下拉框的定义以及JS、Jquary取值、添加和移除

    现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test"  name=" ...

  5. 如何破解海蜘蛛ISP6.1.5 极其isp运营商 v6.1.5

    海蜘蛛ISPV6.1.5,目前破解版本中最稳定的!破解步骤如下:一.安装完毕进控制台二.使用muddyboot登陆 密码(123456)三.输入root回车四.输入regtools回车五.在web控制 ...

  6. 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)

    使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins) Note 这一章节的内容是基于 Scott Gonzalez 一篇博客 Building ...

  7. Android monkey介绍

    Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...

  8. Servlet Filter 3

    11.MD5加密 /** * 使用md5的算法进行加密 */ public static String md5(String plainText) { byte[] secretBytes = nul ...

  9. 解决方案:将已存在的项目 添加到 tfs解决方案中的时候 出现:新项目不能成功加入源码控制

    遇到此问题 可能是因为你的 解决方案文件 没有正确与 tfs服务器绑定导致的 解决方式是: 在打开任意一个源码文件的时候,打开 vs2013的 文件>> Go to File->So ...

  10. zend studio一些常用配置

    zend studio 常用 配置 1.zend中添加注释是ctrl+slash,这个slash在哪里?如何来取消注释 slash是斜杠'/'那个键,就是在,.之后的那个. 进行注释是 ctrl+'/ ...