xml的xsi:type序列化和反序列化
最近在做HL7V3的对接,关于XML的序列化和反序列化遇到xsi:type的问题解决方法
实体类定义:
public class HL7V3_ProviderOrganization
{
public HL7V3_Name Name { get; set; }
}
public class Bomb : HL7V3_Name
{ }
[XmlInclude(typeof(Bomb))]
public class HL7V3_Name
{
[XmlElement]
public HL7V3_Name_Item Item { get; set; }
}
public class HL7V3_Name_Item
{
[XmlElement]
public HL7V3_Ele_Value Part { get; set; }
}
public class HL7V3_Ele_Value
{
[XmlAttribute]
public string Value { get; set; }
}
XML序列化:
var s = new HL7V3_ProviderOrganization()
{
Name = new Bomb()
{
Item = new HL7V3_Name_Item()
{
Part = new HL7V3_Ele_Value()
{
Value = "surprise motherfucker!"
}
}
}
}.ToXml();
XML生成:

具体可参考:
https://docs.microsoft.com/en-us/dotnet/standard/serialization/controlling-xml-serialization-using-attributes
xml的xsi:type序列化和反序列化的更多相关文章
- Rest中的XML与JSON的序列化与反序列化
		#region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ... 
- JavaScript XML 兼容处理,序列化和反序列化以及回调事件
		浏览器中XML DOM的支持 IE中通过ActiveXObject实现了XML的支持,存在一下几个版本:Microsoft.XmlDom,MSXML2.DOMDocument,MSXML2.DOMDo ... 
- C# url的编码解码,xml和json的序列化和反序列化
		参考中国慕课网dot net web编程应用程序实践 using System; using System.Collections.Generic; using System.IO; using Sy ... 
- xml、json的序列化与反序列化
		xml数据 : XmlSerializer.Serialize 与 XmlSerializer.Deserialize,使用起来稍有些复杂,需要对 “实体模型” 的“对应属性” 进行 节点特 ... 
- XmlSerializer 对象的Xml序列化和反序列化
		http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ... 
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
		这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ... 
- XML文件序列化和反序列化的相关内容
		问题缘由: XML反序列化出错,XML 文档(2, 2)中有错误,不应有 <configuration xmlns=''> 解决方法: 其实这个是很简单的,因为一般来说都是XML文档书写错 ... 
- 序列化与反序列化 - BinaryFormatter二进制(.dat)、SoapFormatter(.soap)、XmlSerializer(.xml)
		序列化的作用是什么?为什么要序列化? 1.在进程下次启动时读取上次保存的对象的信息. 2.在不同的应用程序域或进程之间传递数据. 3.在分布式应用程序中的各应用程序之间传输对象. 所为序列化,就是将对 ... 
- C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化
		这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ... 
随机推荐
- 一篇你看了就懂的DNS详解
			DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住IP. 通过域名,最终得到该域名对应的IP地址 ... 
- Spring-mvc登录方法及JSP的拦截
			添加登录拦截器:LoginInterceptor import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Htt ... 
- windows下nodejs监听80端口
			windows下nodejs监听80端口时提示端口被占用报错,解决方案如下: 1.cmd---netstat -ano查看是什么程序占用了80端口: 2.控制面板--管理工具--服务--停止 SQL ... 
- jquery判断输入框的字符串是否为空或者空格
			function checkKey(key) { if($.trim(key) == ''){ /** * 输入的字符串为空,空格 */ alert('请输入关键字'); return false; ... 
- NavicatForOracle无法连接数据库,报错ORA-28547
			因为换了新项目,要用到oracle数据库,但是用Navicat连接oracle不像连接MySql那样简单,连接的时候总是报ORA-28547,最后搜了一下解决方案发现是install client没有 ... 
- python学习之老男孩python全栈第九期_day014作业
			0. 默写a. 生成器函数获取移动平均值例子: def init(func): def inner(*args,**kwargs): ret = func(*args,**kwargs) ret.__ ... 
- gulp前端自动化环境搭建详解
			1.安装 nodejs Grunt和所有grunt插件都是基于nodejs来运行的, https://nodejs.org/ 安装完成之后在终端 node -v 查看安装版本 npm -v 查看np ... 
- JdbcTemplate  方法使用
			作者QQ:1095737364 QQ群:123300273 欢迎加入! execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate ... 
- thymeleaf标签使用方法总结
			https://blog.csdn.net/quuqu/article/details/52511933 常用th标签https://www.cnblogs.com/suncj/p/4030393.h ... 
- 【java基础】基础小总结
			学习java,将自己的心得或总结写下来吧. Java 标识符 标识符由字母,下划线(_),美元符($)和数字组成. 标识符不能以数字开头. 标识符不能使java关键字. 标识符对大小写敏感. Java ... 
