XML通過XSD產生CLASS
步驟一:通過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的更多相关文章
- 使用 FOR XML PATH 產生 XML 格式時,遇到 NULL 該如何處理?
當您嘗試利用 FOR XML PATH 產生 XML 格式時,若遇到 Result Set 為 Null 時,會導致整個查詢結果為 Null ,若您想要在查不到資料時,可以顯示自訂的內容,本文將提供可 ...
- Datagard產生gap
本文轉載自無雙的小寶的博客:http://www.cnblogs.com/sopost/archive/2010/09/11/2190085.html 有時候因為網路或備份故障等原因,主機所產生的歸檔 ...
- ASP.NET Web API 文件產生器 - 使用 Swagger
转帖:http://kevintsengtw.blogspot.hk/2015/12/aspnet-web-api-swagger.html Swagger 是一套 API 互動文件產生器,使用 HT ...
- COB Epoxy灌膠時氣泡產生的原因與解決方法
COB的黑膠 (Epoxy)有氣泡通常是不被允許的,因為外部氣孔不但會影響到外觀,內部氣孔更有可能會破壞 Wire bonding 的鋁線穩定度.既使在COB製程剛完成的時候沒有通過功能測試,也不代表 ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)
說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)
說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)
JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...
- C# 在執行程式目錄下產生文件夾
//產生一個Log文件夾string appPath = Application.StartupPath; if (!Directory.Exists(appPath + "/log&quo ...
- 在XML里的XSD和DTD以及standalone的使用2----具体使用详解
如何定义XSD并在XML中使用XSD 同时XSD可以对XML中的格式进行约束,当约束失败时给出提示. 下面以下使用VS2010为平台进行演示. 1.新建一个项目,然后在项目中添加xml架构文件(.xs ...
随机推荐
- 网络工程实训_2路由器基本配置及IOS介绍
实验2:路由器基本配置及IOS介绍.包括:CLI的使用与IOS基本命令:配置文件的备份和IOS的备份:CDP协议. 一.实验目的 1.熟悉路由器CLI的各种模式: 2.熟悉路由器CLI的各种编辑命令: ...
- how-to-install-hyper-v-on-a-virtual-machine-in-hyper-v.aspx
BEFORE STARTING IT IS IMPORTANT TO KNOW THAT THIS ENVIRONMENT IS NOT SUPPORTED BY MICROSOFT. USE IT ...
- python分割数组里面重复的元素
c=[1,1,1,1,2,2,2,3,3,4,4,4,4,4,5,5,5,] a = [] x = [] for i in range(0,len(c)): if i + 1 < len(c): ...
- html颜色字体字符代码
HTML字体代码表 宋体 SimSun 宋体:SimSuncss中中文字体(font-family)的英文名称 黑体 SimHei Mac OS的一些: 微软雅黑 Microsoft YaHe ...
- linux设置系统日期时间
设置当前日期: date -s 08/06/2015 设置当前时间:date -s 10:03:00 写入BIOS: clock -w 显示当前日期时间: date
- [Hibernate] - Criteria Select
使用Hibernate的Criteria做查询. 参考文档: http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/querycri ...
- 清理java环境
system32中存在3个java*.exe文件,分别是: c:/windows/system32/java.exe c:/windows/system32/javaw.exe c:/windows/ ...
- HackerRank "Morgan and a String"
I saw the same sub-problem in LeetCode, and there exists a O(n) neat greedy solution: for _ in range ...
- 如何解决WebkitBrowser使用出错“Failed to initialize activation context”
本文转载自:http://www.cnblogs.com/supjia/p/4695671.html 本篇文章主要介绍了"如何解决WebkitBrowser使用出错“Failed to in ...
- LitDB笔记
首先,LitDB存储的不是json,而是bson.这里就有问题了,json是可以无限扩展的,但是bson不行.所有insert的时候需要使用实体类而不是hashtable.但是它又提供了一个叫做Bso ...