XML代码生成器——XMLFACTORY 简介(四)

XML代码生成器——XMLFACTORY 简介(四)

这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型。

如果,你没看过这个系列的第一篇文章,请先去看这篇文章,否则您可能看不懂本文。 XML代码生成器——XMLFACTORY 简介(一)

<connectionStrings>
    <add name="con1" 
        providerName="System.Data.SqlClient"
        connectionString="Data Source=localhost;Initial Catalog=database1;"/>
    <add name="con2"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=localhost;Initial Catalog=database2;"/>
</connectionStrings>

上面的Xml是.net开发中用到的连接字符串配置节点,真正开发时当然用不着自已解析,微软都准备好了:ConfigurationManager.ConnectionStrings["sqlconn1"].ConnectionString; 我们在这里引用它仅用于说明案例。

你认为以下那种方式的实体类,获取数据更方便?

A方式 B方式

public class ConnectionStrings
{
   public List<Add> Add{ get; set; }
}

public class Add
{
  public String Name{ get; set; }
  public String ProviderName{ get; set; }
  public String ConnectionString{ get; set; }
}
/*
如果要获取name为con1的连接字符串需这样实现
connection为ConnectionStrings类对象
*/
String sConn = null;
foreach( Add add in connection.Add )
{
    if ( add.Name=="con1" )
    {
        sConn = add.ProviderName;
        break;
    }
}

public class ConnectionStrings
{
 public Dictionary<String,Add> Add{ get; set; }
}

public class Add
{
 public String Name{ get; set; }
 public String ProviderName{ get; set; }
 public String ConnectionString{ get; set; }
}
/*
如果要获取name为con1的连接字符串需这样实现
connection为ConnectionStrings类对象
*/
String sConn = connection.Add["con1"] .ProviderName;

A方式用List保存元素<add>中的值,而B方式用Dictionary进行保存。就本例而言,B方式更便于我们消费数据,它用元素<add>中name属性做为Dictionary的键值(key),而元素<add>本身做为Dictionary的值(value)进行存储。

如何用代码生成器生成B型式的实体类呢?

1.打开页面:http://www.codingfactory.net/Page/XmlFactory/client/XmlFactory_Flex.html

2.粘贴上面的Xml到“样本Xml”中,连续点“Next”直到显示“类属性”页签

3.左侧表格中选中类:ConnectionStrings,右侧表格中展开“MapKey”列中的下拉列表,选择“Name”项。如下图:

MapKey”中列出的项是元素<add>的子值,确切的说,是类Add的属性。你选择那一项,那一项就做为Dictionary的key;如果你什么都不选,那就生成A方式的实体类。注意:这一项的“数据类型”不可手工更改,因为元素<add>已经被指定为Add类。你可以在左侧列表中选中Add类,看看它的属性,其数据类型都可以任意选择。

如果你想指定类属性的名称,可以修改“属性名称”列的值。

FormatString”用于实体类对象序列化为Xml时,格式化属性文本。如:属性为DateTime类型,可在“FormatString”中填写"yyyy-MM-dd"。这样序列化为Xml时,该属性的值会像这样显示:2012-03-01。

Summary”是类属性的注释信息。生成的代码会是这个样子:

/// <summary>
/// 此处内容是在“类名称”页签的“类备注”列中填写的
/// <summary>
public class SomeClass
{
    /// <summary>
    /// 此处内容是在“类属性”页签的“Summary”列中填写的
    /// <summary>
    public Int32 Abc{ get; set; }
}

本文示例的生成代码:

http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9268 
http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9269

时间: 2024-10-11 07:17:46

XML代码生成器——XMLFACTORY 简介(四)的相关文章

XML代码生成器——XMLFACTORY 简介(一)

XML代码生成器——XMLFACTORY 简介(一) 软件开发中经常要和第三方应用交互数据,特别是在银行.电信行业,这种需求更是必不可少,往往一个系统要和三五个其它系统交互数据,而数据交换的报文经常采用Xml格式. Xml结构严谨,利于人的阅读,但格式较复杂,用代码解析和拼装有些繁琐.无论是把Xml转化成内存中的实体类对象,还是把实体类对象序列化为XML,都是个力气活,而且耗费时间. 还好,问题总是有解决的办法,这里向大家介绍一款在线代码生成器:XmlFactary.如果你有现成的Xml文档,那

XML代码生成器——XMLFACTORY 简介(三)

XML代码生成器——XMLFACTORY 简介(三) 这一篇我们讲“类名称”页签 的配置功能,您将了解到:如何为Xml元素指定对应的类名称及脱壳功能. 如果,你没看过这个系列的第一篇文章,请先去看这篇文章,否则你指定看不懂这篇. XML代码生成器——XMLFACTORY 简介(一) 脱壳功能十分强大,所提供的灵活性,足以媲美手写代码.先看样本XML: <Student>    <Name>小雷</Name>    <Birthday>1982-06-29&l

XML.01-语法简介

body,td { font-family: calibri; font-size: 10pt } XML.01-语法简介 文档声明 元素(标签) 属性 注释 特殊字符 CDATA区域 处理指令 啥是XML? xml (Extensible Markup Language)可扩展的标记语言,顾名思义,XML最重要的两个因素: 可扩展 标签,可以自定义的标签 XML可以看作是HTML的一个超集,但是,两者设计的目的是不一样的. HTML的设计目的是显示信息,而XML的设计目的是传输信息. XML干

浅谈用java解析xml文档(四)

继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使用dom4j解析,个人认为是四种解析方式里面最方便的一种,DOM4J是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用D

XML编程总结(四)——使用dom4j方式操作xml

(四)使用dom4j方式操作xml dom4j是解析XML的一种开源API,是jdom的升级品,用来读写XML文档.它具有性能优异.功能强大和极易使用的特点,它的性能超过sun公司官方的dom技术.dom4j对Xpath有良好的支持(使用xpath时需要导入jaxen的jar包),dom4j最大的特色使用大量的接口.使用dom4j时需要导入dom4j-xxx.jar包. Attribute ——Attribute定义了XML的属性 Branch ——Branch为能够包含子节点的节点如XML元素

XML SOAP应用简介

如果想了解SOAP到底是什么,就要自己动手建立自己的SOAP标准对象.本文可以帮助你起步. 简介 SOAP - 简单对象处理协议(Simple Object Access Protocol) - 是当前XML开发的热点.它是微软新一代Visual Studio的主要角色,是".NET"策略的基础.如果想用VB 6编制一个有保障的SOAP服务,可以查阅微软的SOAP工具包(VB).但如果想了解SOAP到底是什么,就要自己动手建立自己的SOAP标准对象.本文可以帮助你起步. 本文中,我们创

web.xml中&lt;security-constraint&gt;和四种认证类型

<security-constraint> 的子元素 <http-method> 是可选的,如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源. 子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用.如果没有 <auth-constraint> 子元素,这表明任何身份的用户都可以访问相应的资源.也就是说,如果 <security-c

【精】TCP/IP协议简介(四) 之 传输层UDP&amp;TCP

传输层:UDP 协议 一.传输层协议 从之前介绍的网络层协议来看,通信的两端是两台主机,IP 数据报首部就标明了这两台主机的 IP 地址.但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地讲,通信双方不是主机,而是主机中的进程. 主机中常常有多个应用进程同时在与外部通信(比如你的浏览器和 QQ 在同时运行),下图中,A 主机的 AP1 进程在于 B 主机的 AP3 进程通信,同时主机 A 的 AP2 进程也在与 B 主机的 AP4 进程通信. 两个主机的传

Python数据结构方法简介四————字典

字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个键值对之间用逗号(,)分割,整个字典包括在花括号({})中,键必须是唯一的,但值则不必.值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组. 1.创建字典 dict1={"a":1,"b":2,"c":"3","d":4} dict2={"a":[1,2,3,4