要点:建议优先选用属性的方式记录数据,除非还需要包容层级式的数据。

优点:

1. 可以完全覆盖关系型数据库的数据格式设计,利于交换。

2. 占用空间小。相当于 JSON 格式,不再有大量重复的节点名后缀(包括元素和子元素的):

2.1 属性方式,内存占用 577 字节:

<?xml version="1.0" encoding="UTF-8"?>
<Basis><!--这是佛经的数据库--><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/><Content id="1" category="般若" name="金刚般若波罗密多经" version="1"/></Basis>

2.2 元素方式,内存占用 781 字节:

<?xml version="1.0" encoding="UTF-8"?>
<Basis><!--这是佛经的数据库--><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content><Content><id>1</id><category>般若</category><name>金刚般若波罗密多经</name><version>1</version></Content></Basis>

建议:只要把 Xml 的数据格式设计成关系型数据库的格式,就能完全的使用属性的方式来储存数据。利用标准格式的分表体系来完成辅助数据的储存,可以参考我的另一篇文章“数据库 BCDE”。

Xml 建议优先使用属性的更多相关文章

  1. 基于xml文件实现系统属性配置管理

    文章标题:基于xml文件实现系统属性配置管理 . 文章地址: http://blog.csdn.net/5iasp/article/details/11774501 作者: javaboy2012 E ...

  2. 使用dom4j工具:获取xml中的标签属性(三)

    package dom4j_read; import java.io.File; import java.util.List; import org.dom4j.Attribute; import o ...

  3. 编写高质量代码改善C#程序的157个建议[优先考虑泛型、避免在泛型中声明静态成员、为泛型参数设定约束]

    前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托 ...

  4. hibernate的.hbm.xml文件文件配置属性详解

    一般.hbm.xml文件如下面: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "- ...

  5. XML中<beans>中属性概述

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  6. jboss:在standalone.xml中设置系统属性(system-properties)

    就象在.net的web应用中,可以在web.config中设置appSettings一样,jboss的standalone.xml中也可以由开发人员自行添加系统属性,用法如下: </extens ...

  7. XML中的DOCTYPE属性

    一.先来两个小例子 内部dtd将standalone设为真. <?xml version="1.0" standalone="yes"?> < ...

  8. c# XML序列化与反序列化 属性字段标识

    序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAt ...

  9. 通过struts.xml搭建、为属性注入值_2015.01.04

    01:web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app version=& ...

随机推荐

  1. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  2. js:使用js过程中遇到的一个小问题

    在一个作业中使用了js,函数A调用函数B.当A和B中均含有变量i的时候,相关操作结果可能会出错. 将B中的i替换为j(j不存在于A中)后,结果正确. 目前考虑原因是两个变量i有相关性(或者说实际上就是 ...

  3. js之iframe子页面与父页面通信

    iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...

  4. C# 金钱 小写转大写的算法

    调用 ConvertMoney的ConvertMoneyToWords(decimal money)方法即可 using System; using System.Collections.Generi ...

  5. Shell 字符串的截取

    直接上代码了. linux-:/.sh #!/bin/sh STR=HelloWorld echo 'STR == ' $STR :} # == } #结果为World } # Use : ${STR ...

  6. JavaCV配置

    下载javacv-1.2-bin.zip https://github.com/bytedeco/javacv 解压 在Eclipse项目 Referenced Libraries 中 Add Ext ...

  7. JS中定义对象原型的两种使用方法

    第一种: function Person() { this.username = new Array(); this.password = "123"; } Person.prot ...

  8. WPF 动画显示控件

    当我们要显示一个控件的时候,不仅仅要显示这个控件,还要有动画的效果. 主要用到了DoubleAnimation类. public static void ShowAnimation(object co ...

  9. Python 下载网络mp4视频资源

    最近着迷化学, 特别是古代的冶炼技术,感叹古人的聪明. 春秋时期的炼铁方法是块炼铁,即在较低的冶炼温度下,将铁矿石固态还原获得海绵铁,再经锻打成的铁块.冶炼块炼铁,一般采用地炉.平地筑炉和竖炉3种.铁 ...

  10. 如何用 SQL Tuning Advisor (STA) 优化SQL语句

    在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等.在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning ...