??xml version="1.0" encoding="utf-8" standalone="yes"?>jlzzjlzz亚洲乱熟在线播放,国产亚洲精品自在久久,亚洲依依成人精品http://m.tkk7.com/asenyifei/我曾l蟩q冰冷彻骨的x中,救v了一个豆d?lt;br> 是的Q是q样?/description>zh-cnMon, 12 May 2025 11:46:35 GMTMon, 12 May 2025 11:46:35 GMT60潜心学习XML之篇章三QDTD文档的结?/title><link>http://m.tkk7.com/asenyifei/articles/173436.html</link><dc:creator>Jason.Chen</dc:creator><author>Jason.Chen</author><pubDate>Fri, 25 Jan 2008 02:58:00 GMT</pubDate><guid>http://m.tkk7.com/asenyifei/articles/173436.html</guid><wfw:comment>http://m.tkk7.com/asenyifei/comments/173436.html</wfw:comment><comments>http://m.tkk7.com/asenyifei/articles/173436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/asenyifei/comments/commentRss/173436.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asenyifei/services/trackbacks/173436.html</trackback:ping><description><![CDATA[<blockquote><span style="color: rgb(153, 153, 153);">Q本pd文章是我学习的过E中Q整理出来的W记Q如有错漏,看官请一定不吝回复,让我能认识自q不Qƈ改进错误。非常感谢!Q?/span><br /> </blockquote><blockquote>本章大概内容Q?br /> 1、ؓ什么需要DTD<br /> 2、XML文档如何使用DTD<br />     1Q内部定义DTD<br />     2Q关联外部DTD<br /> 3、DTD的结?br />     1Q元素类型声?br />     2Q属性列表声?br />     3Q实体声?br />     4Q记号声?br /> </blockquote> <br /> <blockquote>    对于一个格式良好的XML文档Q我们只能保证这个文档的格式W合XML规范Q但是元素与元素的关p,元素与属性的关系Q属性的取|我们无法保证了。对于一个格式良好的文档Q如果只是在有限的应用中使用Q或者是用于存储和传输,那么它也能能够很好的满我们的应用,但是如果要其它的用户了解你所写的XML文档Q或者与其它应用q行数据的交换,那么有必要提供一U机Ӟ来保证我们写的XML文档和别人所写的XML文档在结构上是相同的Q元素与元素之间的关pL正确的,属性的取g是符合要求的Q那么这U机制在XML规范中已lؓ我们提供了,那就是前一章中介绍q的文档cd声明中提到的DTD?br /> <br /> DTDQDocument Type DefinitionQ,文档cd定义?br /> <br />     在XML标准中,描述了如何创建DTDQ以及如何将它与Ҏ它的规范所~写的XML文档相关联,q且q定义了XML处理器应该如何对DTDq行处理。有了DTD可以检XML文档的结构是否正?br /> DTD为XML文档的编写者与处理者提供了共同遵@的原则,使得与文档相关的各种工作有了l一的标准?br /> <br /> 如何在XML文档中引入DTD<br /> <br /> 通过在XML文档中包含文档类型声明,来徏立当前文档和DTD的关联。当q行有效性验证的XML处理器读到该声明Ӟ它获取DTDQƈҎ其中定义的规则对文档q行验。文档类型声明必M于XML声明之后Q且在根元素Q文档元素)之前。不q,在XML声明和文档类型声明之间可以插入注释和处理指o?br /> 我们可以直接在XML文档中定义DTDQ也可以通过URI引用外部的DTD文gQ或者同旉用这两种方式?br /> 上一章中Q已l学习过如何通过包含文档cd声明来徏立与DTD的关联。现在来分析一下这两种包含方式?br /> <br /> <strong> 在XML文档内部l出DTD的方式:</strong><br /> <br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><?</span><span style="color: rgb(255, 0, 255);">xml version="1.0" encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE OrganizationChart [<br />     <!ELEMENT OrganizationChart (Name,Office)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Name (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Office (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     ]><br /> <br /> </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 128, 0);"><!--</span><span style="color: rgb(0, 128, 0);">OrganizationChart是该XML文档的document element</span><span style="color: rgb(0, 128, 0);">--></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">TooneQINC.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">zhuhai</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 128, 0);"><!--</span><span style="color: rgb(0, 128, 0);">因ؓDTD中定义了NameQOffice两个元素的顺序,Office元素不能攑֜Name元素的前面,否则不是有效的XML文档</span><span style="color: rgb(0, 128, 0);">--></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span></div> </blockquote><blockquote>     文档cd声明?lt;!开始,后面紧跟一个关键字DOCTYPEQ然后是文档根元素的名字Q接下来是标记声明块Q标记声明块攑֜中括号[]之间Q由一个或者多个标记声明构成,最后由>l束?br /> <br />     在DTD中,所有的关键字都是大写的。不q,在DTD中定义的元素和属性的大小写是可以L制定的,但是要注意,因ؓXML文档是大写相关的,所以一旦给一个元素命名,那么在整个文档中要用相同的大小写。例如,organizationchart和OrganizationChart是不同的两个元素名?br /> <br />     在XML文档中定义DTDQ比较直观,修改也比较方便,而且不用担心XML处理器找不到DTDQ但是它也有一些缺点:<br /> <br />     1、在文档中定义DTD会导致文档本w的长度增加Q在传输数据Ӟ即不需要验证文档的有效性,q些声明也要一起传输?br /> <br />     2、如果多个XML文档要共用同一个DTDQ我们就需要在每一个文档中加入DTD?br /> <br /> <br />     <strong>引进外部DTD方式Q?/strong><br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><?</span><span style="color: rgb(255, 0, 255);">xml version="1.0" encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE OrganizationChart SYSTEM "dtdTest.dtd" </span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">TooneQINC.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">zhuhai</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span></div>     对应DTD内容为:<br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><?</span><span style="color: rgb(255, 0, 255);">xml version="1.0" encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT OrganizationChart (Name,Office)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Name (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Office (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span></div> <br /> 在文档类型声明时Q用间质SYSTEM或PUBLIC来指出外部DTD文g的位|,使用SYSTEM关键字的声明语法如下Q?br /> <br /> <!DOCTYPE 根元素的名字 SYSTEM "外部DTD文g的URI"><br /> <br /> SYSTEM关键字表C文档用的是私有的DTD文gQ?#8220;外部DTD文g的URI”可以是相对URI或者绝对URI。例如上面的例子使用的就是相对URIQ?br /> <br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE OrganizationChart SYSTEM "dtdTest.dtd" </span><span style="color: rgb(0, 0, 255);">></span></div> <br /> 使用PUBLIC关键字的声明语法如下Q?br /> <br /> <!DOCTYPE 根元素的名字 PUBLIC "DTD的名? "外部DTD文g的URI"><br /> <br /> PUBLIC关键字用于声明公qDTDQƈ且这个DTDq有一个名Uͼ"DTD的名U?也称为公共标识符(public identifier)。这个DTD可以存放在某个公q地方QXML处理E序会根据名U按照某U方式去索DTDQ如果XML处理器不能根据名U检索到DTDQ就会?外部DTD文g的URI"来查找该DTD。例如Java web开发的web.xml中的DTD声明Q版本不同会E有不同Q我们只x它的l构Q:<br /> <br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' <br /> 'http://java.sun.com/dtd/web-app_2_3.dtd'</span><span style="color: rgb(0, 0, 255);">></span></div> <br /> <br /> DTD名称与XML名称略有不同Q他们只能包含ASCII字母和数字符受空根{回车符、换行符和一些标点符P-'()+,/:=?;!#@*$_%.<br /> <br /> 公共DTD名称要遵守一些约定。如果一DTD是ISO标准Q它的名U要以字W串"ISO"开始。如果是一个非ISO的标准组l批准的DTDQ它的名字以加号Q+Q开始。如果不是标准组l批准的DTDQ它的名UCq字W(Q)开始。这些开始字W或字符串后接双斜杠Q?/Q和DTD所有者的名字Q比如上面例子的Sun MicrosystemsQInc.Q,之后是另一个双斜杠和DTD描述的文档类型,接着优势一个双斜杠后接ISO 639语言标识W,如EN表示pQZH表示中文。例如:<br /> <br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE OrganizationChart PUBLIC "-//Jason Chen//DTD organization chart 1.0//ZH" "dtdTest.dtd"</span><span style="color: rgb(0, 0, 255);">></span></div> <br /> 在上一章我们提刎ͼ如果我们的文档不依赖于外部文档,在XML声明中,可以通过standalone="yes"来声明这个文档是独立的文档。如果文档依赖于外部文档Q可以通过standalone="no"来声明。当我们使用外部DTD文gӞ需要将属性standalone的D|ؓ"no"?br /> 在实际应用中Q很用standalone属性,它的主要用途是作ؓXML处理器行业其他应用程序的标志Q表C是否需要获取外部内宏V如果文档依赖于外部文档Q即使我们不使用standalone属?XML处理器也能很好地q行处理?br /> <br /> <strong>DTD的结构:<br /> <br /> </strong>DTD的结构一般由以下四种声明构成Q?br />     1、元素类型声?br />     2、属性列表声?br />     3、实体声?br />     4、记号声?br /> 一个典型的文档cd定义文g会吧所要创建的XML文档的元素结构、属性类型、实体引用等预先q行定义?br /> 下面分别介绍q四U声明?br /> <br /> 1、元素类型声明:<br /> <br /> 一个DTD不仅要告诉XML处理器它所对应的文档根元素Q而且q要告知处理器,文档的内容和l构Q描q清楚文档结构中的每一个细节?br /> 元素cd声明不但说明了每一个文档中可能存在的元素,l出了元素的名称Q而且l出了元素的具体cd?br /> 一个XML元素可以为空Q也可以只包含字W数据,q可以有若干个子元素Q而这些子元素同时又可以拥有它们的子元素?br /> 元素cd声明采用如下的语法格式:<br /> <!ELEMENT 元素名称 元素内容说明><br /> 元素内容说明可以指明五种可能的元素内容Ş式:QPCDATA、子元素、؜合内宏VEMPTY和ANY?br /> 下面详细说明每一U元素内容说明?br /> <br /> #PCDATA:<br /> <br /> 关键?PCDATA说明元素包含字符数据?br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);"><?</span><span style="color: rgb(255, 0, 255);">xml version="1.0" encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">DOCTYPE OrganizationChart [<br />     <!ELEMENT OrganizationChart (Name,Office)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Name (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><!</span><span style="color: rgb(255, 0, 255);">ELEMENT Office (#PCDATA)</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     ]><br /> </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">TooneQINC.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">ZhuHai</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Office</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br /> </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">OrganizationChart</span><span style="color: rgb(0, 0, 255);">></span></div> <br /> 子元素:<br /> <br /> 当一个元素只包含子元素,而没有字W数据时Q则U此元素cdh元素型内容(element contentQ?br /> 在该cd的元素声明时Q通过内容模型来指定在其内容上的约束。内Ҏ型是军_子元素类型和子元素出现顺序的一U简单语法?br /> <br /> <br /> </blockquote><strong><br /> </strong> <img src ="http://m.tkk7.com/asenyifei/aggbug/173436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asenyifei/" target="_blank">Jason.Chen</a> 2008-01-25 10:58 <a href="http://m.tkk7.com/asenyifei/articles/173436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个h要走多少路才能被UCؓ男子汉?http://m.tkk7.com/asenyifei/archive/2008/01/08/173601.htmlJason.ChenJason.ChenTue, 08 Jan 2008 04:54:00 GMThttp://m.tkk7.com/asenyifei/archive/2008/01/08/173601.htmlhttp://m.tkk7.com/asenyifei/comments/173601.htmlhttp://m.tkk7.com/asenyifei/archive/2008/01/08/173601.html#Feedback3http://m.tkk7.com/asenyifei/comments/commentRss/173601.htmlhttp://m.tkk7.com/asenyifei/services/trackbacks/173601.html    昨天晚上和一?q没见面的朋友视频聊天,她看着我说我比以前老成了,然后奚w我,一个h要走多少的\才能被称为男子汉Q我说我不知道,也从来没有想q这个问题,我只是ؓ了生zd工作。然后我想h《阿甘正传》里面的2D|词,l她敲了q去?br />
一D|Jenny在酒吧裸体抱着吉他弹唱的:

How many roads must a man walk down 一个h要走多少?br />
Before you can call him a man? 才能被称为男子汉Q?br />
Yes, and how many seas must the white dove sail 一条船要出几回?..

Before she sleeps in the sand? 才能w在沙W上?

Yes, and how many times 而到底需要多次...

Must the cannon balls fly 炮火的蘪?br />
Before they're forever banned? 才能l束战争Q?br />
The answer, my friend 那答案,我的朋友...

Is blowin'in the wind ...在风中飘?br />
Is blowin'in the wind ...在风中飘?br />


另一D|Forrest Gump跑步跑遍国时的背景音乐Q?br />
Lookin'out at the road rushin'under my wheels 看着路在车轮下g?br />
Lookin'back at the years gone by 看着一q年时光飞?br />
Like so many summer fields 像一片片夏日农田

In '65, I was 17 六五q那时我十七?br />
And runnin'up one on one 我在一M停地奔跑
 
I don't know where I'm runnin'now 我不知道跑到了何?br />
I'm just runnin'on 我只是在不停地奔?br />
Runnin'on 奔跑

Runnin'on Empty 无缘无故地奔?br />
Runnin'on 奔跑

Runnin'dry 直到_力尽


    一个h要走多少路才能被UCؓ男子汉,那答案,我的朋友Q它在风中飘Q看着一q年时光飞逝,我只是一M停地奔跑Q我不知道跑C何处Q我无缘无故地奔跑,直到_力尽?br />



Jason.Chen 2008-01-08 12:54 发表评论
]]>
潜心学习XML之篇章二QXML文档的结?/title><link>http://m.tkk7.com/asenyifei/articles/172884.html</link><dc:creator>Jason.Chen</dc:creator><author>Jason.Chen</author><pubDate>Mon, 07 Jan 2008 07:44:00 GMT</pubDate><guid>http://m.tkk7.com/asenyifei/articles/172884.html</guid><wfw:comment>http://m.tkk7.com/asenyifei/comments/172884.html</wfw:comment><comments>http://m.tkk7.com/asenyifei/articles/172884.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/asenyifei/comments/commentRss/172884.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asenyifei/services/trackbacks/172884.html</trackback:ping><description><![CDATA[<blockquote> <span style="color: #999999;">Q本pd文章是我学习的过E中Q整理出来的W记Q如有错漏,看官请一定不吝回复,让我能认识自q不Qƈ改进错误。非常感谢!Q?/span> <br /> <span style="color: #999999;"> </span> </blockquote> <span style="color: #999999;"> <br /> </span> <blockquote> <span style="color: #000000;">推荐一个XML~辑工具Q强大的XMLSpyQ我用的?008版?/span> <br /> <span style="color: #999999;"> </span> </blockquote> <span style="color: #999999;"> <br />     <span style="color: #000000;">XML文档的结构可以从物理和逻辑两方面来看?br /> </span></span> <blockquote> <span style="color: #999999;"> <span style="color: #000000;">    <strong>一、从物理上而言</strong>Q文档由UCؓ实体Q?span style="color: #999999;">entities</span>Q的存储单元l成Q实体都是具有内容ƈ且都通过实体的名字进行标识(文档实体和外部DTD子集除外Q。实体可以是一D|本,一个文Ӟ一个数据库记录或者其他包含数据的目Q一个实体可以引用其它的实体Q从而将它们包含在文档中。文档开始于“根(<span style="color: #999999;">root</span>Q?#8221;或者文档实体(<span style="color: #999999;">document entity</span>Q。格式良好的XML文档形成了一U层ơ树l构Q这个树l构的树根就是文档实体,与其它实体不同,文档实体没有名字Q只是用于表C文档树的根。XML文档的根元素被称位文档元素(<span style="color: #999999;">document element</span>Q,它和在其外部出现的处理指令,注释{作为文档实体的子节点,而根元素本n和其内部的子元素也是一|?br /> <br />     实体可以包含已分析(parsedQ的或未分析的(unparsedQ数据。已分析的数据由字符l成Q其中一些字W组成字W数据,另一些字W组成标记。已分析的实体(parsed entityQ内容被成ؓ它的代替文本Q这个文本被看称是文档整体的一部分Q在XML处理器分析XML文档Ӟ凡是文档中出现引用已分析实体的地方,都将被该实体的内Ҏ替换。未分析的实体(unparsed entityQ是一U资源,它的内容可以是也可以不是文本Qƈ且,如果是文本的话,可以不是XML文本Q每一个未分析的实体有一个相兌的用名字标识的记P<font color="#999999">notation</font>Q。除了要求XML处理器能向应用程序提供可用的实体和记L标志W之外,XMLҎ分析的的实体内容不做M限制。已分析的实体以实体引用的方式通过名字来调用,未分析的实体通过ENTITY或ENTITIES属性中l出的名字来调用?br /> <br />     <strong>二、逻辑上而言</strong>Q文档由声明Q元素,注释Q字W引用和处理指ol成Q在文档中,所有这些都是通过昑ּ的标讎ͼmarkupQ来指明的。XML标记QmarkupQ包括开始标{(tagQ、结束标{、空元素标签、实体引用、字W引用、注释、CDATAD定界符、文档类型声明、处理指令、XML声明、文本声明以及Q何在文档实体层的空白(卻I在文档元素之外,且不在Q何其它的标记内部Q?br /> 其它所有非标记的文本组成文档的字符数据?br />     XML文档在逻辑上主要由以下五个部分l成Q?br />     1、XML声明<br />     2、文档类型声?br />     3、元?br />     4、注?br />     5、处理指?br /> <br /> 下面具体介绍XML文档逻辑上的五个部分?br /> <br /> <strong>1、XML声明</strong><br /> XML文档L以一个XML声明开始的Q其格式如下<br />     <?xml 版本信息 [~码信息] [文档独立性信息]?><br /> 其中Q编码信息和文档独立性信息可以不写,而用默认倹{?br /> <br /> 需要注意的是,XML声明L在XML文档的最前面Q其前面不能出现M字符?br /> <br /> 下面是几个例子:<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #008000;"><!--</span><span style="color: #008000;">版本信息声明</span><span style="color: #008000;">--></span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="ISO-8859-1"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #008000;"><!--</span><span style="color: #008000;">~码信息声明.默认值是"UTF-8"</span><span style="color: #008000;">--></span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8" standalone="yes"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #008000;"><!--</span><span style="color: #008000;">文档独立性信息声?如果文档依赖于外部文档,则需要将standalone属性设|ؓ"no"</span><span style="color: #008000;">--></span></div> <br /> <br /> <strong>2、文档类型声?/strong><br /> <br /> DTDQDocument Type DefinitionQ,文档cd定义?br /> <br /> 首先提一个问题,如果你的一个XML文档l别Z用,别h怎么才能正确地定义XML文档中的元素Q属性呢Q就好像我们用StrutsӞ我们需要配|struts-config.xml,但是怎么保证我们的配|是正确的?{案是用DTD来验证?br /> <br /> 一个遵循XML语法规则Qƈ遵守相应DTD文gU束的XML文档UCؓ<strong>有效的XML文档</strong>?br /> <br /> XML从SGMLl承了用于定义语法规则的DTD机制QDTD文g本n是不需要遵循XML规则的。大部分的XML应用都是使用DTD来定义的Q还有一部分是用XML Schema来定义的QXML Schema在其专题中学习)。HTML有一个标准的DTD文gQ所以其l织l构和所有的标签都是固定的,DTD文g本n也是一个文本文Ӟ通常?.DTD"为其扩展名?br /> <br /> 文档cd声明的作用就是指出XML文档所用的DTDQ文档类型声明有两种形式?br /> <br /> 一U是在XML文档中给出DTDQ如下:<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">DOCTYPE OrganizationChart [<br />     <!ELEMENT OrganizationChart (Name,Office)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">ELEMENT Name (#PCDATA)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">ELEMENT Office (#PCDATA)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     ]><br /> </span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><</span><span style="color: #800000;">OrganizationChart</span><span style="color: #0000ff;">><br /> <!--OrganizationChart是该XML文档的document element--><br /> </span><span style="color: #000000;">    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">Name</span><span style="color: #0000ff;">></span><span style="color: #000000;">TooneQINC.</span><span style="color: #0000ff;"></</span><span style="color: #800000;">Name</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;"><</span><span style="color: #800000;">Office</span><span style="color: #0000ff;">></span><span style="color: #000000;">zhuhai</span><span style="color: #0000ff;"></</span><span style="color: #800000;">Office</span><span style="color: #0000ff;">><br />     <!--因ؓDTD中定义了NameQOffice两个元素的顺序,Office元素不能攑֜Name元素的前面,否则不是有效的XML文档--><br /> </span><span style="color: #0000ff;"></</span><span style="color: #800000;">OrganizationChart</span><span style="color: #0000ff;">></span></div> <br /> 另一U是在一个外部文件定义的DTD文gQ如下:<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">DOCTYPE OrganizationChart SYSTEM "dtdTest.dtd" </span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><</span><span style="color: #800000;">OrganizationChart</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;"><</span><span style="color: #800000;">Name</span><span style="color: #0000ff;">></span><span style="color: #000000;">TooneQINC.</span><span style="color: #0000ff;"></</span><span style="color: #800000;">Name</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;"><</span><span style="color: #800000;">Office</span><span style="color: #0000ff;">></span><span style="color: #000000;">zhuhai</span><span style="color: #0000ff;"></</span><span style="color: #800000;">Office</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"></</span><span style="color: #800000;">OrganizationChart</span><span style="color: #0000ff;">></span></div> 对应DTD文gdtdTest.dtd内容? <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff;">?></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">ELEMENT OrganizationChart (Name,Office)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">ELEMENT Name (#PCDATA)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">ELEMENT Office (#PCDATA)</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> </span></div> <br /> <br /> <strong>3、元?br /> <br /> </strong>在XML中,元素由开始标{、元素内容和l束标签构成Q对于空元素Q由I元素标{构成?br /> 每一个元素都有一个用名字标识的类型,同时它可以由一个属性说明集Q每一个属性说明有一个名字和一个倹{?br /> 在给元素命名的时候要注意Q以"xml"或其他Q何匹?('X'|'x')</span> </span> <span style="color: #999999;"> <span style="color: #000000;">('M'|'m'</span> </span> <span style="color: #999999;"> <span style="color: #000000;">)('L'|'l'</span> </span> <span style="color: #999999;"> <span style="color: #000000;">))的字W串开头的名字Q被保留用于XML规范的当前版本或者后l版本的标准化。此外,在给元素命名Ӟq要遵@下列规范Q?br />     1、名字只能以字母、下划线Q_Q或者冒P:Q开_<br />     2、名字中可以包含字母、数字、下划线以及其他在XML标准中允许的字符Q?br />     3、名字中不能包含I格Q?br />     4、名字中可能不要用冒P:Q,因ؓ冒号在名字空间中被用于分隔名字空间前~和本地部分?br /> <br /> 元素的四UŞ式:<br />     1、空元素<br />     2、带有属性的I元?br />     3、带有内容的元素<br />     4、带有内容和属性的元素<br /> <br /> 在一个元素的内容中,字符数据可以是不包含M标记的v始定界符和CDATAD늚定界W的L字符Ԍ也就是会所在元素的内容中,字符数据不能有和P&Q和于P</span> </span><Q,也不能有字符?]]>"。那么如果我们要用这些字W的话,必须用他们对应的字符引用和实体引用来表示Q见下表Q?br /> <br /> <table border="0" cellpadding="2" cellspacing="2" width="500"> <tbody> <tr align="center"> <td colspan="4"> 元素内容的字W引用和实体引用</td> </tr> <tr> <td> 字符</td> <td> 字符引用<br /> Q十q制代码Q?br /> </td> <td> 字符引用<br /> Q十六进制代码)<br /> </td> <td colspan="1">预定义实体引?nbsp;</td> </tr> <tr> <td> <</td> <td>< <br /> </td> <td><<br /> </td> <td colspan="1">&lt; <br /> </td> </tr> <tr> <td>> <br /> </td> <td>> <br /> </td> <td>> <br /> </td> <td colspan="1">&gt; <br /> </td> </tr> <tr> <td valign="top">"<br /> </td> <td valign="top"><br /> </td> <td valign="top"><br /> </td> <td valign="top">&quot;<br /> </td> </tr> <tr> <td valign="top">'<br /> </td> <td valign="top"><br /> </td> <td valign="top"><br /> </td> <td valign="top">&apos;<br /> </td> </tr> <tr> <td valign="top">&<br /> </td> <td valign="top"><br /> </td> <td valign="top"><br /> </td> <td valign="top">&amp;<br /> </td> </tr> </tbody> </table> <br /> CDATAD中包含的都是纯字符数据Q在字符数据可以出现的Q何地斚w可以使用CDATADc?br /> CDATAD主要用于需要将整个文本解释为字W数据而不是标记的情况下。CDATAD中的内容不被XML处理器分析,所以可以在其中包含L的字W?br /> <br /> <br /> <strong>4、注?br /> <br /> </strong>注释用于Ҏ档中的内容vC个说明作用?br /> 在XML文档中,注释可以出现在文档中其它表ijizhiwai的Q何闻之,另外Q它们还可以在h当类型声明中语法QgrammarQ允许的地方出现?br /> XML的注释和HTML的注释类|都是?lt;!--开始,?->l束。位?lt;!--?->之间的数据将被XML处理器忽略?br /> 使用XML注释需要注意一下五点:<br />     1、注释不能出现在XML声明之前QXML声明必须是文档最前面的部分。下面的情况是不允许的:<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;"><!--</span><span style="color: #008000;">Author:Jason Chen</span><span style="color: #008000;">--></span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml version="1.0"</span><span style="color: #0000ff;">?></span></div> <br />     2、注释不能出现在标记中,下面的例子是非法的:<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><</span><span style="color: #800000;">author</span><span style="color: #ff0000;"><!--This document author--</span><span style="color: #0000ff;">></span><span style="color: #000000;">>Jason Chen</span><span style="color: #0000ff;"></</span><span style="color: #800000;">author</span><span style="color: #0000ff;">></span></div> <br />     3、注释可以包围和隐藏标记Q但是要注意Q在注释掉标C后,要保持文档的完整l构?br />     4、字W串"--"Q双q字W)不能出现在注释中?br /> <br /> <strong>5、处理指?/strong><br /> <br /> 处理指oQProcessing InstructionsQ允许文档中包含由应用程序来处理的指令。在XML文档中,有可能会包含一些非XML格式的数据,q些数据XML处理器无法处理,我们可以通过处理指o来通知其它应用E序来处理这些数据?br /> 处理指o的语法和XML声明cMQ以<?开始, ?>l束。一个常见的使用样式表单的处理指令如下所C:<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;"><?</span><span style="color: #ff00ff;">xml-stylesheet href="style.css" type="text/css"</span><span style="color: #0000ff;">?></span></div> <br /> 在开始标?lt;?后的W一个字W?xml-stylesheet"叫做处理指o的目标,它必L识要用到的应用程序,要注意的是对于其它的非W3C定义的处理指令不能以字符?XML"?xml"开_其余的部分是传递给应用E序的字W数据。应用程序从处理指o中取得目标和数据Q执行要求的动作?br /> <br /> 处理指o的目标可以是要用的E序的名字,或者是一个类gxml-stylesheetq样的很多程序可以识别的通用标识W。不同的应用E序支持不同的处理指令,对于不认识的处理指oQ大多数应用E序采取忽略的方式进行处理?br /> <br /> xml-stylesheet处理指oL攑֜XML声明之后Q第一个元素之前。其它的处理指o可以攑֜除了标记的内部和XML声明之前的Q何位|?br /> 要注意,虽然XML声明和处理指令的语法形式怼Q但XML声明q不是处理指令,XML处理E序对XML声明和处理指令采取的是不同的处理方式?br /> <br /> <br /> 本章学习到此为止Q下一章学习如何编写DTD?br /> </blockquote> <img src ="http://m.tkk7.com/asenyifei/aggbug/172884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asenyifei/" target="_blank">Jason.Chen</a> 2008-01-07 15:44 <a href="http://m.tkk7.com/asenyifei/articles/172884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>潜心学习XML之篇章一Q概q?/title><link>http://m.tkk7.com/asenyifei/articles/172869.html</link><dc:creator>Jason.Chen</dc:creator><author>Jason.Chen</author><pubDate>Fri, 04 Jan 2008 15:40:00 GMT</pubDate><guid>http://m.tkk7.com/asenyifei/articles/172869.html</guid><wfw:comment>http://m.tkk7.com/asenyifei/comments/172869.html</wfw:comment><comments>http://m.tkk7.com/asenyifei/articles/172869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/asenyifei/comments/commentRss/172869.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asenyifei/services/trackbacks/172869.html</trackback:ping><description><![CDATA[<blockquote>     <span style="color: #999999;">Q本pd文章是我学习的过E中Q整理出来的W记Q如有错漏,看官请一定不吝回复告知我Q让我能认识自己的不Iq改q错误。非常感谢!Q?br /> <br /> </span>     XML的全U是Extensible Markup LanguageQ意思是可扩展的标识语言Q是SGMLQ?span style="color: #999999;">Standard Generalized Markup Language</span>Q的一个子集?998q?月,W3Cl织发布了XML1.0标准Q其目的是ؓ了在Web上能以现有的文本标识语aQHTMLQ的使用提供Q接收和处理通用的SGML。XML以一U开攄Q自我描q的方式定义了数据结构,在描q数据内容的同事能突出对l构的描qͼ从而体现出数据与数据之间的关系。XML的最新版本是1.1Q于2004q??日发布。目前大多数的应用还是基于XML1.0的推荐标准?.0版本的规范在下面|址中定义:<br /> <a target="_blank" >http://www.w3.org/TR/2004/REC-xml-20040204/</a><br /> <br />     XML不是QXQHTML的扩展,两者之所以看h很像Q是因ؓ它们都是SGML发展而来的标识语aQ语法很怼Q标识的使用也很怼。HTML只是SGML的一个子应用Q它的DTDQ?span style="color: #999999;">Document Type Definition</span>Q被固定下来Q所以不能用来定义新的应用。而XML不同Q我们可以根据自q需要,随意定义我们自己的DTDQ所以,利用XMLQ可以定义出新的应用Q比如,RDFQ?span style="color: #999999;">Resource Description FrameworkQ资源描q框Ӟblog中经常看见的RSS1.0是RDF Site SummaryQRDF|站摘要,关于RSSQ我在潜心学习RSS中去认识?/span>Q?CDFQ?span style="color: #999999;">Channel Definition FormatQ通道定义格式Q微软在IE4.0中引入的一个新功能。基于CDFQ网站可以通过zd通道数据聚合到讄为活动桌面的用户桌面?/span>Q?br /> <br />     XML规范的制定者之一Tim Bray_XML的设计出发点是取SGML的优点,去除复杂的部分,使其保持dyQ可以在Web上工作?br /> <br />     XML的应用非常广泛,计算机和|络的世界里Q处处活跃着它矫健轻快的w媄Q或为配|文Ӟ或ؓ数据存储Q或为数据传输用的格式。XML已经成ؓ事实上的数据交换格式的标准,使用XMLQ意味着所有设备,比如手机QPDAQ信息家늭{,都可以轻杄dQ解析你的数据?br />     <br />     XML很重要的两个Ҏ:<br />     <span style="color: #0000ff;">一QXML文档仅仅描述数据Q它不关心数据是如何表现外观的,</span>比如字体大小Q颜Ԍ间距之类的,所以它能将数据和数据的表现方式完全的分dQ这个特性很重要QHTML׃万做不到q种完全的分,所以W3Cl织不得不推Z个XHTMLQ作为HTML向XMLq度的物?br /> <br />     <span style="color: #0000ff;">二:XMLҎ档的格式要求非常严格Q符合标准的XML文档是格式良好的XML文档QWell-Formed XML DocumentsQ?/span>q是使得XML文档能被普遍认可的一个特炏V严格的文档格式Q减M解析的复杂性。相Ҏ_HTML的文档格式就非常松散Q解析v来就比较复杂Q也造成了浏览器兼容的问题。XML文档格式的要求有下面几点Q?br />     1、所有的标签都必d闭,开始标{有对应的结束标{,I标{ֿ被关闭?br />     2、所有的标签都区分大写<br />     3、所有的标签都必d理嵌?br />     4、所有的标签的属性值必ȝ收引P""Q或单引P''Q括h<br />     5、XML文档有且只能有一个根元素<br />     6、(q有其他的嘛Q)<br /> <br /> 本章到此l束Q重Ҏ握XML与HTML的异同点QXML的两个特性?br /> 下一章学习XML的结构?br /> </blockquote> <br /> <img src ="http://m.tkk7.com/asenyifei/aggbug/172869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asenyifei/" target="_blank">Jason.Chen</a> 2008-01-04 23:40 <a href="http://m.tkk7.com/asenyifei/articles/172869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 用JavaScript判断一个日期是否正的日期http://m.tkk7.com/asenyifei/archive/2007/07/09/129108.htmlJason.ChenJason.ChenMon, 09 Jul 2007 10:12:00 GMThttp://m.tkk7.com/asenyifei/archive/2007/07/09/129108.htmlhttp://m.tkk7.com/asenyifei/comments/129108.htmlhttp://m.tkk7.com/asenyifei/archive/2007/07/09/129108.html#Feedback0http://m.tkk7.com/asenyifei/comments/commentRss/129108.htmlhttp://m.tkk7.com/asenyifei/services/trackbacks/129108.html 

var all="20070229";//日期字串
var y=all.substring(0,4);//q?/span>
var m=all.substring(4,6);//?/span>
var d=all.substring(6);//?/span>
var isLeap=((y%4==0)&&(y%100!=0))||(y%400==0);//是否闰年
if((isLeap&&m=="02"&&d>29)|| (!isLeap&&m=="02"&&d>28)) alert("错误日期: " + all);
if((m=="04"||m=="06"||m=="09"||m=="11")&&d=="31") alert("错误日期: " + all);


Jason.Chen 2007-07-09 18:12 发表评论
]]>
Judge chars in a String and the max count.http://m.tkk7.com/asenyifei/archive/2007/07/09/129101.htmlJason.ChenJason.ChenMon, 09 Jul 2007 09:47:00 GMThttp://m.tkk7.com/asenyifei/archive/2007/07/09/129101.htmlhttp://m.tkk7.com/asenyifei/comments/129101.htmlhttp://m.tkk7.com/asenyifei/archive/2007/07/09/129101.html#Feedback0http://m.tkk7.com/asenyifei/comments/commentRss/129101.htmlhttp://m.tkk7.com/asenyifei/services/trackbacks/129101.html

package org.jason.test;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;

public class StringTest {
    
public static void main(String[] args) {
        StringBuffer sb 
= new StringBuffer("a,b,c,d,e,f,a,a,d,c,c");
        String[] st 
= sb.toString().split(",");
        
        Map set 
= new HashMap();
        
for(int i = 0; i<st.length; i++{
            System.out.println(i 
+ " : " + st[i]);
            String temp 
= st[i];
            Object o 
= set.get(temp);
            System.out.println(o);
            
if(o == null{
                set.put(temp, 
new Integer(1));
            }
else {
                set.put(temp, 
new Integer(((Integer)o).intValue()+1));
            }

        }

        Iterator it 
= set.keySet().iterator();
        
while(it.hasNext()) {
            System.out.println((String)it.next()
+" ");
        }

        System.out.println();
        Integer i 
= (Integer)Collections.max(set.values());
        System.out.println(i.intValue());
    }

}



Jason.Chen 2007-07-09 17:47 发表评论
]]>
关于Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的问?/title><link>http://m.tkk7.com/asenyifei/articles/82575.html</link><dc:creator>Jason.Chen</dc:creator><author>Jason.Chen</author><pubDate>Tue, 21 Nov 2006 09:32:00 GMT</pubDate><guid>http://m.tkk7.com/asenyifei/articles/82575.html</guid><wfw:comment>http://m.tkk7.com/asenyifei/comments/82575.html</wfw:comment><comments>http://m.tkk7.com/asenyifei/articles/82575.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.tkk7.com/asenyifei/comments/commentRss/82575.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asenyifei/services/trackbacks/82575.html</trackback:ping><description><![CDATA[找不到mysql socket的问题,我最q碰C好多?br />重装pȝ以前Q我的mysqlQapacheQphp都是自己~译安装的,当时q没有碰到这些问题,<br />重装pȝ以后Q我的mysql是通过yum安装的,apache1.37和php5.2是自q译安装的Q出Cq个问题<br /><br />首先?b>mysqld</b>启动不了Q?br />我通过vim /etc/my.cnfQ修改了[mysqld]选项下面的socket的?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">socket</span><span style="color: rgb(0, 0, 0);">=/</span><span style="color: rgb(0, 0, 0);">var</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">lib</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql.sock<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 0);"></span><br /></div></span></div><span style="color: rgb(0, 0, 0);">okQmysqld可以启动?br /><br /></span>接下来,?b>mysql</b>启动不了Q同Pvim /etc/my.cnf,d了如下脚本:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">[mysql]<br />socket</span><span style="color: rgb(0, 0, 0);">=/</span><span style="color: rgb(0, 0, 0);">var</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">lib</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql.sock<br /></span></div><br />然后Q?b>mysqladmin</b>启动不了Q还是一P在[mysqladmin]下面socketD|ؓ同样的\?br />ok,可以启动?br /><br />最后,?b>php</b>q接的时候,又出现这个问题了<br />Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)<br />我首先想到的是,?etc/php.ini修改mysql.default_socket的|在这个文件中Q关于mysql.default_socket的值的说明是这LQ?br />; Default socket name for local MySQL connects.  If empty, uses the built-in MySQL defaults.<br />q个g开始是I的Q也是_如果我们不主动去修改的话Qphp会使用内徏在mysql中的默认?br />于是Q我修改了这个|讄为:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">mysql.default_socket</span><span style="color: rgb(0, 0, 0);">=/</span><span style="color: rgb(0, 0, 0);">var</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">lib</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql.sock<br /></span></div>然后我重新启动apacheQ结果无效;rebootpȝQ结果无?br />我火大了Qphp非得去q接/tmp/mysql.sockQ可是我的系l里面就是没有这个\径下的这个文Ӟ那我q你链接一个,于是我做了下面的操作Q?br />ln -s /<span style="color: rgb(0, 0, 0);">var</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">lib</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql.sock /tmp/mysql.sock<br /><br />重新打开我的php面QokQ这下能q接到数据库了?br /><br /></span>pP我把q个问题解决了,可是我还是有点迷p,Z么一定要L/tmp/mysql.sockq个文gQ是不是一开始我q它ln一个链接就可以解决Q这个mysql.sock到底是用来做什么的Q于是我׃生了看看q个文g内容的想?<br /><br />cat /var/lib/mysql/mysql.sock<br />提示我,cat: /var/lib/mysql/mysql.sock: 没有那个讑֤或地址<br /><br />less /var/lib/mysql/mysql.sock<br />/var/lib/mysql/mysql.sock is not a regular file (use -f to see it)<br />我强行查看!<br />less -f /var/lib/mysql/mysql.sock<br />/var/lib/mysql/mysql.sock: 没有那个讑֤或地址<br />~~<br />vim /var/lib/mysql/mysql.sock<br />提示权限不Q我是root用户Ӟq提C权限不I奇怪了<br />~~~~<br />ll /var/lib/mysql/mysql.sock<br />看到的属性是Q?br />srwxrwxrwx 1 mysql mysql 0 11-21 14:39 /var/lib/mysql/mysql.sock<br />q? 个属性引起了我的注意Q档案类型标志是s,q真没去了解q这LcdQ到鸟哥的私房菜L了一下,原来Q这个是资料接口档,用我们大陆说的习惯应该是套接 字文?sockets)Q这U文件一般用在网l上的资料套接,mysqld守护q程生成了这个文Ӟ其他与mysql相关的程序想使用mysqlQ估? 是通过q个文g了?br />q种Ҏ文g即是最高权限的root用户Q也是不能查看不能编辑的Q有点像档案标志是p的管道文件?br /><img src ="http://m.tkk7.com/asenyifei/aggbug/82575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asenyifei/" target="_blank">Jason.Chen</a> 2006-11-21 17:32 <a href="http://m.tkk7.com/asenyifei/articles/82575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript跨页面传变量Qurl传变?/title><link>http://m.tkk7.com/asenyifei/archive/2006/10/09/74067.html</link><dc:creator>Jason.Chen</dc:creator><author>Jason.Chen</author><pubDate>Mon, 09 Oct 2006 06:13:00 GMT</pubDate><guid>http://m.tkk7.com/asenyifei/archive/2006/10/09/74067.html</guid><wfw:comment>http://m.tkk7.com/asenyifei/comments/74067.html</wfw:comment><comments>http://m.tkk7.com/asenyifei/archive/2006/10/09/74067.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/asenyifei/comments/commentRss/74067.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asenyifei/services/trackbacks/74067.html</trackback:ping><description><![CDATA[利用document.cookie跨页面传?变量是个便的ҎQ但是我们移植的览器konqueror对cookie的支持不好,所以只好用url来传递?br />需求是q样的,要从一个页面中Qmovies_list.htmlQ,把电q文g名和电媄名称传到下一个页?playing_movies.html)厅R?br />在movies_list.html中,定义一个函敎ͼ<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);"> sendARGS(movieName,movieTitle){<br />   </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> url</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">playing_movies.html?moviename=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">movieName</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&movietitle=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">movieTitle;<br />   document.location.assign(url); <br />}<br /></span></div><br />用sendARGSQ)q个函数可以把2个变量送到playing_movies.html中。如果文件名是clip01.avi,电媄名称是mission impossible IIIQ那么传q来的url是playing_movies.html?moviename=clip01.avi&movietitle=mission%20impossible%20III<br /><br />在playing_movies.html中,需要截取这2个变量,定义了这L一个函敎ͼ<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> movieName,movieTitle;<br /></span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);"> getARGS(){<br />    urlStr</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">document.location.href;<br />    </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> pos1</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">urlStr.indexOf('</span><span style="color: rgb(0, 0, 0);">?</span><span style="color: rgb(0, 0, 0);">');<br />    </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> pos2</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">urlStr.indexOf('</span><span style="color: rgb(0, 0, 0);">&</span><span style="color: rgb(0, 0, 0);">');<br />    movieName</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">urlStr.substring(pos1</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">11</span><span style="color: rgb(0, 0, 0);">,pos2);<br />    movieTilte</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">urlStr.substring(pos2</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">11</span><span style="color: rgb(0, 0, 0);">).replace(</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">\</span><span style="color: rgb(0, 0, 0);">%</span><span style="color: rgb(0, 0, 0);">20</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">g,'  ');<br />}</span></div><br /><br /><img src ="http://m.tkk7.com/asenyifei/aggbug/74067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asenyifei/" target="_blank">Jason.Chen</a> 2006-10-09 14:13 <a href="http://m.tkk7.com/asenyifei/archive/2006/10/09/74067.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用wget下蝲东西http://m.tkk7.com/asenyifei/archive/2006/09/27/72372.htmlJason.ChenJason.ChenWed, 27 Sep 2006 11:02:00 GMThttp://m.tkk7.com/asenyifei/archive/2006/09/27/72372.htmlhttp://m.tkk7.com/asenyifei/comments/72372.htmlhttp://m.tkk7.com/asenyifei/archive/2006/09/27/72372.html#Feedback0http://m.tkk7.com/asenyifei/comments/commentRss/72372.htmlhttp://m.tkk7.com/asenyifei/services/trackbacks/72372.html因ؓ是国外的下蝲地址Q用firefox下的话有时候半天都不动Q我q是喜欢自己定制好的下蝲方式
d的主www.aptana.com扑ֈfor linux的url
http://www.web20.com/downloads/current/Linux/VM/Aptana_IDE_Setup.bin

然后到另一个工作区开个新的终端,
wget -c -t 0 -T 5 http://www.web20.com/downloads/current/Linux/VM/Aptana_IDE_Setup.bin
让wget慢慢get?br />


Jason.Chen 2006-09-27 19:02 发表评论
]]>
apache~译错误Cannot load /usr/local/apache/libexec/mod_rewrite.so into server: /usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetchhttp://m.tkk7.com/asenyifei/archive/2006/09/27/72363.htmlJason.ChenJason.ChenWed, 27 Sep 2006 10:07:00 GMThttp://m.tkk7.com/asenyifei/archive/2006/09/27/72363.htmlhttp://m.tkk7.com/asenyifei/comments/72363.htmlhttp://m.tkk7.com/asenyifei/archive/2006/09/27/72363.html#Feedback0http://m.tkk7.com/asenyifei/comments/commentRss/72363.htmlhttp://m.tkk7.com/asenyifei/services/trackbacks/72363.html
Cannot load /usr/local/apache/libexec/mod_rewrite.so into server: /usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetch

google之,得到解决办法Q?br />到目录apache_1.3.37/src/modules/standard

 gcc -shared -o mod_rewrite.so mod_rewrite.lo
Q*没报错*Q?br />gcc -shared -o mod_rewrite.so mod_rewrite.lo -lgdbm
Q*q下出错了,下面是错误信息*Q?br />/usr/bin/ldQ找不到 -lgdbm
collect2: ld q回 1

 找不刎ͼgdbmq个库,又是因ؓ我装pȝ时没选上

到我的fedora光盘L?dbm*的rpm包,扑ֈ2?br />
gdbm-1.8.0-26.2.i386.rpm  gdbm-devel-1.8.0-26.2.i386.rpm

rpm -ivh gdbm-devel-1.8.0-26.2.i386.rpm
Q*rpm成功Q/
重新执行
gcc -shared -o mod_rewrite.so mod_rewrite.lo -lgdbm
Q*没报错,gcc成功了*Q?br />
okQ将新编译好的mod_rewrite.so库文件cp?usr/local/apache/libexec/
执行apachectl start
q回成功启动Qthanks all


Jason.Chen 2006-09-27 18:07 发表评论
]]>
վ֩ģ壺 ޸Ƶһ| ѹۿŮվ| Ļպ| ѹۿɫƵվ(ɫ)| ޾Ʒٸ30p| 2016| Ƶַ| ɫƷ| ҹƵ| ˾þۺӰԺ| www.xxxx.comձ| ձŷҹƬŮԱ | ĻѵӰվ| ҹҹAһ| ߲91 | ޹ղ뾫Ʒ| Ļ߹ۿվַ | ˳ɫ77777߹ۿ| ƶ߹ۿ| ƷС˵ר| ޾Ʒ| һëƬ߹ۿ| ޹ƷۺϾþ20| պaëƬѹۿ| һëƬ߲Ƶѹۿ | ˳޵һվ߲| ůůѸձһ| ɫƵۿһ| ëƬŮ-ٶ| avר߹ۿ | ѴƬavֻƬ| Ʒһ| ˾ƷƵ | ҹwwwʪô| ߾ѹۿ| ɫվ߿| AVһ | ҹ1000Ƶ| ɫһۺ| ۺϽ޺ݺ| aƵ߹ۿ|