<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>Eva's Blog</title>
<link>http://blogger.org.cn/blog/blog.asp?name=yanxiahu</link>
<description>Eva的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[Java 下的 team 开发]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=13046</link>
<author>yanxiahu</author>
<pubDate>2006/3/30 21:32:57</pubDate>
<description><![CDATA[
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">Java 下的 team 开发，一般采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式： </P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">1. 每天早上上班，每个开发人员从 cvs server 获取一个整个项目的工作拷贝； </P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">2. 拿到自己的任务，先用 junit 写今天的任务的测试代码； </P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">3. 然后写今天任务的代码，运行测试，直到测试通过，任务完成；</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">4. 在下班前一两个小时，各个开发人员把任务提交到 cvs server；</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">5. 然后由主管对整个项目运行自动测试，哪个测试出错，就找相关人员修改，直到所有测试通过。下班... </P>]]></description>
</item><item>
<title><![CDATA[DTD  step 1]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=13037</link>
<author>yanxiahu</author>
<pubDate>2006/3/30 15:34:54</pubDate>
<description><![CDATA[
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的意图在于定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文档的合法构建模块，它通过一系列合法元素来决定了</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XMl</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文档的内部结构。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">能够在你自己的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文档内部声明，也可以作为外部来参照</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">1.</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">内部声明</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">如果</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">被包含在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">源文件中，它将通过以下语法格式来在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">"DOCTYPE"</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!DOCTYPE root-element [element-declarations]&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">例</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">1:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;?xml version="1.0"?&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!DOCTYPE note [<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!ELEMENT note (to,from,heading,body)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!ELEMENT to<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>(#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!ELEMENT from<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>(#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!ELEMENT heading (#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!ELEMENT body<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>(#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">]&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;note&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;to&gt;Tove&lt;/to&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;from&gt;Jani&lt;/from&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;heading&gt;Reminder&lt;/heading&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;body&gt;Don't forget me this weekend&lt;/body&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;/note&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">上述包含有</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文档解释如下</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!DOCTYPE note<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>(</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在第</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">2</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">) </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">定义这是一个类型为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">note</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的文档</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT note<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>(</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在第</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">3</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">) </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"> note </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">有四个元素</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">: "to,from,heading,body".<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT to<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>(</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在第</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">3</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">) </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"> to </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">元素类型为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"> "#PCDATA".<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT from<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>(</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在第</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">4</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">) </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"> from </SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">元素类型为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"> "#PCDATA".<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">......<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">2.</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">外部声明</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">如果</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">源文件的外部，它将通过以下语法格式来在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">"DOCTYPE"</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中定义</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!DOCTYPE root-element SYSTEM "filename"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">例</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">2:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">此例</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文档与例</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">1</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">相同，但是使用的是外部的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;?xml version="1.0"?&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!DOCTYPE note SYSTEM "note.dtd"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;note&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;to&gt;Tove&lt;/to&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;from&gt;Jani&lt;/from&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;heading&gt;Reminder&lt;/heading&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;body&gt;Don't forget me this weekend!&lt;/body&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;/note&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文件</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">note.dtd</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">包含定义的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT note (to,from,heading,body)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT to (#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT from (#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT heading (#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">&lt;!ELEMENT body (#PCDATA)&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">看完以上大概介绍，可能大家有这样的疑问，为什么要使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">？</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">1.</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">，你的每个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">文件都能保存使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">格式化的数据描述。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">2.</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">，独立于使用者，并使用共同</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">达到数据交换之目的。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">你的应用程序可以通过标准的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">去验证来自外界的数据是否合法，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">当然你也可以通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">DTD</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">去验证自己的数据。</SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上是转载的</SPAN></P>]]></description>
</item><item>
<title><![CDATA[[c]在Solaris下安装CVS服务器文档]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12834</link>
<author>yanxiahu</author>
<pubDate>2006/3/23 10:32:22</pubDate>
<description><![CDATA[<PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>假设我们的<SPAN lang=EN-US>CVSROOT</SPAN>在<SPAN lang=EN-US>/opt/cvs <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>找到原代码<SPAN lang=EN-US>www.cvshome.org</SPAN>下载回来<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>解压<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$gunzip cvs-1-11.tar.gz <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$tar xvf cvs-1-11.tar <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>会回生成一个叫<SPAN lang=EN-US>cvs-1.11</SPAN>的目录，进入目录编译，<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$cd cvs-1.11 <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$./configure --prefix=/usr/local/cvs<o:p></o:p></FONT></SPAN></PRE><PRE><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">(--prefix</SPAN><SPAN style="FONT-SIZE: 10.5pt">参数是指定安装目录，相信大家都应该知道吧<SPAN lang=EN-US>) <o:p></o:p></SPAN></SPAN></FONT></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$make <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>$su root <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>#make install <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p></o:p></SPAN><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>将<SPAN lang=EN-US>/usr/local/cvs/bin </SPAN>加入到<SPAN lang=EN-US>PATH</SPAN>环境变量中。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>输入<SPAN lang=EN-US>cvs –version</SPAN>测试。正确的话会显示<SPAN lang=EN-US>cvs</SPAN>的版本号。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>操作完毕后，<SPAN lang=EN-US>CVS</SPAN>服务器需要的软件部分就安装上了，下面就要进行一些设置 <SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></PRE>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">建立用户组和用户帐号</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建组</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">groupadd group1 <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">groupadd group2<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">groupadd group3<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">groupadd test (测试)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">groupadd cvsadmin（管理员）<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">建立用户</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Useradd –m –g cvsadmin –G GID –d /export/home/cvsadmin –s /bin/bash cvsadmin<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Passwd cvsadmin<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvsadmin </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的密码</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同样的方法创建其他用户</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs/</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下建立文件夹</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Mkdir group1 group2 group3 test undercontral（受控库）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">CVS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器，初始化过程中将</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"> CVS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将创建它所用的系统文件，并写入原始内容。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">#cvs –d /opt/cvs/group1 init<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">#cvs –d /opt/cvs/group2 init<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">#cvs –d /opt/cvs/group3 init<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">#cvs –d /opt/cvs/test init<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">#cvs –d /opt/cvs/undercontral init<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">查看</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"> /opt/cvs/group1</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs/group2</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs/group3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs/test</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs/undercontral</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录，每个文件夹该生成一个</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">CVSROOT</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹，且该目录下面有很多系统文件。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体></FONT></o:p></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>编辑<SPAN lang=EN-US>/etc/services</SPAN>文件并且加入：<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体></FONT></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>#vi /etc/services<o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>cvspserver 2401/tcp #cvs server tcp port <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>cvspserver 2401/udp #cvs server udp port <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体></FONT></o:p></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>编辑<SPAN lang=EN-US>/etc/inetd.conf</SPAN>文件并且加入：<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体></FONT></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>#vi /etc/inetd.conf <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>cvspserver stream tcp nowait root /usr/local/cvs/bin/cvs cvs -f </FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><FONT face=宋体>--allow-root=/opt/cvs/group1 --allow-root=/opt/cvs/group2 --allow-root=/opt/cvs group3 --allow-root=/opt/cvs/test --allow-root=/opt/cvs/undercontral pserver <o:p></o:p></FONT></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10.5pt"><o:p><FONT face=宋体></FONT></o:p></SPAN></PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体></FONT></SPAN>&nbsp;</PRE><PRE><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>从新启动<SPAN lang=EN-US>inetd</SPAN>进程<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></PRE><PRE><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">#ps -ef |grep inetd(</SPAN><SPAN style="FONT-SIZE: 10.5pt">查<SPAN lang=EN-US>inetd</SPAN>的进程号<SPAN lang=EN-US>) <o:p></o:p></SPAN></SPAN></FONT></PRE><PRE><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 10.5pt">#kill -1 inetd</SPAN><SPAN style="FONT-SIZE: 10.5pt">的进程号<SPAN lang=EN-US> </SPAN></SPAN></FONT></PRE>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">telnet localhost 2401<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果出现光标闪动</SPAN><SPAN style="mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">ok </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回车</SPAN><SPAN style="mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">出现</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">[bash-2.03]root@solaris:/data/project&gt;telnet localhost 2401<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Trying 127.0.0.1...<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Connected to localhost.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Escape character is '^]'.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">ok </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回车</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvs [pserver aborted]: bad auth protocol start: ok<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">则说明</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvs</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器已经正常运行了。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">权限管理</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进入</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp sys –R cvs<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chmod –R 755 cvs<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进入</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/opt/cvs</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp –R group1 group1<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp –R group2 group2<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp –R group3 group3<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp –R test test<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chgrp –R cvsadmin undercontral<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Chmod –R 770 group1 group2 group3 test undercontral<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编辑</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">/etc/group<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvsadmin</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者其他管理员帐号（例如：Kilven</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）加入到</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvsadmin group1 group2 group3 test</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">五个组中</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvsadmin::102:cvsadmin,Kilven</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">group1::104: cvsadmin,Kilven</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">test::105:cvsadmin,Kilven</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">group2::106:cvsadmin,Kilven</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"></SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">group3::107:cvsadmin,Kilven</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">此时你再访问</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvs</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器就会发现除了</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvsadmin</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">Kilven</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以访问所有仓库以外，其他人只能访问自己组的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt">cvs</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">资源。</SPAN></P>]]></description>
</item><item>
<title><![CDATA[XML初初感觉]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12452</link>
<author>yanxiahu</author>
<pubDate>2006/3/11 9:33:12</pubDate>
<description><![CDATA[<P>&nbsp;&nbsp;&nbsp; XML 是非常非常重要的东西，但它什么都取代不了。但这并不奇怪，有人把它比做 ASCII 标准，他们是一切一切的基础，但并没有（也不需要）取代什么。（但是就如同 ASCII 取代了一些没有成大器的字符集定义，XML 也会取代你在应用中自己定义的一些数据传输规范，但没有什么特别主流的东西。） <BR>&nbsp;&nbsp;&nbsp; 刚开始学 XML （或者说没开始学之前）的时候最爱问的一个问题肯定是：使用 XML 能给我带来什么好处？</P>
<P>&nbsp;&nbsp;&nbsp; 我觉得从某种角度上说，使用 XML 有些象使用 OO 面向对象：&nbsp;&nbsp;&nbsp; <BR>&nbsp;- 你可以用它，你也可以不用它。&nbsp;&nbsp;&nbsp; <BR>&nbsp;- 如果你的应用非常简单，用它不一定方便，没准儿用了效果还会更差。 <BR>&nbsp;- 和其他实际东西比如数据库，MTS，Web Server比起来，它更像是一个概念，一种方法&nbsp;&nbsp;&nbsp; <BR>&nbsp;- 项目越大，它的发挥余地越大，作用越大。 <BR>&nbsp;- 一旦真正理解后，哪怕不用 xml parser，也不妨碍你使用这个概念，如同可以抛开特定语言使用 OO。<BR>&nbsp;- ......&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 在我目前浅显的认识里：<BR>&nbsp;- XML 是用来传递数据的 <BR>&nbsp;- XML 让这些数据有了结构 -- 一个树型结构&nbsp; <BR>&nbsp;- xml 有全套的操作这种结构的方法&nbsp;&nbsp;&nbsp; <BR>&nbsp;- xml 规范（或者说的实际点，xml parser）帮你确定你创建的字符串是合法的&nbsp; <BR>&nbsp;- xml 规范（或者说的实际点，xml parser）中有办法验证这个合法性 <BR>&nbsp;- 对于拿到这个字符串的 server component 来说，可以用 xml 中现成的方法来操作它， 这就是 xpath, pattern，类似于 T-SQL 语句。（但记住 xml 是树型结构的）<BR>&nbsp;- XSLT 使用 xpath 对 xml 进行转换（类似于 DTS），其中一种特例是把 XML 转换成 HTML 输出。</P>]]></description>
</item><item>
<title><![CDATA[is blog?]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12424</link>
<author>yanxiahu</author>
<pubDate>2006/3/10 8:11:26</pubDate>
<description><![CDATA[Weblog是Web Log的缩写，中文意思是＂网络日志＂，后来缩写为Blog，而Blogger（博客）则是写blog的人。<BR><BR>一个博客（blog）就是一个网页，它通常是由简短且经常更新的Post所构成；这些张贴的文章都按照年份和日期排列。博客（blog）的内容和目的有很大的不同，从对其他网站的超级链接和评论，有关公司、个人、构想的新闻到日记、照片、诗歌、散文，甚至科幻小说的发表或张贴都有，涉及各行各业。许多博客（blog）是个人心中所想之事情的发表，倾向于个人情感的体现活动。其它博客（blog）则是一群人基于某个特定主题或共同利益领域的集体创作。博客（blog）好象对网络传达的实时讯息。撰写这些Weblog或博客（blog）的人就叫做 Blogger或Blog writer。 <BR><BR>具体说来， 博客（blogger）这个概念解释为使用特定的软件，在网络上出版、发表和张贴个人文章的人。其实博客（blog）的定义和认识可以说并没有统一的说法。或者说博客（blog）是一种新的生活方式、新的工作方式、新的学习方式和交流方式，是"互联网的第四块里程牌”。<BR><BR>下面引用一些关于博客的比喻，以此形象说明：博客是继Email、BBS、ICQ之后出现的第四种网络交流方式；博客是网络时代的个人“读者文摘” ；博客是以超级链接为武器的网络日记 ；博客是信息时代的麦哲伦；博客代表着新的生活方式和新的工作方式，更代表着新的学习方式。通过博客，让自己学到很多，让别人学到更多。 <BR><BR>在网络上发表博客（blog）的构想使于1998年，但到了2000年才真正开始流行。起初，Bloggers将其每天浏览网站的心得和意见记录下来，并予以公开，来给其它人参考和遵循。 <BR><BR>但随着Blogging快速扩张，它的目的与最初已相去甚远。目前网络上数以千计的 Bloggers发表和张贴博客（blog）的目的有很大的差异。不过，由于沟通方式比电子邮件、讨论群组更简单和容易，博客（blog）已成为家庭、公司、部门和团队之间越来越盛行的沟通工具，因为它也逐渐被应用在企业内部网络（Intranet）。 <BR>]]></description>
</item><item>
<title><![CDATA[is API?]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12418</link>
<author>yanxiahu</author>
<pubDate>2006/3/9 21:57:22</pubDate>
<description><![CDATA[Abbreviation of application program interface, a set of routines, protocols, and tools for building software applications. A good API makes it easier to develop a program by providing all the building blocks. A programmer puts the blocks together. <BR>Most operating environments, such as MS-Windows, provide an API so that programmers can write applications consistent with the operating environment. Although APIs are designed for programmers, they are ultimately good for users because they guarantee that all programs using a common API will have similar interfaces. This makes it easier for users to learn new programs.]]></description>
</item><item>
<title><![CDATA[[转] workflow2]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12417</link>
<author>yanxiahu</author>
<pubDate>2006/3/9 21:25:12</pubDate>
<description><![CDATA[<FONT size=2>步骤大概是这样:<BR>1. 编写xpdl文件<BR>2. 把xpdl文件用webtools下提供的xpdl reader 导入到数据库<BR>3. 在service定义文件里添加上你写的workflow的表示, service type是workflow<BR>4. 写好你在xpdl文件里用到的一些自定义的Implementation Tool, 我都是用PROCEDURE, 即service, 用来实现对应用数据的操作.<BR>5. 如果你有用到ExtendedAttribute的limitAfterStart, 还要写limitService, 通常我用limitService来实现超时处理.<BR>6. 最后是写一些test unit利用service engine来做一些测试, 主要目的是看定义在xpdl里的Transitions是否正确.<BR>我的文档向来写得很差, 以上只是一些要点, 希望对你有用. <BR><BR>我道建议你先看看ofbiz中的XPDL，从这里入手你会决定容易一点。</FONT><BR>]]></description>
</item><item>
<title><![CDATA[[转] workflow1]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=12416</link>
<author>yanxiahu</author>
<pubDate>2006/3/9 21:25:12</pubDate>
<description><![CDATA[<P><FONT size=2>　ofbiz 中使用xpdl定义工作流，所以要看定义语言，另外，ofbiz中的order模块是通过工作流实现的，此流程，首先在网上下订单，然后内部进行处理。 </FONT></P>
<P><FONT size=2>order例子的运行过程<BR>processorder--]checkblacklist --]processpayment --]success --] clearchart --] initiateOrderWorkflow --]start the workflow</FONT></P>
<P><FONT size=2>1.首先根据订单提交时的用processorder，根据ecommerce下的controller.xml发现<BR>[request-map uri="processorder"]<BR>[security https="true"/]<BR>[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="createOrder"/]<BR>[response name="success" type="request" value="checkBlacklist"/]<BR>[response name="error" type="view" value="checkout"/]<BR>[/request-map]<BR>在调用createOrder成功后，根据success的条件，调用checkBlacklist，同样在根据ecommerce下的controller.xml发现</FONT></P>
<P><FONT size=2>[request-map uri="checkBlacklist"]<BR>[security direct-request="false"/]<BR>[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="checkOrderBlacklist"/]<BR>[response name="success" type="request" value="processpayment"/]<BR>[response name="failed" type="request" value="failedBlacklist"/]<BR>[response name="error" type="view" value="checkout"/]<BR>[/request-map]</FONT></P>
<P><FONT size=2>在checkOrderBlacklist成功后，根据success，转向processpayment<BR>[request-map uri="processpayment"]<BR>[security https="true" direct-request="false"/]<BR>[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="processPayment"/]<BR>[response name="success" type="request" value="clearcartfororder"/]<BR>[response name="fail" type="view" value="checkoutoptions"/]<BR>[response name="error" type="view" value="checkout"/]<BR>[/request-map]</FONT></P>
<P><FONT size=2>processPayment成功后，转向clearcartfororder<BR>[request-map uri="clearcartfororder"]<BR>[security direct-request="false"/]<BR>[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.ShoppingCartEvents" invoke="clearCart"/]<BR>[response name="success" type="request" value="initiateOrderWorkflow"/]<BR>[response name="error" type="view" value="checkout"/]<BR>[/request-map]</FONT></P>
<P><FONT size=2>成功后，调用initiateOrderWorkflow，<BR>[request-map uri="initiateOrderWorkflow"]<BR>[security https="true" direct-request="false"/]<BR>[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="initiateOrderWorkflow"/]<BR>[response name="success" type="request" value="checkExternalPayment"/]<BR>[response name="error" type="view" value="checkout"/]<BR>[/request-map] </FONT></P>
<P><FONT size=2>在initiateOrderWorkflow中， <BR>dispatcher.runAsync("processOrder", UtilMisc.toMap("orderId", orderId, "orderStatusId", orderHeader.getString("statusId")));启动工作流，对应services_order.xml中的<BR>[service name="processOrder" engine="workflow" location="org.ofbiz.commonapp.order.order" invoke="ProcessOrder"]<BR>[description]Service for testing the workflow engine[/description]<BR>[attribute name="orderId" type="String" mode="IN" optional="false"/] <BR>[attribute name="orderStatusId" type="String" mode="INOUT" optional="false"/]<BR>[/service]<BR>此service的engine为workflow表示是一个工作流的服务，</FONT></P>
<P><FONT size=2>service的定义ProcessOrder中的location表示xpdl定义中的package，<BR>[Package Id="org.ofbiz.commonapp.order.order"]<BR>invoke对应与在orderProcessXPDL.xml中，<BR>[WorkflowProcess Id="ProcessOrder" Name="Processes incoming orders"]<BR></FONT></P>]]></description>
</item><item>
<title><![CDATA[ofbiz学习站点]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=10610</link>
<author>yanxiahu</author>
<pubDate>2005/12/15 12:01:41</pubDate>
<description><![CDATA[
<P>ofbiz&nbsp;&nbsp;官方网站：http://www.ofbiz.org/</P>
<P>ofbiz的API：<A href="http://www.ofbiz.org/api/">http://www.ofbiz.org/api/</A></P>]]></description>
</item><item>
<title><![CDATA[我用过的JAVASCRIPT]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=10351</link>
<author>yanxiahu</author>
<pubDate>2005/12/3 15:49:58</pubDate>
<description><![CDATA[
<P>1. 刷新当前的页面：&lt;a href="javascript:window.location.reload()"&gt;刷新&lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...onclick="javascript:window.location.reload()"....</P>
<P>2. 关闭当前的窗口：onclick="javascript:window.close()"</P>
<P>3. 后退：onclick="javascript:window.goback()"</P>
<P>4. 刷新弹出窗口刷新它的父窗口：onclick="javascript:window.opener.location.reload()"<BR>注意：该代码使用时，会出现一个提示“是否刷新本网页”的提示框；[post方式]</P>
<P>window.opener.location.href=window.opener.location.href <BR>就是弹窗的父页面重定向到自己 <BR>window.opener.location..reload() <BR>是刷新一下 <BR></P>]]></description>
</item><item>
<title><![CDATA[如何修改weblogic console登陆的用户名和密码]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=yanxiahu&amp;id=10332</link>
<author>yanxiahu</author>
<pubDate>2005/12/2 20:20:34</pubDate>
<description><![CDATA[在XP系统上安装了weblogic server 8.1，安装成功后，启动服务器startwls，系统显示服务器正常启动。在IE6.1中输入<A href="http://localhost:7001/console">http://localhost:7001/console</A>后，出现要求登陆的界面。那么如何修改安装时设定的用户名和密码???
<P>注：console的密码一般都是在安装的时候指定的。</P>
<P>第一步：在console端使用原来的用户名和密码登陆，再进入Your Appliation's Security Setting的Realms，再进入myrealm，进入user Managerment,进入manager users within this Security Realm；[该操作界面 可以修改“删除”老的用户，“新增”管理用户]</P>
<P>第二步：在manager users within this Security Realm操作界面上，可以新建一个用户，注意必须将该用户设定到管理员组内，否则该用户无法在console上登陆； 还可以修改原登陆者的密码[weblogic的密码是8位数字以上]</P>
<P>第三步：关闭wls服务进程；</P>
<P>第四步：备份你的config.xml和boot.properties文件，为了避免修改操作失误；</P>
<P>如果没办法回复到修改密码前的那种状态，那只能建议你重配Domain了.</P>
<P>第五步：修改boot.properties文件是可以的，<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username=weblogic<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password=123456789<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 记着用户名和密码都不加引号，否则启不来。启动完后用户名和密码自动就变成密文了。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者你把boot.properties的用户名和密码清空，启动时手工输入用户名和&nbsp;密码也是可以的。</P>
<P>注：其实你把boot.properties删掉也没关系。只要你知道一套正确的管理员帐号密码就行，只不过每次启动server要输入。</P>]]></description>
</item>
</channel>
</rss>