??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码久久不卡,无码久久精品国产亚洲Av影片 ,91精品国产91久久久久久蜜臀http://www.shnenglu.com/true/category/3806.htmlzh-cnSun, 29 May 2011 13:43:42 GMTSun, 29 May 2011 13:43:42 GMT60lZThread提供一个patchhttp://www.shnenglu.com/true/archive/2011/05/29/147632.htmltruetrueSun, 29 May 2011 09:44:00 GMThttp://www.shnenglu.com/true/archive/2011/05/29/147632.htmlhttp://www.shnenglu.com/true/comments/147632.htmlhttp://www.shnenglu.com/true/archive/2011/05/29/147632.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/147632.htmlhttp://www.shnenglu.com/true/services/trackbacks/147632.htmlhttp://zthread.sourceforge.net/  
 q个库设计的很小巧,优雅Q符合我个h的审观Qlinux下通过~译时会出现错误Q主要是׃gcc的老语法所_׃库的作?005q停止了更新Q所以这一块一直没改,q里提供一个patchQ其实很单,是替换了下几个语句Q内容ؓQ?span class="Apple-style-span" style="font-size: 13px; ">     
#(0) put this file under top ZThread directory,such as ZThread-2.3.2/,and
#(
1) cd ZThread-2.3.2
#(
2) ./zthread-patch.sh  (chmod +x zthread-patch.sh if necessary)
#(
3) ./configure
#(
4) make

sed 
-'/if(!isDisabled())/s/^.*/    if(!this->isDisabled())/' ./include/zthread/Guard.h
sed 
-'/waiterArrived(self)/s/^.*/      this->waiterArrived(self);/' ./src/MutexImpl.h
sed 
-'/waiterDeparted(self)/s/^.*/      this->waiterDeparted(self);/' ./src/MutexImpl.h
sed 
-'/ownerAcquired(self)/s/^.*/      this->ownerAcquired(self);/' ./src/MutexImpl.h
sed 
-'/ownerReleased(impl)/s/^.*/      this->ownerReleased(impl);/' ./src/MutexImpl.h


true 2011-05-29 17:44 发表评论
]]>
C++中用C#的App.Config配置文ghttp://www.shnenglu.com/true/archive/2010/12/29/137630.htmltruetrueTue, 28 Dec 2010 16:25:00 GMThttp://www.shnenglu.com/true/archive/2010/12/29/137630.htmlhttp://www.shnenglu.com/true/comments/137630.htmlhttp://www.shnenglu.com/true/archive/2010/12/29/137630.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/137630.htmlhttp://www.shnenglu.com/true/services/trackbacks/137630.html
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     
    
<appSettings>

        
<add key="Ip" value="localhost"/>
        
<add key="Port" value="8888"/>
        
<add key="ServiceName" value="Indexer"/>


    
</appSettings>
    
</configuration>
通过在appSettings里面dadd元素Q即可实现通常的配|功能,更重要的是,可以q一步扩展ؓ多的树形结构,与Ini格式相比Q更直观Q可L更强,下面是基于CMarkupQ?a >http://www.firstobject.com/Q的一个简单实玎ͼ
头文件如下:
#pragma once

#include 
<string>
#include 
<map>


class AppConfig
{
public:
    AppConfig(
void);
    
~AppConfig(void);

    
int        GetInt(std::string key);
    std::
string    GetString(std::string key);
private:
    std::map
<std::string,std::string> config_map_;
}
;
 
extern AppConfig appConfig;
源文件如下:

#include 
"AppConfig.h"
#include 
"Markup.h"

AppConfig appConfig;


AppConfig::AppConfig(
void)
{
    CMarkup parser;
    
if (!parser.Load( "App.Config"  ))
    
{
        
return;        
    }

    
if (parser.FindChildElem("appSettings"))
    
{
        parser.IntoElem();
        
while (parser.FindChildElem("add"))
        
{
            std::
string key = parser.GetChildAttrib("key");
            std::
string value = parser.GetChildAttrib("value");
            config_map_[key] 
= value;
        }

        parser.OutOfElem();
    }

    
}


AppConfig::
~AppConfig(void)
{
}


int AppConfig::GetInt( std::string key )
{
    
if (config_map_.find(key) != config_map_.end())
    
{
        
return atoi(config_map_[key].c_str());
    }

    
else
    
{
        
return 0;
    }

}


std::
string AppConfig::GetString( std::string key )
{
    
if (config_map_.find(key) != config_map_.end())
    
{
        
return config_map_[key];
    }

    
else
    
{
        
return "";
    }

}

试代码为:
// MarkupTest.cpp : 定义控制台应用程序的入口炏V?br>//

#include 
"stdafx.h"

#include 
"AppConfig.h"
#include 
<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{    
    cout 
<< appConfig.GetString("Ip")  << "-----" << appConfig.GetInt("Port")  << "----" << appConfig.GetString("ServiceName"<< endl;
    
return 0;
}




true 2010-12-29 00:25 发表评论
]]>
让h有点郁闷的PHPhttp://www.shnenglu.com/true/archive/2010/09/18/126999.htmltruetrueSat, 18 Sep 2010 09:31:00 GMThttp://www.shnenglu.com/true/archive/2010/09/18/126999.htmlhttp://www.shnenglu.com/true/comments/126999.htmlhttp://www.shnenglu.com/true/archive/2010/09/18/126999.html#Feedback1http://www.shnenglu.com/true/comments/commentRss/126999.htmlhttp://www.shnenglu.com/true/services/trackbacks/126999.html阅读全文

true 2010-09-18 17:31 发表评论
]]>
国内一个不错的开源镜?/title><link>http://www.shnenglu.com/true/archive/2010/07/29/121584.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 29 Jul 2010 07:39:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2010/07/29/121584.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/121584.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2010/07/29/121584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/121584.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/121584.html</trackback:ping><description><![CDATA[<a >http://mirrors.sohu.com/</a><br>非常不错Q还有一些电(sh)子书 <img src ="http://www.shnenglu.com/true/aggbug/121584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2010-07-29 15:39 <a href="http://www.shnenglu.com/true/archive/2010/07/29/121584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cmarkup【{?/title><link>http://www.shnenglu.com/true/archive/2007/11/15/36723.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Thu, 15 Nov 2007 14:02:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/11/15/36723.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/36723.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/11/15/36723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/36723.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/36723.html</trackback:ping><description><![CDATA[<p><font color=#ff0000>(一) 先讲一下XML中的物殊字符Q手动填写时注意一下?/font></p> <p>字符                  字符实体<br>&                      &amp;?amp;<br>'                      &apos;?<br>>                      &gt;?gt;<br><                      &lt;?amp;<<br>"                       &quot;?</p> <p><font color=#ff0000>(? CMarkupcȝ源代码?/font></p> <p>q是目前的最新版本;</p> <p>q是官网CZ文gQ取出里面的Markup.cpp和Markup.hQ导入你的工E里面,CMarkupcd可以用了Q?/p> <p>下蝲地址Q?a ><u><font color=#0000ff>http://www.firstobject.com/Markup83.zip</font></u></a></p> <p><font color=#ff0000>(? 创徏一个XML文档?/font></p> <p>CMarkup xml;<br>xml.AddElem( "ORDER" );<br>xml.AddChildElem( "ITEM" );<br>xml.IntoElem();<br>xml.AddChildElem( "SN", "132487A-J" );<br>xml.AddChildElem( "NAME", "crank casing" );<br>xml.AddChildElem( "QTY", "1" );<br>xml.Save("c:\\<font color=#0000ff>UserInfo</font>.xml");<br></p> <p>效果如下Q?/p> <pre><font color=#0000ff><ORDER></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><SN></font><font style="FONT-WEIGHT: bold; COLOR: black">132487A-J</font><font color=#0000ff></SN></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><NAME></font><font style="FONT-WEIGHT: bold; COLOR: black">crank casing</font><font color=#0000ff></NAME></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><QTY></font><font style="FONT-WEIGHT: bold; COLOR: black">1</font><font color=#0000ff></QTY></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></ORDER></font></pre> <pre><font color=#ff0000>(? 览特定元素</font></pre> <pre>CMarkup xml; <font color=#0000ff>xml.Load("UserInfo.xml");<br></font><font color=#0000ff>while</font> ( xml.FindChildElem("ITEM") ) {     xml.IntoElem();     xml.FindChildElem( "SN" );     CString csSN = xml.GetChildData();     xml.FindChildElem( "QTY" );     <font color=#0000ff>int</font> nQty = atoi( xml.GetChildData() );     xml.OutOfElem(); }</pre> <pre><font color=#ff0000>(?增加元素和属?/font></pre> <pre>d在最后面,使用的是AddElem;d在最前面,使用InsertElem?/pre> <pre>CMarkup xml;</pre> <pre>xml.Load("c:\\<font color=#0000ff>UserInfo</font>.xml"); xml.AddElem( "ORDER" ); xml.IntoElem(); <font color=#008000>// q入 ORDER<br></font> <br><br><br>    xml.AddElem( "ITEM" );     xml.IntoElem(); <font color=#008000>// q入 ITEM</font>     xml.AddElem( "SN", "<strong>4238764-A"</strong> ); //d元素     xml.AddElem( "NAME", "<strong>bearing"</strong> );//d元素     xml.AddElem( "QTY", "<strong>15"</strong> );//d元素     xml.OutOfElem(); <font color=#008000>// 退?nbsp;ITEM </font></pre> <pre>xml.AddElem( "SHIPMENT" ); xml.IntoElem(); <font color=#008000>// q入 SHIPMENT</font> xml.AddElem( "POC" );//d元素 xml.SetAttrib( "type", "<strong>non-emergency</strong>");//d属? xml.IntoElem(); <font color=#008000>// q入 POC</font> xml.AddElem( "NAME", "<strong>John Smith</strong>");//d元素 xml.AddElem( "TEL", "555-1234");//d元素 xml.Save("c:\\<font color=#0000ff>UserInfo</font>.xml");</pre> <p> </p> <p><font face="Courier New">效果如下Q?/font></p> <pre><font color=#0000ff><ORDER></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><SN></font><font style="FONT-WEIGHT: bold; COLOR: black">132487A-J</font><font color=#0000ff></SN></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><NAME></font><font style="FONT-WEIGHT: bold; COLOR: black">crank casing</font><font color=#0000ff></NAME></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><QTY></font><font style="FONT-WEIGHT: bold; COLOR: black">1</font><font color=#0000ff></QTY></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><SN></font><font style="FONT-WEIGHT: bold; COLOR: black">4238764-A</font><font color=#0000ff></SN></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><NAME></font><font style="FONT-WEIGHT: bold; COLOR: black">bearing</font><font color=#0000ff></NAME></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><QTY></font><font style="FONT-WEIGHT: bold; COLOR: black">15</font><font color=#0000ff></QTY></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></ITEM></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><SHIPMENT></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><POC</font><font color=#be3232> type</font><font color=#0000ff>="</font><font style="FONT-WEIGHT: bold; COLOR: black">non-emergency</font><font color=#0000ff>"></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><NAME></font><font style="FONT-WEIGHT: bold; COLOR: black">John Smith</font><font color=#0000ff></NAME></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff><TEL></font><font style="FONT-WEIGHT: bold; COLOR: black">555-1234</font><font color=#0000ff></TEL></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></POC></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></SHIPMENT></font><font style="FONT-WEIGHT: bold; COLOR: black"> </font><font color=#0000ff></ORDER></font><font style="FONT-WEIGHT: bold; COLOR: black"></font></pre> <p><font color=#ff0000>(? 修改元素和属?/font></p> <p>如将POC中的属性typeҎ(gu)Qchange;</p> <p>元素TELҎ(gu)Q?23456789</p> <p>       CMarkup xml;<br> if (xml.Load("UserInfo.xml"))<br> {<br>  CString strUserID = _T("");<br>  xml.ResetMainPos();<br>  if (xml.FindChildElem("SHIPMENT"))<br>  {<br>   xml.IntoElem();<br>   if (xml.FindChildElem("POC"))<br>   {<br>    xml.IntoElem();<br>    CString str_type=xml.GetAttrib("type");<br>    MessageBox(str_type);<br>    xml.SetAttrib("type","change");<br>    strUserID = xml.GetData();<br>    <br>    if (xml.FindChildElem("TEL"))<br>    {<br>     xml.IntoElem();<br>     xml.SetData("123456789");<br>     xml.Save("UserInfo.xml");<br>     return;<br>    }<br>   }<br>  }<br> }</p> <p><font color=#ff0000>(?删除元素Q?/font></p> <p>删除SN=132487A-J的项目?/p> <p>CMarkup xml;<br> if (xml.Load("UserInfo.xml"))<br> {<br>  CString strUserID = _T("");<br>  xml.ResetMainPos();<br>  if (xml.FindChildElem("ITEM"))<br>  {<br>   xml.IntoElem();<br>   CString str_sn;<br>   xml.FindChildElem("SN");<br>   str_sn=xml.GetChildData();<br>   if(str_sn=="132487A-J")<br>   {<br>    xml.RemoveElem();<br>    xml.Save("UserInfo.xml");<br>   }<br>  }<br> }</p> <img src ="http://www.shnenglu.com/true/aggbug/36723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-11-15 22:02 <a href="http://www.shnenglu.com/true/archive/2007/11/15/36723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源数据库概览【{?/title><link>http://www.shnenglu.com/true/archive/2007/08/20/30415.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Mon, 20 Aug 2007 04:13:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/08/20/30415.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/30415.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/08/20/30415.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/30415.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/30415.html</trackback:ping><description><![CDATA[<div id="jzbhtjp" class=postTitle twffan="done"><a ><img height=13 src="http://blog.csdn.net/images/zhuan.gif" width=15 border=0 twffan="done"> 开源数据库概览</a> </div> <div id="j5x5flp" class=postText twffan="done"> <p><strong>开源数据库概览</strong></p> <p><strong></strong></p> <p>开源世界真是太奇妙了,虽然不排除卑鄙无ȝ直接盗用q诏q产品Q但开源可以无U到随便你怎样用?<br><br>接触开源有很长的一D|间了Q先是学习别人的Q然后还参与了开源,在sf.net上,我主持和参与了数个开源项目,当然Q都不是大型的项目,只是试一下?<br><br>我所x的开源项目方面很多,每方面都有很多优U的作品,我将会在接下来的pd随笔中介l,q次介绍数据库?<br><br>q个星球上的数据库实在不胜枚举,q里只列一些我接触q的常见的?<br><br>可以E微夸张点说Q有交互的应用,L得用一下数据保存,即便是自定义l构的数据保存,q是最常见的INI、XML{,都可以算?#8220;数据?#8221;Q真正点的,如DBasepd、FoxBase、FoxPro、MSAccess、InterBase、MS SQL Server、Oracle、DB2{,q些是商业化的数据库Q前面几个只能算是数据库Q后面几个是RMDBSQ关pd数据库管理系l)?<br><br>对应商业化的Q有开源的Q?a ><font color=#1d58d1>SQLite</font></a>?a ><font color=#1d58d1>SimpleSQL</font></a>?a ><font color=#1d58d1>Berkely DB</font></a>?a ><font color=#1d58d1>Minosse</font></a>?a ><font color=#1d58d1>Firebird</font></a>( 前n是是Borland公司的InterBase)?a ><font color=#1d58d1>PostgreSQL</font></a>?a ><font color=#1d58d1>MySQL</font></a>{?<br><br>?a ><font color=#1d58d1>SQLite</font></a>Q大家可以看我的SQLitepd随笔QC~写的,可以跨操作^収ͼ支持大部分ANSI SQL 92Q它是嵌入式的轻量关系形数据库引擎Q只需要一个DLLQ体Uؓ250kQ数据库也只是一个文Ӟ雉|,便可工作。既然开源,你甚臛_以把它嵌入你的程序中。核心开发h员只有一个,最q加入了另外一个,也就?个h而已Q实在佩服,目前发展?.1.0Q相当高效稳定,有开源驱动在sourceforge.net上有其ADO.NET Data Provider for SQLite Q?a target=_new><font color=#1a8bc8>https://sourceforge.net/projects/adodotnetsqlite/</font></a> ?<br><br>?a ><font color=#1d58d1>SimpleSQL</font></a>Q相?a ><font color=#1d58d1>SQLite</font></a>要大几倍,但也是轻量的,功能E微强大一点,C++~写Q有OLE、Java{版本?<br><br>?a ><font color=#1d58d1>Berkely DB</font></a>QC++~写的大型关pd数据库系l,q额外地支持XML(把XML当成数据?Q号U?百万的安装量QMySQL也只不过L5百万安装量而已Q跨q_?<br><br>?a ><font color=#1d58d1>Minosse</font></a>Q纯C#~写的大型关pd数据库系l,理想是超MS SQL ServerQ最新版本:<a ><font color=#1d58d1>0.2.0</font></a>Q真隑־Q纯Java写的看得多了Q纯C#的,不是UL别h的,q是W一个,佩服作者:包含C/S和嵌入式版本Qƈ可跨大部分q_Q因为它不用Windows的东西,可以在Mono下编译?<br><br>?a ><font color=#1d58d1>Firebird</font></a>Q这个东西太牛了Q目前有<a ><font color=#1d58d1>1.5E_版本</font></a>已经拥有大量Ҏ(gu),完全支持ANSI SQL92?8{,一些超LҎ(gu)让人疯?<a ><font color=#1d58d1>1.0Ҏ(gu)?/font></a>?a ><font color=#1d58d1>1.5Ҏ(gu)?/font></a>Q?a ><font color=#1d58d1>从这里开始研I?/font></a>)Q主要开发h员是一个俄|斯人,目前开发队伍已l扩大到q?00人,?U模式,单机独立Q典型C/SQ超U服务器?.0版本?.0版本在q期推出Q看完其<a ><font color=#1d58d1>路线?/font></a>(2.0?.0)你就会疯掉。有<a ><font color=#1d58d1>.NET驱动</font></a>Q目前是<a ><font color=#1d58d1>1.7beta</font></a>版。主要特性:  <br>    ◆A.C.I.DQ?nbsp; <br>    ◆MGA(M版本的引擎都可以处理同一数据库记?Q?nbsp; <br>    ◆PSQL(存储q程)强大Qms sql相对的太ơ,它啥都能在服务器端实现ƈ推送到客户端成为强大的报表Q存储过E;  <br>    ◆触发器都可以在客户端获取监控追t;  <br>    ◆自动只L式;  <br>    ◆创新的事务保证l对不会出错Q?nbsp; <br>    ?4*7q行中仍然可以随时备份数据库Q?nbsp; <br>    ◆统一触发器:M操作都可以让某表唯一的触发器来LQ?nbsp; <br>    ◆大部分语言都可以写plug-inQƈ直接在存储过E中调用函数Q?nbsp; <br>    ◆c->c++Q更加少的代码但更加快的速度Q?nbsp; <br>    ?U运行模式,甚至可以嵌入式;  <br>    ◆主语a都可以调用它Q?nbsp; <br>    ◆动态sql执行Q?nbsp; <br>    ◆事务保存点Q?<br><br>?a ><font color=#1d58d1>PostgreSQL</font></a>QPOSTGRES数据库的后开源版本,L拥有M其他数据库没有的大量新特性,g目标是要做超大型的OO关系型数据库pȝQ目前已l发展到<a ><font color=#1d58d1>8.0</font></a>Q有<a ><font color=#1d58d1>.NET驱动</font></a>Q?a ><font color=#1d58d1>中文官方|站</font></a>有详l介l?<br><br>?a ><font color=#1d58d1>MySQL</font></a>Q这个,不用说了吧?L全球最受欢q的开源数据库Q但让我奇怪的是,<a ><font color=#1d58d1>PostgreSQL</font></a>都有体中文的支持Q包括内核、管理工兗QA{等Q在最新版?a ><font color=#1d58d1>MySQL</font></a>中,我却没有发现... Q有<a ><font color=#1d58d1>.NET驱动</font></a>Q其?a ><font color=#0000ff>MySQL Connector/Net</font></a>是原来在sf.net上的ByteFX.Data目Q作者已l加入了MySQL团队Q参看?a id=viewpost1_TitleUrl ><font color=#800080>感慨 20 之开源的前?钱图Q(Q数据库Q?/font></a>》? <table cellSpacing=0 cellPadding=0 width=600 border=0> <tbody> <tr> <td align=middle height=10></td> </tr> <tr> <td> <table cellSpacing=0 cellPadding=0 width=600 border=0> <tbody> <tr> <td class=td1> <table cellSpacing=0 cellPadding=0 width=600 border=0> <tbody> <tr> <td></td> </tr> <tr> <td height=10></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <table cellSpacing=0 cellPadding=0 width=600 border=0> <tbody> <tr> <td align=middle height=5></td> </tr> <tr align=right> <td height=30><a href="javascript:SendMailto()"><img alt="" src="http://news.csdn.net/news/images/v_email.GIF" border=0 twffan="done"></a>  <a href="javascript:doprint();"><img alt="" src="http://news.csdn.net/news/images/v_prinf.GIF" border=0 twffan="done"></a>   <a ><img height=23 alt="" src="http://news.csdn.net/news/images/v_more.GIF" width=91 border=0 twffan="done"> </a></td> </tr> <tr> <td align=middle height=5></td> </tr> </tbody> </table> <table cellSpacing=0 cellPadding=0 width=600 border=0> <tbody> <tr> <td colSpan=2 height=20>    <font color=#ff6633><strong>|友评论</strong></font></td> </tr> <tr bgColor=#f1f1f1> <td vAlign=top align=right width=20><strong>RunEverywhereQ?/strong></td> <td>  UJava写的数据? -<br>  <br>   <br>  <br>  UJava数据库包括:<br>  InformixQ?Cloudscape(也就是Apache Derby数据?QJDataStore(Borland公司)QHSQLDBQ?db4oQ?PointBase(Oracle创始人开?Q?br>  <br>  Berkeley DB Java Edition 2.0 开源数据库{等。谁有证据证明Oracle和DB2中Java使用的比例请告知。只知Oracle和DB2中有大量?class文gQ但不知是否有C/C++开发的部分Q毕竟java也能~译?exe?dll文g?br>  <br>  Oracle数据?使用了Java开发,但不知是否是UJava)<br>  www.oracle.com<br>  <br>  <br>  DB2数据?使用了Java开发,但不知是否是UJava)Q?br>  www-306.ibm.com/software/data/db2/<br>  <br>  Informix数据?br>  <br>  IBM ?2001 q七月初g Informix,Informix 轉換ZJava 語言開發的環境之外,並採?Informix<br>  的資料複製功能,提升 DB2 災難復原與資料複製的能力<br>  IBM 每年投資十億元D料n理軟體的研發工作,致力於D化資a管理軟體解決方案的技術優勢與產品效能Q去 ( 2003 ) q並取得過<br>  <br>  230 項相關專利權Q又於日前捐出價D過八千五百萬元?Java 資料庫軟?Cloudscape i?Apache<br>  <br>  <br>  http://www.ibm.com/news/tw/2004/11/tw_zh_20041119_linux.html<br>  Apache Derby 是一U用 100% U?Java ~写的关pL据库。该目最初被UC Cloudscape™QIBM ?2004 q?8 月将它捐献给?Apache 基金l织<br>  http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505gibson/?ca=dwcn-newsletter-db2<br>  <br>  <br>  Cloudscape 开源数据库<br>  <br>  於日前捐出價D過八千五百萬元?Java 資料庫軟?Cloudscape i?Apache<br>  <br>  http://www.ibm.com/news/tw/2004/11/tw_zh_20041119_linux.html<br>  <br>  <br>  <br>  JDataStore数据?br>  <br>  Borland公司出品Q?br>  www.borland.com/us/products/jdatastore/<br>  <br>  <br>  HSQLDB开源数据库<br>  <br>  http://hsqldb.sf.net<br>  <br>  <br>  <br>  Berkeley DB Java Edition 2.0 开源数据库<br>  <br>  http://www.sleepycat.com/<br>  <br>  <br>  db4o开源数据库<br>  www.db4o.com/ <br>  <br>  <br>  <br>  <br>  <br>  <br>  q有一些Java数据库:<br>  <br>  在全球最大的java开发者杂志上的一份对最受欢q的Java数据库的调查Q?br>  <br>  Best Enterprise Database:<br>  <br>   No Nominee<br>   Berkeley DB Java Edition Sleepycat Software<br>   Birdstep RDM Embedded 7.1 Birdstep Technology<br>   Daffodil DB Daffodil Software Ltd.<br>   db4o db4objects<br>   EAC MySQL Cluster Emic Networks<br>   HSQLDB HSQLDB Development Team<br>   IBM DB2 Universal Database IBM<br>   IBM Informix IDS v10 IBM<br>   JDataStore 7 High Availability Edition Borland Software<br>   ObjectDB for Java/JDO ObjectDB<br>   Oracle Database 10g Oracle Corporation<br>   Oracle Database Lite 10g Oracle Corporation<br>   PointBase Embedded PointBase / DataMirror Corp.<br>   Sybase Adaptive Server Enterprise (ASE) Sybase, Inc.<br>  <br>  <br>  http://jdj.sys-con.com/general/readerschoice.htm<br>  <br>  http://nuclearjava.blogchina.com/2006316.html <font color=#999999>(2005.06.26)</font></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </p> </div> <img src ="http://www.shnenglu.com/true/aggbug/30415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-08-20 12:13 <a href="http://www.shnenglu.com/true/archive/2007/08/20/30415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>92个经典开源项目集锦(包括URLQ【{?/title><link>http://www.shnenglu.com/true/archive/2007/08/17/30204.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Fri, 17 Aug 2007 01:47:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/08/17/30204.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/30204.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/08/17/30204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/30204.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/30204.html</trackback:ping><description><![CDATA[<br><SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT> <div twffan="done"> <div twffan="done"><a ><img height=13 src="http://blog.csdn.net/images/authorship.gif" width=15 border=0 twffan="done"> 92个经典开源项目集锦(包括URLQ?/a> </div> <div twffan="done"> <p><span twffan="done"><font face="Times New Roman" size=3>Linux</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.linux.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>FreeBSD</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.freebsd.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>PostgreSQL</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.postgresql.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>MySQL</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.mysql.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>SAP DB</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.sapdb.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Hypersonic/Hsql</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://hsqldb.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>McKoi</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://mckoi.com/database/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Xindice</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://xml.apache.org/xindice/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>OJB</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://db.apache.org/ojb/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Hibernate</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.hibernate.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Castor</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://castor.exolab.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Torque</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://db.apache.org/torque/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JORM</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jorm.objectweb.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>XMLBeans</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://xml.apache.org/xmlbeans/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JiBX</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jibx.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Castor</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://castor.exolab.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JAXB Reference Implementation</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://java.sun.com/xml/jaxb/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JaxMe</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://ws.apache.org/jaxme/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Tomcat</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/tomcat/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Jetty</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jetty.mortbay.org/jetty/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JBoss</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.jboss.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Apache Geronimo</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://incubator.apache.org/projects/geronimo.html</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JOnAS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jonas.objectweb.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>OpenEJB</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://openejb.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>OpenJMS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://openjms.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JORAM</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://joram.objectweb.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JOTM</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jotm.objectweb.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Struts</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/struts/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Cocoon</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://cocoon.apache.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Turbine</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/turbine/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Velocity</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/velocity/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Tapestry</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/tapestry/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>WebWork</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://opensymphony.com/webwork/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Jetspeed</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/jetspeed/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Cocoon Portal</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://cocoon.apache.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Open For Business (OFBiz)</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.ofbiz.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Compiere</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.compiere.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>InfoSapient</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://info-sapient.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JPOS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.jpos.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Mercator</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.globalretailtech.com/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Cofax</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.cofax.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>OpenCMS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.opencms.org/opencms/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JasperReports</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jasperreports.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>DataVision</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://datavision.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JFreeReport</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.jfree.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JCharts</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jcharts.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>iText</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.lowagie.com/iText/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Apache FOP</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://xml.apache.org/fop/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>POI</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/poi/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Cron</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.linux.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JCronTab</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jcrontab.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Quartz</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.quartzscheduler.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Eclipse</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.eclipse.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>NetBeans</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.netbeans.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>SQuirreL</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://squirrel-sql.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>TORA</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.globecom.se/tora/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>DBVisualizer</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.minq.se/products/dbvis/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>TOAD</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.toadsoft.com/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>CVS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.cvshome.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Subversion</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://subversion.tigris.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>CVSWeb</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.freebsd.org/projects/cvsweb.html</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>ViewCVS</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://viewcvs.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>DocBook</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.docbook.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>OpenOffice</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.openoffice.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Structured Text</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.zope.org/Documentation/Articles/STX</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>MoinMoin Wiki</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://moin.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>UseMod Wiki</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.usemod.com/cgi-bin/wiki.pl?UseModWiki</font></span></p> <p><span twffan="done"><font size=3><font face="Times New Roman">Jabber <p> </p> </font></font></span> <p> </p> <p><span twffan="done"><font size=3><font face="Times New Roman">http://www.jabber.org/ <p> </p> </font></font></span> <p> </p> <p><span twffan="done"><font size=3><font face="Times New Roman">Mailman <p> </p> </font></font></span> <p> </p> <p><span twffan="done"><font size=3><font face="Times New Roman">http://www.gnu.org/software/mailman/ <p> </p> </font></font></span> <p> </p> <p><span twffan="done"><font face="Times New Roman" size=3>Eclipse Modeling Framework</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.eclipse.org/emf/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>ArgoUML</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://argouml.tigris.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Poseidon Community Edition</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.gentleware.com/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>XDoclet</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://xdoclet.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>MiddleGen</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://boss.bekk.no/boss/middlegen/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Jostraca</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.jostraca.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JUnit</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.junit.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Cactus</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/cactus/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JMeter</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jakarta.apache.org/jmeter/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Grinder</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://grinder.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Bugzilla</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://bugzilla.mozilla.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Scarab</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://scarab.tigris.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JIRA</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.atlassian.com/software/jira/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>ITracker</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.cowsultants.com/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>BeanShell</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.beanshell.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Jython</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.jython.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>JRuby</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://jruby.sourceforge.net/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Groovy</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://groovy.codehaus.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>AspectJ</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://eclipse.org/aspectj/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Ant</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://ant.apache.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>Maven</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://maven.apache.org/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>AntHill</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://www.urbancode.com/projects/anthill/</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>CruiseControl</font></span></p> <p><span twffan="done"><font face="Times New Roman" size=3>http://cruisecontrol.sourceforge.net/</font></span></p> <p><span twffan="done"> <p><font face="Times New Roman" size=3> </font></p> </span> <p> </p> <br><br> <p id=TBPingURL>Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=348368</p> </div> </div> <img src ="http://www.shnenglu.com/true/aggbug/30204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-08-17 09:47 <a href="http://www.shnenglu.com/true/archive/2007/08/17/30204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TinyXmlȝhttp://www.shnenglu.com/true/archive/2007/04/05/21310.htmltruetrueThu, 05 Apr 2007 06:10:00 GMThttp://www.shnenglu.com/true/archive/2007/04/05/21310.htmlhttp://www.shnenglu.com/true/comments/21310.htmlhttp://www.shnenglu.com/true/archive/2007/04/05/21310.html#Feedback1http://www.shnenglu.com/true/comments/commentRss/21310.htmlhttp://www.shnenglu.com/true/services/trackbacks/21310.html

一?nbsp;     TinyXml的特?

TinyXml是一个基于DOM模型的、非验证的轻量C++解释器?/p>

1.      SAX和DOM

目前XML的解析主要有两大模型QSAX和DOM?/p>

其中SAX是基于事件的Q其基本工作程是分析XML文Q当发现了一个新的元素时Q生一个对应事Ӟq调用相应的用户处理函数。这U方式占用内存少Q速度快,但用L序相应得会比较复杂?/p>

而DOMQ文对象模型)Q则是在分析Ӟ一ơ性的整个XML文q行分析Qƈ在内存中形成对应的树l构Q同Ӟ向用h供一pd的接口来讉K和编辑该树结构。这U方式占用内存大Q速度往往慢于SAXQ但可以l用h供一个面向对象的讉K接口Q对用户更ؓ友好?/p>

 

2.      验证和非验证

对于一个特定的XML文而言Q其正确性分Z个层ơ。首先是其格式应该符合XML的基本格式要求,比如W一行要有声明,标签的嵌套层ơ必d后一致等{,W合q些要求的文Ӟ是一个合格的XML文gQ称作well-formatted。但除此之外Q一个XML文档因其内容的不同还必须在语义上W合相应的标准,q些标准q应的DTD文g或者Schema文g来定义,W合了这些定义要求的XML文gQ称作valid?/p>

因此Q解析器也分ZU,一U是验证的,即会跟据XML文g中的声明Q用相应的DTD文g对XML文gq行校验Q检查它是否满DTD文g的要求。另一U是忽略DTD文gQ只要基本格式正,可以进行解析?/p>

我所知,验证的解析器通常都是比较重量U的。TinyXml不支持验证,但是体积很小Q用在解析格式较为简单的XML文gQ比如配|文件时Q特别的合适?/p>

 

二?TinyXml的构建和使用
1.      获取

TinyXml首页在http://www.grinninglizard.com/tinyxml/index.htmlQ从q里可以扑ֈ最新版本的源代码,目前的版本是2.3.4?/p>

2.构徏

TinyXml在构建时可以选择是否支持STLQ选择的话Q则可以使用std::stringQ所以通常应该打开q个选项?/p>

在Windows上,TinyXml的源码包里提供了VC6的工E文Ӟ直接用它?yu)可以生成两个静态库Q带STL和不带STLQ,非常Ҏ(gu)。唯一需要注意的是,默认生成的库是单U程的,如果用在多线E的目中,需要改动一下配|,生成相应的多U程库?/p>

在Unixq_上,TinyXml的源码包里只提供了一个MakefileQ对于典型的LinuxpȝQ或装了gcc和gmake的其他UnixQ这个Makefile_用了Q我在RH9和RHEL4上测试,单的make成功了。需要注意的有以下几点:默认的编译是不支持STL的,可以通过~辑Makefile的TINYXML_USE_STL := NO那一行,把NOҎ(gu)YES可以支持STL了;q有默认只生成了一个测试程序,没有生成M库,如果要生成静态库的话Q可以用ar命oQ将生成的几个目标文件打包就行了Q如果要生成动态库Q则需要加?fpic参数重新~译?/p>

3.      使用

构徏了相应的库之后,在用了它们的工E中Q只要在q接时把他们q上p了。需要注意的是,如果需要STL支持Q在~译用到了TinyXml的文件时Q需要定义一个宏TIXML_USE_STLQ对gccQ可以用参?DTIXML_USE_STLQ对cl.exeQVCQ,可以使用参数/DTIXML_USE_STLQ如果嫌ȝQ可以直接定义在 tinyxml.h文g里?/p>

 

三?TinyXml的编E模?.      cM间的关系

TinyXml实现的时DOM讉K模型Q因此提供了一pd的类对应XML文g中的各个节点。主要类间的关系如下图所C:

 

 

TiXmlBaseQ其他类的基c,是个抽象c?/p>

TiXmlNodeQ表CZ个节点,包含节点的一般方法,如访问自节点、兄弟节炏V编辑自w、编辑子节电(sh)

TiXmlDocumentQ表C整个XML文Q不对应其中某个特定的节炏V?/p>

TiXmlElementQ表C元素节点,可以包含子节点和TiXmlAttribute

TiXmlCommentQ表C注?/p>

TiXmlDeclarationQ表C声?/p>

TiXmlTextQ表C文本节?/p>

TiXmlUnknownQ表C未知节点,通常是出错了

TiXmlAttributeQ表CZ个元素的属?/p>

下面是一个简单的例子Q?/p>

<?xml version="1.0" encoding="utf-8" ?>

 

 

<!-This is only a sample-->

 

 

<book>

 

 

       <name>TinyXml How To</name>

 

 

       <price unit=”RMB”>20</price>

 

 

       <description>Some words…</description>

 

 

</ book >

 

 

整个文Q对应TiXmlDocument

book,name,price, descriptionQ都对应TiXmlElement

W一行对应一个TiXmlDeclaration

W二行对应一个TiXmlComment

“TinyXml How To”对应一个TiXmlText

unit则是price的一个TiXmlAttribute

q些cMXML文g中的相应元素都有很好的对应关p,因此怿参照TinyXml的文档,可以很容易的掌握各个Ҏ(gu)的用?/p>

 

2.  需要注意的问题

各类之间的{?

 

 

׃各个节点c都从TiXmlNodel承Q在使用时常帔R要将TiXmlNode*cd的指针{换ؓ其派生类的指针,在进行这U{换时Q应该首先用由TiXmlNodecL供的一pd转换函数Q如ToElement(void)Q而不是c++的dynamic_cast

 

查返回?

 

 

׃TinyXml是一个非校验的解析器Q因此当解析一个文件时Q很可能文gq不包含我们预期的某个节点,在这U情况下QTinyXml返回空指针。因此,必须要对q回D行检查,否则很Ҏ(gu)出现内存讉K的错误?/p>

 

如何重头建立一个XML文g

 

 

先徏立一个TiXmlDocument对象Q然后,载入某个模板Q或者直接插入一个节点作为根节点Q接着可以像打开一个已有的XML文g那样对它q行操作了?/p>

 

四、ȝ

TinyXml最大的特点是它很,可以很方便的静态连接到E序里。对于像配置文g、简单的数据文gq类文g的解析,它很适合。但是由于它是非验证的,因此需要在E序里做许多查工做,加重了程序编写的负担。因此对于复杂的XML文gQ我觉得最好还是用验证的解析器来处理?br> 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1006509




true 2007-04-05 14:10 发表评论
]]>
tinyxml 的用,?/title><link>http://www.shnenglu.com/true/archive/2007/04/04/21250.html</link><dc:creator>true</dc:creator><author>true</author><pubDate>Wed, 04 Apr 2007 09:14:00 GMT</pubDate><guid>http://www.shnenglu.com/true/archive/2007/04/04/21250.html</guid><wfw:comment>http://www.shnenglu.com/true/comments/21250.html</wfw:comment><comments>http://www.shnenglu.com/true/archive/2007/04/04/21250.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/true/comments/commentRss/21250.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/true/services/trackbacks/21250.html</trackback:ping><description><![CDATA[     摘要: TinyXml是一个基于DOM模型的、非验证的轻量C++解释器, 用来d配置文g是最好的Q可从http://www.grinninglizard.com/tinyxml/index.htmlq里下蝲。构建TinyXML 时可以选择是否支持STLQ?一般徏议选择支持STL。TinyXml的源码包里提供了VC6的工E文Ӟ直接用它?yu)可以生成静态库。然后把tinyxml.hQ?tinyst...  <a href='http://www.shnenglu.com/true/archive/2007/04/04/21250.html'>阅读全文</a><img src ="http://www.shnenglu.com/true/aggbug/21250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/true/" target="_blank">true</a> 2007-04-04 17:14 <a href="http://www.shnenglu.com/true/archive/2007/04/04/21250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tinyxml 使用http://www.shnenglu.com/true/archive/2007/04/03/21148.htmltruetrueTue, 03 Apr 2007 01:28:00 GMThttp://www.shnenglu.com/true/archive/2007/04/03/21148.htmlhttp://www.shnenglu.com/true/comments/21148.htmlhttp://www.shnenglu.com/true/archive/2007/04/03/21148.html#Feedback0http://www.shnenglu.com/true/comments/commentRss/21148.htmlhttp://www.shnenglu.com/true/services/trackbacks/21148.html 转脓(chung)-有关TinyXML使用的简单ȝ
floodking 发表?2006-11-6 18:01:00

 q次使用?span style="FONT-FAMILY: Tahoma" twffan="done">TinyXML
后,觉得q个东西真是不错Q于是将使用Ҏ(gu)坐下ȝ来和大家分n?br>    该解析库在开源网站(http://sourceforge.net Q上有下载,在本Blog也提供下载(下蝲TinyXMLQ?br>    TinyXML是一个开源的解析XML的解析库Q能够用?span style="FONT-FAMILY: Tahoma" twffan="done">C++Q能够在Windows?span style="FONT-FAMILY: Tahoma" twffan="done">Linux中编译。这个解析库的模型通过解析XML文gQ然后在内存中生?span style="FONT-FAMILY: Tahoma" twffan="done">DOM模型Q从而让我们很方便的遍历q课XML树?br>    注:DOM模型x对象模型,是将整个文分成多个元素Q如书、章、节、段{)Qƈ利用树型l构表示q些元素之间的顺序关pM及嵌套包含关p(理解html语言的读者会很容易理解这U树状模型)?/strong>               
    如下是一个XML片段Q?br>    <Persons>
        <Person ID="1">
            <name>周星?lt;/name>
            <age>20</age>
        </Person>
        <Person ID="2">
            <name>白晶?lt;/name>
            <age>18</age>
        </Person>
    </Persons>
    在TinyXML中,Ҏ(gu)XML的各U元素来定义了一些类Q?br>        TiXmlBaseQ整个TinyXML模型的基cR?br>                TiXmlAttributeQ对应于XML中的元素的属性?br>                TiXmlNodeQ对应于DOMl构中的节点?br>                        TiXmlCommentQ对应于XML中的注释?br>                        TiXmlDeclarationQ对应于XML中的x部分Q即<Qversiong="1.0" ?>?br>                        TiXmlDocumentQ对应于XML的整个文档?br>                        TiXmlElementQ对应于XML的元素?br>                        TiXmlTextQ对应于XML的文字部分?br>                        TiXmlUnknownQ对应于XML的未知部分?nbsp;
        TiXmlHandlerQ定义了针对XML的一些操作?br>    那我们如何用这些类以及他们的方法来操纵我们的XML呢?L下面?br>    一、读取XML(假设我们的Xml文中的内容与上面的Xml内容一?
    //创徏一个XML的文对?/span>?/span>
    TiXmlDocument *myDocument = new TiXmlDocument("填上你的Xml文g?);
    myDocument->LoadFile();
    //获得根元素,即Persons?/span>
    TiXmlElement *RootElement = myDocument.RootElement();
    //输出根元素名Uͼ卌出Persons?br>    cout << RootElement->Value() << endl;
    //获得W一个Person节点?br>    TiXmlElement *FirstPerson = RootElement->FirstChildElement();
    //获得W一个Person的name节点和age节点和ID属性?/span>
    TiXmlElement *NameElement = FirstPerson->FirstChildElement();
    TiXmlElement *AgeElement = NameElement->NextSiblingElement();
    TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();
    //输出W一个Person的name内容Q即周星星;age内容Q即20QID属性,??br>    cout << NameElement->FirstChild()->Value << endl;
    cout << AgeElement->FirstChild()->Value << endl;
    cout << IDAttribute->Value() << endl;

    
    看,dXML是不是很单阿Q和Java的XML解析库非常的怼Q就是名字改了一下而已?br>    二、生成XML内容
    //创徏一个XML的文档对象?br>    TiXmlDocument *myDocument = new TiXmlDocument();
    //创徏一个根元素q连接?br>    TiXmlElement *RootElement = new TiXmlElement("Persons");
    myDocument->LinkEndChild(RootElement);
    //创徏一个Person元素q连接?br>    TiXmlElement *PersonElement = new TiXmlElement("Person");
    RootElement->LinkEndChild(PersonElement);
    //讄Person元素的属性?br>    PersonElement->SetAttribute("ID", "1");
    //创徏name元素、age元素q连接?/span>
    TiXmlElement *NameElement = new TiXmlElement("name");
    TiXmlElement *AgeElement = new TiXmlElement("age");
    PersonElement->LinkEndChild(NameElement);
    PersonElement->LinkEndChild(AgeElement);
    //讄name元素和age元素的内容ƈq接?/span>
    TiXmlText *NameContent = new TiXmlText("周星?);
    TiXmlText *AgeContent = new TiXmlText("20");
    NameElement->LinkEndChild(NameContent);
    AgeElement->LinkEndChild(AgeContent);
    //保存到文?/span>
    myDocument->SaveFile("要保存的xml文g?);
    q样Q便创徏了一个如下的xml文gQ?br>    <Persons>
        <Person ID="1">
            <name>周星?lt;/name>
            <age>20</age>
        </Person>
    </Persons>
    
    是不是很单啊Q在q里我只是简单的对TinyXml的用作了介l,Ƣ迎各位提问留言Q我会尽力解{各位的问题。[By Lqbest]


true 2007-04-03 09:28 发表评论
]]>
Xerces C++ 学习W记[转]http://www.shnenglu.com/true/archive/2007/03/15/19900.htmltruetrueThu, 15 Mar 2007 07:54:00 GMThttp://www.shnenglu.com/true/archive/2007/03/15/19900.htmlhttp://www.shnenglu.com/true/comments/19900.htmlhttp://www.shnenglu.com/true/archive/2007/03/15/19900.html#Feedback4http://www.shnenglu.com/true/comments/commentRss/19900.htmlhttp://www.shnenglu.com/true/services/trackbacks/19900.htmlXerces C++ 学习W记

Xerces C++ 学习W记

1Q?/font>   初始化^収ͼ

XMLPlatformUtils::Initialze()

2Q?/font>   销毁^収ͼ

XMLPlatformUtils::Terminate();

3Q?/font>   加蝲分析报文

XercesDOMParser  *parser = new XercesDOMParser();

Parser->parse( 参数 ); q个参数可以直接是文件名Q也可以是内存的数据Q具体的查看 API

4Q?/font>   数据格式转换

XMLString.transcode() q个Ҏ(gu)有多个重载,既可以把 XMLCh * 格式的数据{换成 char * 的数据,也可以把 char * 的数据{换成 XMLCh *, 我们也可以利用这个函数来初始?/span> XMLCh 格式cd的数l,比如 XMLCh temp[100];

                            XMLString.transcode(“LS?temp,99);// 用?/span> LS ”初始化 temp q个数组的内宏V?/span>

5Q?/font>   分析报文后,如何得到文的树型结?/font>

DOMDocument *xmlDoc = parser->getDocument();

6Q?/font>   得到树型l构后,如何得到W一个根节点

DOMElement *root = xmlDoc->getDocumentElement();

7Q?/font>   如何遍历文的结?/font>

遍历一个树型的文l构有三U方法?/font>

1 Q?/span> DOMNodeIterator c?/span>

DOMNodeIterator *iterator = xmlDoc->createNodeIterator(root, DOMNodeFilter::SHOW_TEXT,  NULL, true);

for ( DOMNode * current = (DOMNode *)iterator->nextNode(); current != 0; current = (DOMNode *)iterator->nextNode() )

{

        string strValue = XMLString::transcode(current->getNodeValue());

        std::cout <<strValue<<endl;

 }// 以上可以把 xml 文中的属性ؓ NODETEXT 节点的内容给打印出来?/span>

2 Q?/span> DOMTreeWalker c?/span>

D OMTreeWalker *walker =  xmlDoc->createTreeWalker(root, DOMNodeFilter::SHOW_TEXT, NULL, true);

f or (DOMNode *current = walker->nextNode(); current != 0; current = walker->nextNode() )   

 {

      char *strValue = XMLString::transcode( current->getNodeValue() );     std::cout <<strValue;
            XMLString::release(&strValue);   

}

3 Q用子节点直接遍历树型l构

   DOMNode *n = (DOMNode*)xmlDoc->getDocumentElement();

// 下面开始遍历这个树的结?/font>

if(n)

{

        if (n->getNodeType() == DOMNode::ELEMENT_NODE)

        {

                DOMNodeList* nodeList = n->getChildNodes();

                unsigned int nListLen = nodeList->getLength();

                for (unsigned int i=0; i<nListLen; ++i)

                {

                      DOMNode* nodeTemp = nodeList->item(i);

                      if (nodeTemp->getNodeType() == DOMNode::ELEMENT_NODE)

                      {

                             for (DOMNode* node1=nodeTemp->getFirstChild(); node1!=0; node1=node1->getNextSibling())

                             {

                                    char* name = XMLString::transcode(node1->getNodeName());

                                    string strTemp = name;

                                    if (strTemp == "name")   // q个是?/span> xml 文档?/span> name 节点匚w

                                    {

        char* myname=XMLString::transcode(node1->getFirstChild()->getNodeValue());

                                           cout<<myname<<endl;

                                    }

                             }

                      }

                      continue;

               }

        }

}

8Q?/font>   如何d子节炏V?/font>

    //Add new (empty) Element to the root element
     DOM_Element parentNode = ?// parent is known
     DOM_Element prodElem = doc->createElement (tagName);
     parentNode->appendChild (prodElem);

9Q?/font>   在加?/span> xml 文g分析前,有两U加载方式:一U直接通过文g加蝲Q一U是通过内存加蝲

1Q?/font>   String xmlfile = “a.xml?

Parser->parse(xmlfile.c_str());

        2.MemBufInputSource   q个cd理内存的数据Q然后利?/span> parser->parse(*men)//men ?/span> MemBufInputSource   的实例指针对象?/span>

 

10Q?/font>               在加载分析报文前Q可以设|?/span> XercesDOMParser 的一些属性?/span>

        P arser->setValidationScheme( XercesDOMParser::Val_Auto );
          Parser->setDoNamespaces( false );
         Parser->setDoSchema( false );
         Parser->setLoadExternalDTD( false );

        // q个部分的代码可以参照类库自带的例子?/span>

11Q?/font>               我们也可以设|错误的处理代码?/font>

        q部分可以查看类库下?/span> DOMPrint 例子?/span> DOMError ,DOMErrorHandler

12Q?/font>               也可以设|分析过滤的属?/font>

         DOMNodeFilter  q个c能起到q个效果

13Q?/font>               要美化文档的格式化输出,我们可以使用

        XMLFormatter    XMLFormatTarget  , 用的时候可以查看?/span>

14      我们也可以通过 DOMImplementationLs , DOMImplementation 前者是后者的基类。通过q个cL们可以创?/span> DOMBuilder Q?/span> parser Q或 DOMWriter Q序列,既可以写到屏q,也可以写到文Ӟ



true 2007-03-15 15:54 发表评论
]]>
þþùҺ| þùƷ| þۺϾɫۺվ| ˺ݺۺϾþ| þùƷ| ݺɫݺɫۺϾþ| ѾƷպȾþ| þþþAVȥ| þۺŷ| þþþþۺһĻ| þþƷaĻؿ| ˳վ999þþۺ | Ʒþþþþҹ| þˬˬƬAV| ձƷһþþ| ҹ91þø| þ99ֻоƷ66| þ޾ƷƷ| ŷƷרþ| 2021ƷþþƷ| ޹Ʒþ98| þþþƷ2019ѹۿ| Ʒþþþþ| ݺɫۺվþþþþþ| þþ91뾫ƷHD | 99þѹۺϾƷ| þþƷav鶹С˵ | 뾫Ʒþþþþ| ˾þô߽| þ㽶߿ۿƷyw| ҹѸþӰԺ| þۺ϶㼤þ| þþWWW˳ɾƷ| þþȹ͵ۺ| þþŷղa| þþƷһ| 99ȳ˾ƷѾþ| þþþav| þþþƷsmվ| ھƷþþþӰԺվ| ˼˼þ99ֻƵƷ66|