易截截图软件、单文件、免安装、纯绿色、仅160KB

3.3.1 XML格式的元数据


任何ORM的解决方案都应该提供一种易读的、容易编辑的映射文件格式,而不仅仅提供一个GUI图形工具。当下流行的对象/关系元数据格式都支持XML。使用XML格式的文件可以提供如下好处:首先它是轻量级的,提供很好的易读性,能够进行版本控制,可以在部署阶段定制。
但是XML格式文件真的是最好的选择吗?Java社团中就反对XML文件中使用了过多的反斜线。每个框架和服务器都需要使用其特定的XML描述符。
在我们看来,使用反斜线有三个主要的原因:
许多现存的元数据可读性和可编辑性都很差,究其原因就是缺乏对于属性元素默认值的支持。
元数据为基础的解决方案经常被滥用。元数据并不比Java代码更容易维护,过多的元数据会造成混乱。
一般的XML编辑器,尤其是那些IDE提供的,其编辑的质量远远比不上对于Java代码的支持。更糟糕的是,很多情况下这样的XML并不提供DTD,这样就无法进行验证。另外一个问题就是DTD的定义太通用了,以至于不会起到实际的作用。
然而,并不能就这样忽略ORM对于基于文本的元数据的使用需求。Hibernate就充分到了元数据的这些问题。其定义的元数据提供了很好的可读性以及默认值。当没有配置属性值的时候,Hibernate会利用反射机制找到类来完成默认值的配置。Hibernate还提供了完成的DTD。最新的IDE都已经更好的支持XML文件的编辑,包括动态的校验甚至包括自动完成配置的功能。如果这些仍然无法满足你的要求,那么我们将在第九章介绍一些工具来生成Hibernate映射文件。
让我们来看一下Hibernate中的映射文件。我们之前创建了Category类,现在需要把它映射到CATEGORY表中。为了完成这个配置,我们使用了列表3.4中的映射文件。
(1)每个Hibernate映射文件都应该声明DTD,它用来验证XML的语法是否正确。
(2)所有映射配置都放在<hibernate-mapping>元素之间,你可以随意配置的类,至于其他的配置我们将在后面说明。
(3)类category映射到CATEGORY表。表中的每一行都代表了Category的一个实例。
(4)至今为止我们并没有讨论对象标识的概念,所以你可能会对这种映射方式感到奇怪。这个主题将在3.4中讨论。为了理解这个问题,你必须知道CATEGORY表中的每一条记录都会有一个主键来对应内存中的对象的实例。<id>属性就是用来定义对象标识的。
(5)属性type映射到数据库的name列。需要注意的是type使用的是Hibernate内置的String类型,而不是java的类型或者数据库的类型。你可以把它理解为映射类型。这些都将在第六章


相关文档:

XMLHttpRequest 异步处理XML典型应用

声明对象实例
var xmlhttp = false;
//产生一个XMLHttpRequest对象实例
getHTTPRequestObject();
function getHTTPRequestObject()
{
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp = new ActiveXObject("Micr ......

ASP.NET 从xml读出数据时的分页方法

public string GetPage(int page, int pages, string url)
        {
            if (pages == 0)
            {
       &n ......

xml解析方式

在平时工作中,难免会遇到把XML作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的(至少我认为)。
  预备
  测试环境:
  AMD毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server SP ......

asp.net 输出XML文件

private void WriteXML()
{
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?> ");
sb.Append(" <!-- ");
sb.Append("<content>");
sb.Append(& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号