//数据类节点
[XmlRoot("SQB_HEAD")]
//输出节点带命名空间
//[XmlRoot(ElementName = "SQB_HEAD", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public class SQB_HEAD
{
public string WORK_NO { get; set; }
public string GATEPASS { get; set; }
public string GATEPASS_NO { get; set; }
//输出头节点SQB_BODYList和子节点SQB_BODY,List<SQB_BODY> 必须指定Type,SQB_BODY[]数组无需指定Type属性
//[XmlArray("SQB_BODYList"),XmlArrayItem("SQB_BODY", Type = typeof(SQB_BODY))]
//直接输出子节点SQB_BODY
[XmlElement(ElementName = "SQB_BODY", Type = typeof(SQB_BODY))]
public List<SQB_BODY> ArrSQB_BODY { get; set; }
}
public class SQB_BODY{
public string Column1 {get; set; }
public string Column2 {get; set; }
[XmlElement(ElementName = "SQB_BODY_T", Namespace = "http://www.chinaport.gov.cn/tcs/v2")]
public SQB_BODY_T OSQB_BODY_T {get; set; }
}
public class SQB_BODY_T{
public string Column3 {get; set; }
public string Column4 {get; set; }
[XmlArray("SQB_BODY_XList"),XmlArrayItem("SQB_BODY_X")]
public SQB_BODY_X[] ArrSQB_BODY_X { get; set; }
}
public class SQB_BODY_X{
public string Column5 {get; set; }
public string Column6 {get; set; }
}
//XmlSerializer代码
Type _type = typeof(SQB_HEAD);
SQB_HEAD objVal = new SQB_HEAD();
var OSQB_BODY_X = new SQB_BODY_X();
var OSQB_BODY_T = new SQB_BODY_T();
OSQB_BODY_T.ArrSQB_BODY_X = (new List<SQB_BODY_X>{OSQB_BODY_X}).ToArray();
var OSQB_BODY = new SQB_BODY();
objVal.ArrSQB_BODY = new List<SQB_BODY>{ }
#region XML序列化
XmlSerializerNamespaces xmlnsEmpty = new XmlSerializerNamespaces();
//xmlnsEmpty.Add("", "");//去除默认命名空间 xmlns:xsd和xmlns:xsi
//以下两步会直接将命名空间加在XML指定的Root节点上(SQB_HEAD),如需分别加,应分开序列化节点
xmlnsEmpty.Add("", "http://www.w3.org/2001/XMLSchema-instance");//添加命名空间,子数据无需加前缀
xmlnsEmpty.Add("tcs", "http://www.chinaport.gov.cn/tcs/v2");//添加命名空间,并将子数据全部添加上tcs:前缀
XmlSerializer xmlser = new XmlSerializer(_type);
StringBuilder sb = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(sb, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
xmlser.Serialize(writer, objVal, xmlnsEmpty);
}
#endregion
//转换为XML String
string XMLStr = sb.ToString();