XML代码生成器——XMLFACTORY 简介(三)
XML代码生成器——XMLFACTORY 简介(三)
这一篇我们讲“类名称”页签 的配置功能,您将了解到:如何为Xml元素指定对应的类名称及脱壳功能。
如果,你没看过这个系列的第一篇文章,请先去看这篇文章,否则你指定看不懂这篇。 XML代码生成器——XMLFACTORY 简介(一)
脱壳功能十分强大,所提供的灵活性,足以媲美手写代码。先看样本XML:
<Student>
<Name>小雷</Name>
<Birthday>1982-06-29</Birthday>
<Education School="清华大学" Major="计算机"/>
</Student>
打开页面:http://www.codingfactory.net/Page/XmlFactory/client/XmlFactory_Flex.html
把上面的XML粘到样本XML中,点“NEXT”直到显示“类名称”页签;如下图所示:

注意红色方框圈中的地方,我们分别按照A,B两种不同方案进行操作,请比对生成的实体类
| A方案 | B方案 |
|---|---|
| 把文本Education改成Educ 点击“NEXT”直到弹出“生成代码”页面 |
把Education删去 点击“NEXT”直到弹出“生成代码”页面 |
public class Student |
public class Student |
A方案很好理解,把元素<Education>映射为实体类Educ;而B方案并没有为元素<Education>生成对应的实体类,但是元素<Education>所包函的信息:School,Marjor并没有被忽略,而是映射成为了Student类的属性。
如果你打算把Student的信息存到数据库里(用一张表,而不是二张表),我想B方案生成的实体类更方便一些。我们把B方案的操作称作“脱壳”操作。因为没有为<Education>这个“壳”生成实体类,但却保留了School,Major这样的“核”。所以称为“脱壳”。脱壳操作虽然没有为元素<Education>定义类,但当你把Student类对象序列化为Xml时,成生的Xml仍然包函<Education>元素,所以你不用担心脱壳后生成的Xml结构有变化。
XmlFactory代码生成器的脱壳功能比较强大,不只可以脱一层壳,而是可以脱去好几层的壳,直到暴露出核心的数据。看下面这个例子。
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
很明显,唯一有价值的数据是元素<td>中的值。以下A,B形式,你想要那种实体类呢?
| A形式 | B形式 |
|---|---|
public class Table |
public class Table |
如果你需要A形式的实体类,那就粘贴上面的Xml到“样本Xml”中,然后,一直点"Next"按钮,直到弹出“生成代码”页面。如果你需要B形式的实体类,请在“类名称”列中,填写:Tr Td。如下图:

最后声明一下:不是所有元素,都可以进行脱壳操作。什么情况下可以进行脱壳操作呢?我只能简单的说“类名称”页签中,第二,第三个表格中的元素,都可以进行脱壳;而第一个表格中的元素必须映射为类。至于为什么,我就不展开了,有兴趣的朋友,可参考官方文档中“脱壳定义及规则”章节。http://www.codingfactory.net/Page/XmlFactory/Help/help_cn.htm
XML代码生成器——XMLFACTORY 简介(三)的更多相关文章
- XML代码生成器——XMLFACTORY 简介(一)
XML代码生成器——XMLFACTORY 简介(一) 软件开发中经常要和第三方应用交互数据,特别是在银行.电信行业,这种需求更是必不可少,往往一个系统要和三五个其它系统交互数据,而数据交换的报文经常采 ...
- XML代码生成器——XMLFACTORY 简介(二)
XML代码生成器——XMLFACTORY 简介(二) 因为春节和项目上线的原因,离写上一篇文章的时间已经好久了. 不知道是事情太多了,还是自已效率太低了.总之是时间不够用. 哎,苦逼的程序员 ...
- XML代码生成器——XMLFACTORY 简介(四)
XML代码生成器——XMLFACTORY 简介(四) 这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型. 如果,你没看过这个系列的第一篇文章,请先 ...
- Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...
- XML.01-语法简介
body,td { font-family: calibri; font-size: 10pt } XML.01-语法简介 文档声明 元素(标签) 属性 注释 特殊字符 CDATA区域 处理指令 ...
- 2016 - 1 - 23 xml解析 -- 语法简介
一: XML的概念 1. 一种可拓展标记语言 2. 与json一样,也是一种常用的数据交互格式 3. 一般也叫XML文档---XML Document 二: XML语法 1.一个完整的XML文档一 ...
- Hibernate(七):*.hbm.xml配置文件中Set三个属性
背景: 在上一篇文章中实现双向关联时,其中在Customer.java中我们使用了java.util.List<Order>来关联多的Order.其实还有另外一种实现方法:使用java.u ...
- XML语言1.简介和语法
一.什么是XML语言? XML 指可扩展标记语言(Extensible Markup Language) Xml是独立于软件和硬件的信息传输工具. XML 是一种很像HTML的标记语言. 但xml不是 ...
- .net webapi 接收 xml 格式数据的三种情况
webapi 接收 xml 的三种方法 前段时间接到一个任务写一个小接口,要接收java端返回过来的短信xml数据. 刚拿到项目,我的第一想法是对方会以什么形式发送xml格式的数据给我呢,设想三种情况 ...
随机推荐
- Python笔记总结week4
1. Built-in functions 函数可能遇到的问题:下面例子函数改变了函数需要传入的参数 li = [11,22,33,44] def f1(arg): arg.append(55) ...
- Python:函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义和调用 >>> def add(x,y): ... print('x=',x) #Python3必须加&quo ...
- ORACLE 误删除视图恢复
1.使用 dba_views 回退到特定时间段,查看定义 select view_name,text from (select * From dba_views AS OF TIMESTAMP(SYS ...
- android xfermode绘图
1.fermode:是来自 transfer-modes,在画笔中设置xfermode后,画笔在使用的时候就会应用设置的像素转换模式.就类似于ps中的选取功能,留下的选取是从原选区中去除还是合并,取交 ...
- HTML引入外部文件,解决统一管理导航栏问题。
1.IFrame引入,看看下面的代码 <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 ...
- bzoj 3196: Tyvj 1730 二逼平衡树
#include<cstdio> #include<ctime> #include<cstdlib> #include<iostream> #defin ...
- Sublime Text 3 中文乱码的解决方法
Sublime Text 3 中文乱码表现如下图: 解决方法很简单,三步搞定: 步骤一: 下载ConvertToUTF8,下载地址:http://pan.baidu.com/s/1gd5SWmB 步骤 ...
- 【转载】桥接Microsoft Word和浏览器
原文链接地址: http://www.infoq.com/cn/articles/convert-microsoft-word-to-html?utm_campaign=rightbar_v2& ...
- Spring IOC 依赖注入的两种方式XML和注解
依赖注入的原理 依赖注入的方式---XML配置 依赖注入的方式---注解的方式 Spring 它的核心就是IOC和AOP.而IOC中实现Bean注入的实现方式之一就是DI(依赖注入). 一 DI的原理 ...
- 移动端div移动
<!doctype html> <html lang="en"> <head> <meta http-equiv="Conten ...