BloveSaga

          在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

          #

          ?? 正則表達式

          ?.正則表達式及其作用
          ?.RegExp對象
          ?.String對象中與正則表達式有關的方法
          ?.正則表達式的語法參考
          ?.實用程序舉例

          ?什么是正則表達式?
          ?.文件路徑通配符
          ?"?"通配符匹配文件名中的單個字符,而"'"通配符匹配零個或多個字符。data?.dat就是一中文
          ?本模式,它能匹配data1.dat,data2.dat,datax.dat,dataN.dat等文件名。data*.dat是另一種文
          ?本模式,它匹配data.dat,data1.dat,data2.dat,data12.dat,datax.dat等文件名。

          ?

          ?.正則表達式
          ?是由英文詞語regular expression翻譯過來的,英文比中文更能實現(xiàn)其含義,就是符合某種規(guī)則
          ?的表達式。可以將正則表達式理解為一種對文件進行模糊匹配的語言,它用一些特殊的符號(稱
          ?為元字符)來代表某種特征(例如,全都是數(shù)字)的一組字符以及指定匹配的次數(shù),含有元字符
          ?的文本不再表示某一具體的文本內容,而是形成了一種文本模式,它可以匹配符合這種模式的所
          ?有文本串。
          ?
          ?元字符與子匹配
          ?.元字符
          ?如果一個圖書的編號格式是:要么是5個數(shù)字字符,例如,10101;要么是5個數(shù)字后加上一個連字號
          ?(-),再加上4個數(shù)字組成的10個字符,例如,11111-1234。那么,要在一個大的文本串中查找這
          ?兩種格式的圖書編號時,就可以用\d{5}(-\d{4})?做為匹配模式。
          ?如果要讓abc?中的bc同時受到?的作用,必須使用圓括號將他們括起來,使它們成為一個緊密結合
          ?的組合項,這樣后面的?就表示圓括號中的內容可有可無,例如,a(bc)?能匹配a和abc。

          ?.字匹配
          ?圓口號所括起來的部分為一個子匹配(也叫子表達式),除了可以得到整個正則表達式的匹配
          ?結果外,還可以單獨得到每個子表達式部分所匹配的結果。
          ?多個子表達式所匹配的原始內容按照它們正則表達式模式中從左到右出現(xiàn)的順序存儲在緩沖區(qū)中
          ?,這種過程稱為捕獲。圓括號中的子匹配所捕獲的內容可在整個表達式中位于這個括號之后的
          ?地方被反引用,第一括號(即第一個子匹配)捕獲的內容用\1表示,第二個圓括號(即第二個子
          ?匹配)捕獲的內容\2表示,依次類推。例如,要匹配2個相同的連續(xù)字符的正則表達式為(\d)\1.
          ?要匹配連續(xù)5個相同的數(shù)字字符的正則表達式為(\d)\1{4}.要匹配1221.3553.6776等數(shù)字。可以
          ?使用正則表達式為(\d)(\d)\2\1。

          ? 正則表達式的作用
          ?.測試字符串是否匹配某個模式,從而實現(xiàn)數(shù)據(jù)格式的有效性驗證。
          ?.將一段文本中滿足某一正則表達式模式的文本內容替換為別的內容或刪除(即替換為空字符串)
          ? 例如,將一大段文本中的所有的19xx年的內容替換為20xx年,其中xx部分是兩個任意的數(shù)字,
          ? 不會被替換,但不能簡單地用20替換19,否則1919就被替換為2020。
          ?.在一段文本中搜索具有某一類型特征的文本內容。精確搜索和正則表達式的模式搜索最大的區(qū)
          ? 別就是:精確搜索是搜索一個具體的文本,而模式搜索是模式搜索具有某一類型特征的文本。

          ?
          ? RegExp對象
          ?JavaScript中提供了一個名為RegExp的對象來完成有關正則表達式的操作和功能,每一條正則
          ?表達式模式對應一個RegExp對象實例。

          ?創(chuàng)建RegExp對象實例
          ?(1)使用RegExp對象的顯示構造函數(shù),語法為:new RegExp("pattern"[,"flags"]);
          ?(2)使用RegExp對象的隱式構造函數(shù),采用純粹的文本格式:/pattern/[flags]
          ?
          ?flags標志字符:
          ???? -g 用做全局標志
          ???? -i 用做忽略大小寫標志
          ???? -m 用做多行標志
          ???? 如果沒有設置這個標志,那么元字符"^"只與整個被搜索字符串的開始位置相匹配,而元字符
          ???? "$"只與整個被搜索字符串的結束位置相匹配。如果設置了這個標志,那么"^"還可以與被
          ???? 搜索字符串中的"\n"或"\r"之后的位置相匹配。
          ? 注意:
          ? 當使用構造函數(shù)的方式創(chuàng)建RegExp實例對象的時候,應將原始的正則表達式模式文本中的每個
          ? "\"都使用"\\"來替換,例如,下面的語句等價:
          ?? var re=new RegExp("\\d{5}");
          ?? var re=^d{5}/

          ?RegExp對象-屬性
          ?.所有RegExp對象實例共享靜態(tài)屬性
          ?.單個對象實例的屬性
          ?靜態(tài)屬性:
          ?.index
          ?.input
          ?.lastIndex
          ?.lastMatch
          ?.lastParen
          ?.lastContext
          ?.leftContext
          ?.rightContext
          ?.$1...$9

          ?對象實例屬性:
          ?.global
          ?.ignoreCase
          ?.multiline
          ?.source

          ?RegExp對象-方法
          ?.test方法
          ?語法格式為:test(str)。檢查一個字符串中是否存在創(chuàng)建RegExp對象實例所指定的正則表達式模式
          ?.exec方法
          ?語法格式為:exec(str)。使用創(chuàng)建RegExp對象實例時所指定的正則表達式模式對一個字符串執(zhí)行
          ?搜索,并返回一個包含搜索結果的數(shù)組。
          ?.compile方法
          ?語法格式為:compile("pattern"[,"flags"])。更換RegExp對象實例所使用的正則表達式模式,并
          ?將新的正則表達式模式編譯為內部格式,從而使以后的匹配過程執(zhí)行更快。

          ?RegExp對象-綜合舉例
          ?code:
          <script language="javascript">
          ??? var strSrc="xxa1b01c001yya2b02c002zz";
          ??? var re="/a(\d)b(\d{2})c(\d{3})/gi";
          ??? var arr,count=0;
          ??? while((arr = re.exec(strSrc))!=null)
          ??? {
          ?????? displayResult();
          ??? }
          ??? function displayResult()
          ??? {
          ????? document.write(<p>這是用正則表達式/"+re.source+"/gi對字符串<br>\""
          ???????????????? +RegExp.input+ "\"進行第" +(++count)+ "次搜索的結果:<br>");
          ????? document.write("RegExp.index為"+RegExp.index+"<br>");
          ????? document.write("RegExp.lastindex為"+RegExp.lastindex+"<br>");
          ????? document.write("RegExp.lastMatch為"+RegExp.lastMatch+"<br>");
          ????? document.write("RegExp.lastParen為"+RegExp.lastParen+"<br>");
          ????? document.write("RegExp.lastContext為"+RegExp.lastContext+"<br>");
          ????? document.write("RegExp.$1為"+RegExp.$1+"<br>");
          ????? document.write("RegExp.$1為"+RegExp.$2+"<br>");
          ????? document.write("RegExp.$1為"+RegExp.$3+"<br>");
          ????? document.write("RegExp.$1為"+RegExp.$4+"<br>");
          ????? document.write("arr.index為"+arr.index+"<br>");
          ????? document.write("arr.input為"+arr.input+"<br>");
          ????? document.write("arr.lastindex為"+arr.lastindex+"<br>");
          ????? document.write("返回的元素個數(shù)為"+arr.length+"<br>");
          ????? document.write("返回數(shù)組的類容為[");
          ????? for(var i=0;i<arr.length;i++)
          ????? {
          ???????? if(arr.length-1)
          ??????????? document.write("\""+arr[i]+"\",");
          ???????? else
          ??????????? document.write("\""+arr[i]+"\"]</p>");
          ????? }
          ?????
          ??? }
          ?</script>
          ?


          ?String對象中與正則表達式有關的方法
          ?.match方法
          ?語法格式為:match(Exp)。與RegExp對象的exec方法類似,它使用正則表達式模式對字符串執(zhí)行
          ?搜索,并返回一個包含搜索結果的數(shù)組。
          ?<script language="javascript">
          ?? var strSrc="xxa1b01c001yya2b02c002zz";
          ?? var re=/a(\d)b(\d(2))c(\d{3})/gi;
          ?? var arr;
          ?? arr=strSrc.match(re);
          ?? for(var i=0;i<arr.length;i++)
          ?? {
          ????? if(i<arr.length-1)
          ???????? document.write("[\""+arr[i]+"\",");
          ????? else
          ???????? document.write("\""+arr[i]+"\"]");
          ?? }
          ?</script>
          ?
          ?.search方法
          ?語法格式為:serach(rgExp)。返回使用正則表達式搜索時,第一個匹配的字符串在整個被搜索
          ?的字符串中的位置。
          ?.replace方法
          ?語法格式為: replace(rgExp,replaceText)。使用正則表達式模式對字符串執(zhí)行搜索,并對搜索
          ?到的內容用指定的字符串替換,返回值包含替換后的內容的字符串對象。

          posted @ 2006-06-15 18:06 藍色Saga 閱讀(220) | 評論 (0)編輯 收藏

          給大家分享一個視頻教程-軟件工程,CSF格式的,或許大家有和我一樣用得著的,如果你需要就抓緊時間下載吧,白天相對來說速度快點,晚上就比較慢了,也不一定.希望可以給你提供點幫助.現(xiàn)把目錄列舉如下:
          = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
          課程名稱:軟件工程
          總學時:32講
          主講老師:劉亞軍
          要下載抓緊時間,下載地址經常變動
          授課目錄:
          第1講 軟件過程背景、目的
          第2講 軟件質量評價、軟件開發(fā)方法和開發(fā)工具 可行性研究與計劃
          第3講 成本效益分析
          第4講 需求分析基本理論、結構化分析概述、數(shù)據(jù)流圖
          第5講 數(shù)據(jù)流圖基本充分、由外向里畫數(shù)據(jù)流圖
          第6講 分層數(shù)據(jù)流圖、由頂向下畫數(shù)據(jù)流圖、實例
          第7講 數(shù)據(jù)流圖的改進、數(shù)據(jù)詞典
          第8講 小說明、分析的步驟,SA方法小結、快速原型法
          第9講 基本概念、概要設計

          第10講 塊間聯(lián)系、塊內聯(lián)系
          第11講 影響范圍、控制范圍、變換分析
          第12講 變換分析、事務分析
          第13講 詳細設計、JACSON方法
          第14講 編程方法、軟件測試基本概念
          第15講 白盒測試法
          第16講 白盒測試法舉例
          第17講? 黑盒測試法
          第18講? 黑盒測試法舉例
          第19講 維護方法
          第20講? 面向對象開發(fā)方法(1)
          第21講? 面向對象開發(fā)方法(2)
          第22講? 面向對象開發(fā)方法(3)
          第23講? 面向對象開發(fā)方法(4)
          第24講? 軟件工具和環(huán)境,案例分析(1)
          第25講? 案例分析(2)
          第26講? 案例分析(3)
          第27講? 案例分析(4)
          第28講? 課堂練習 模擬試卷一美
          第29講? 模擬試卷一
          第30講? 模擬試卷二
          第31講? 模擬試卷二
          第32講? 模擬試卷二 開發(fā)方法比較

          下載地址:
          http://202.119.2.197/netcourses/評比課件/軟件工程/軟件工程01.csf
          ???????? ....................
          http://202.119.2.197/netcourses/評比課件/軟件工程/軟件工程32.csf

          If you need them! Be quick!

          posted @ 2006-06-14 16:46 藍色Saga 閱讀(1223) | 評論 (3)編輯 收藏

          XML文檔結構包含下面三個部分:
          * 聲明部分,聲明該文檔是一個XML文檔.
          * 定義部分,定義XML數(shù)據(jù)的類型以及所使用的DTD(可選).
          * 內容部分,用XML標簽和注釋標注過的文檔類容.

          聲明

          XML文檔以XML聲明開頭,聲明本文檔是一個XML文檔.一般這樣書寫:
          <? xml version encoding standalone?>
          定義符<?和?>表示這是一條給XML解析器的處理指令.雖然聲明這條語句是可有可無的,但考慮到以后的兼容,建議讀者還是寫上為好.隨著語言的進一步發(fā)展,以后的瀏覽器如果知道文檔所用的XML版本的話,將是有好處的.這天語句必須全部用小寫.
          在上面的聲明中version表示的XML的標準版本號.encoding表示的是文檔所用的編碼.standalone用來指定在XML文檔被解析之前,是否使用外部或內部DTD,它的值只能是yes或no.如果為no,表示使用外部DTD;如果為yes表示使用內部DTD;如果不使用DTD,則不使用這個屬性.
          看下面的實際例子:
          <?xml version="1.0" encoding="UTF-8" standalone="yes">
          在XML聲明之后,緊接著是類型定義部分,定義XML文檔中數(shù)據(jù)的類型.

          文檔定義類型(DTD)

          DTD是用來定義XML文檔內容的結構的,以便按統(tǒng)一的格式存儲信息.DTD規(guī)定了XML文檔中可以出現(xiàn)哪些元素;這些元素是必須的還是可選的;這些元素有什么屬性;以及它們之間的相互位置關系,等等.XML允許用戶為自己的應用程序定義專用的DTD,這樣用戶就可以完全檢查文檔結構和內容的過程了.這一檢驗過程稱為有效化,嚴格依從一個DTD的XML文檔被稱作有效文檔.
          創(chuàng)建DTD的過程與在數(shù)據(jù)庫里創(chuàng)建數(shù)據(jù)表是類似的.在DTD中,用戶定義用來表示數(shù)據(jù)的元素,然后規(guī)定數(shù)據(jù)的結構,并規(guī)定這個元素是可選的還是必須的,這就好比創(chuàng)建數(shù)據(jù)表的列;然后你把數(shù)據(jù)存入XML文檔,就好比添加數(shù)據(jù)表的記錄.
          XML文檔使用的元素可以在內部DTD中定義,也可以在外部DTD中定義.

          內部DTD
          DTD可以作為文檔的一部分直接放到文檔里面,這樣的DTD只能用于包含它的這個文檔,別的文檔就不能使用了.創(chuàng)建內部DTD的語法如下:
          <!DOCTYPE rootelement
          [element and attribute declarations]
          >
          <!DOCTYPE標識文檔類型定義的開始,屬性rootelement指明跟元素名字.

          為部DTD
          外部DTD是一個單獨的文件,存放XML文檔中可以使用的全部元素及屬性的定義.你可以在多個文檔中同時使用同一個DTD,以便保持多個文檔之間數(shù)據(jù)結構的一致性。
          在XML文檔中引用外部DTD的語法如下:
          <!DOCTYPE rootelement [PUBLIC|SYSTEM] "name-of-file">
          其中,DOCTYPE標識這是文檔類型定義部分;rootelement代表根元素;PUBLIC表示這個DTD是存放在公用服務器上的;SYSTEM表示這個DTD是存放在本地計算機系統(tǒng)上的;Name-of-file是被引用的DTD文件的名稱.

          DTD字符
          下表是DTD中使用的部分專用字符及其含義.
          DTD字符含義舉例描述
          ,指定順序中的"與"Firstname ,LastnameFirstname與Lastname,以此順序
          |"或"Firstname | LastnameFirstname或Lastname
          ?"可選項',只能出現(xiàn)一次Lastname?可以不出現(xiàn)Lastname,但如果使用,則只能出現(xiàn)一次
          ()用于組成元素(Firstname | Lastname),Address一個Firstname或Lastname元素必須出現(xiàn)在Address元素之前
          *該元素可以不出現(xiàn)也可以出現(xiàn)多次(Firstname | Lastname)*可以以任何順序出現(xiàn)任意個數(shù)Firstname或Lastname元素
          ? 該元素至少出現(xiàn)一次也可以出現(xiàn)多次(Firstname +)可以出現(xiàn)多個Firstname元素

          在DTD中定義元素

          元素是XML文件的基本組成部分.每個元素都是用標簽標識的一小段數(shù)據(jù).標簽包括了元素的名字和屬性.
          XML允許用于創(chuàng)建自己的元素集.因此,元素名應該取得容易記憶,并且最好有一定的含義,讓人一看到它,便對里面的數(shù)據(jù)有個大概的了解.XML是大小寫敏感的,所以要么你全用大寫,要么就一律用小寫.
          定義元素的語法如下:
          <!ELEMENT elementname content>
          在DTD中,你通過創(chuàng)建一個元素內容模型(element content model)來精確的規(guī)定一個元素中是否喊有其它元素,可以出現(xiàn)多少次以及按什么順序出現(xiàn).如果元素中只包含別的元素,而不包含字符數(shù)據(jù),我們就說它只含有元素內容.

          XML中命名元素的規(guī)則
          * 元素名至少要含有一個字母(a-z或A-Z中的一個)
          * 元素名可以用下劃線(_)或冒號( : )開頭.
          * 第一個字符后面可以是一個或多個字母,數(shù)字,連字符,下劃線或句號,但不能是空格和定位符(tab),至于標點符號只能使用連字符(-)和句號(.).

          對于完整的命名規(guī)則,請參看http://www.w3.org/XML/上的在線XML介紹

          元素類型
          元素有空元素,自由元素和容器元素三種(如下表:)
          元素類型語法 
          空元素(Empty)<!ELEMENT empty.element EMPTY><!ELEMENT empty.element EMPTY>
          自由元素(Unrestricted)<!ELEMENT any.element ANY><!ELEMENT any.element ANY>
          容器元素(Container)<!ELEMENT TITLE(#PCDATA)><!ELEMENT TITLE(#PCDATA)>
          PCDATA 表示 parsable character data,既可解析的字符數(shù)據(jù).為了避免將這一關鍵字與普通的元素名混淆起來,在此關鍵字前加前綴字符#.

          分析下面的標簽結構:
          <student>
          <firstname> Blove </firstname>
          <lastname> Saga </lastname>
          <rollno> 49 </rollno>
          <score> 70 </score>
          </student>
          要使上面的文檔生效,必須創(chuàng)建一個DTD,里面包含student,firstname,lastname,rollno,score等五個元素的定義.另外,還要規(guī)定這五個元素是必須的或可選的;以規(guī)定順序或任意排序;以及它們出現(xiàn)的次數(shù).用戶為這些規(guī)定編寫元素定義,每個元素的定義可能不同.
          譬如,如果firstname和lastname都是必需的元素,并且firstname要在lastname后面,那么DTD可以這樣編寫:
          <!ELEMENT student ?(firstname,lastname)><!--元素內容-->
          <!ELEMENT firstname (#PCDATA)><!--元素內容-->
          <!ELEMENT?lastname? (#CDATA)><!--元素內容-->
          注意:
          數(shù)據(jù)類型#CDATA表示元素包含字符型數(shù)據(jù),解析器不解析這些數(shù)據(jù),其中的標簽是不作為標記的.
          數(shù)據(jù)類型#PCDATA表示元素包含字的數(shù)據(jù)將由解析器解析,其中的標簽是被作為標記處理.
          posted @ 2006-06-13 16:42 藍色Saga 閱讀(508) | 評論 (0)編輯 收藏

          ? XML 文檔是一個含XML標記的ASCII文本文件,它的擴展名是.xml, 如: employee.xml在開始編寫XML文檔之前,你應該了解組成XML文檔的各個部分.一個XML文檔的主要成分包括:

          ?* 元素
          ?*?內容
          ?* 屬性
          ?* 注釋

          ?元素
          ?元素是XML文件的基本構造塊,作為主要的標注組件,用來描述文件的內容.每一個元素用一個標簽來表示一段文本信息.大部分標簽是成對出現(xiàn)的,開始標簽在數(shù)據(jù)的開始處,結束標簽放在數(shù)據(jù)的末尾.開始標簽和結束標簽之間嵌有信心的元素稱為容器元素.例如:
          ??? <Title> My Title </Title>
          我們知道,上面語句中的Title是HTML里的元素,用來顯示瀏覽器窗口的標題.在XML里,你可以創(chuàng)建自己的元素,如:
          ?? <empname> John Rambo </empname>
          在上面的語句中,empname是由開始標記(<>)和結素標記(</>)定義的元素,嵌在這兩個標簽中的信息就是這個元素的內容.利用元素嵌套,你可以構建一個分層的結構.
          也有一些標簽不是成對出現(xiàn)的,被稱作空元素.空元素不能包含的元素或數(shù)據(jù),因為它沒有開始和結束標簽.最簡單的空元素例子是用<BR>標簽表示的斷行元素.
          在一個XML文件中,可以有一個或多個元素,但只能有一個根元素,根元素下面允許有多個子元素.

          內容
          在XML中,由元素表示的信息,稱為內容.請看下面的例子:
          ? <TITLE> LION KING </TITLE>
          上面這行語句中,LION KING就是TITLE元素所表示的內容.

          屬性
          屬性提供元素的補充信息.每個屬性有一個屬性名和屬性值,屬性值可以是數(shù)字,單詞,或URL.

          在HTML中,我們經常使用字體元素的顏色屬性,如:
          <Font color="red">Displayed in red</Font>
          其中,color是屬性名,其屬性值是red.
          在XML中,屬性值一律要加上引號.例如:
          <empname doj="2006">John Rambo</empname>
          這里,"2006"是doj屬性(data of joining)的屬性值,用來描述元素empname.

          注釋
          注釋是用來給XML文檔加上注釋的,瀏覽器和XML處理器都忽略注釋,不加處理.使用注釋的好處是能使所有使用XML文檔的人都對文檔中各種元素的用法一目了然.

          要在XML文件中輸入注釋,可以依次輸入一個小于號,一個感嘆號和兩個橫杠,再輸入注釋的文本內容,并確保文本中沒有兩個橫杠.這一點W3C規(guī)定的,以保持XML與SGML的兼容.最后輸入兩個橫杠和一個大于號來結束注釋.例如:
          <!-- Writing comments in XML Documents-->
          這就是注釋.


          結構良好的XML文檔
          一個結構良好的XML文檔應該遵守以下五個基本規(guī)則:

          * 標簽不能隱含,必須顯式出現(xiàn).每一個起始標簽必須有對應的結束標簽;每一個結束標簽也必須有對應的起始標簽,對比一下HTML和XML的不同:

          在HTML中,可以用下面的這段代碼創(chuàng)建一個編號列表:
          <OL>
          <LI> Number list item one
          <LI> Number list item two
          <LI> Number list item three
          </OL>
          在上訴代碼中,用<OL>和</OL>來表示這是一個順序列表,用<LI>表示當前列表項的開始,而列表項的結束,則是靠后一列表項的開始來暗示的.如果這段代碼出現(xiàn)在XML文檔中,瀏覽器是不會正確解析這個頁面的,
          因為它并不是一個結構良好的文檔.
          XML文檔中的標簽必須顯式出現(xiàn),不能隱含.如果用XML實現(xiàn)上面的例子,必須這樣書寫:
          <OL>
          <LI> Number list item one</LI>
          <LI> Number list item two</LI>
          <LI> Number list item three</LI>
          </OL>
          從上面這個例子中,你能看到,第一個列表必須包含在開始標簽和結束標簽之間,以滿足結構良好的XML文檔的第一個規(guī)則.

          * 空標簽的結束字符'>'前必須使用'/'字符.
          所謂空標簽,是指標簽的所有信息都放在它的分界符里,沒有任何屬于它的文本信息.比如象HTML中的<BR>和<IMG>,都不需要結束標簽,因為標簽里已經包含了所有的信息.

          HTML中的標簽全部是預定義的,瀏覽器能夠直接識別.但是必須記住,XML中沒有任何預定義的標簽,用戶為自己的頁面定義自己的語言.正因為這樣,XML并不能知道<BR>,<IMG>是空標簽,你必須在標簽的結束處加上斜杠(/),來指明他們是空標簽.就像這樣:
          <BR/>
          <IMG SRC="image.gif"/>

          * 所有的屬性值必須用雙引號括起來.
          在HTML當中,下面的語法是正確的:
          <TD WIDTH="25%">
          <TD WIDTH=25%>
          然而在XML當中,由于屬性值必須用引號括起來,所以只有前面一句和</TD>配合起來才是合法的.

          * 標簽不能交疊使用
          比如說,下面這行語句就交疊起來了:
          <CITY>Chicago<STATE>Michigan</CITY></STATE>
          在XML中,必須從里到外地關閉標簽,正確的順序是:
          <CITY>Chicago<STATE>Michigan</STATE></CITY>

          * 標簽大小寫敏感,每次都必須嚴格匹配
          在XML文檔中,必須區(qū)分大小寫,如果你寫了如下的語句,將導致一個致命的錯誤(fatal error):
          <P> Able was I, ere I saw Elba</p>
          標簽<P>不能用來關閉標簽</p>,因為兩者的大小寫是不同的.所有的標簽必須大小寫嚴格匹配.

          一個結構良好的XML文檔,就是一個嚴格遵循XML標簽規(guī)則,但沒有文檔類型定義(DTD, Document Type Definition)的文檔.

          posted @ 2006-06-13 13:08 藍色Saga 閱讀(401) | 評論 (0)編輯 收藏

          理解XML
          ?
          ??? XML表示可擴展標記語言(eXtensible Markup Language).其中,"可擴展"這個詞意味著開發(fā)者能夠自由擴展在描述文件方面的能力,可以為自己的應用程序定義有實際意義的標簽.XML是基于文本的,允許開發(fā)者在各種應用程序之間傳遞和交換結構化數(shù)據(jù),同時大大便利了不同服務器之間的數(shù)據(jù)傳輸.用XML表注的數(shù)據(jù)能夠被所有的設備識別,從帶主機的大型機和微型機,到掌上電腦和蜂窩電話.
          ??? 與諸如HTML,DHTML,CSS等其他網頁技術相比,XML更注重數(shù)據(jù)的結構,而不是數(shù)據(jù)的表現(xiàn)形式.讓我們看看下面的這段代碼:
          ?<B>XML Bible</B>
          ?<P>
          Elliotte Rusty Harold <BR>
          IDG Books Worldwide <BR>
          $39.99
          ??? 稍微看一下,你可能已經知道了,它將的是一本關于書的基本信息:作者,出版社,價格.但是,這里用作標記的元素,比如<B>,<P>等,并沒有揭示出這是一本有關書的信息,它只是描述了這幾行信息是如何顯示的.比如,在第一行中用了<B>,就表示瀏覽器處理的時候,要以粗體字顯示這行文本.
          ??? 同樣對這些信息,我們用XML標注如下:
          <BOOK>
          <NAME>XML Bible</NAME>
          <AUTHOR>Elliotte Rusty Harold</AUTHOR>
          <PUBLISHER>IDG Books Worldwide</PUBLISHER>
          <PRICE>$39.99</PRICE>
          </BOOK>
          ??? 上面的小例子揭示出,通過定義一些有含義的標簽,XML擴展了用戶描述文件的能力.你可以根據(jù)應用程序的需要,定義任意多個標簽.在上面的代碼段中,沒有任何關于如何顯示信息的描述.XML將數(shù)據(jù)的結果與顯示分離開來,這似乎不太合理,其實很有益處的.

          使用XML的優(yōu)越性

          ?
          ??? XML不僅對數(shù)據(jù)從服務器到客戶端的傳輸大有好處,對于應用程序之間的數(shù)據(jù)傳輸,也是十分理想的.我們將它的優(yōu)越性列舉如下:
          * 可使用特定領域的詞匯
          *? 數(shù)據(jù)交換
          *? 智能化查詢
          *? 讓用戶選擇顯示的數(shù)據(jù)
          *? 局部更新

          可使用特定領域的詞匯
          ??? XML是沒有預定義標簽的,你必須自己定義標簽,用來標注你的數(shù)據(jù).也就是說,你可以用XML創(chuàng)建自己的表注語言(稱為XML詞匯表).XML允許每個特定的行業(yè)根據(jù)需要定義自己的標簽集合,這樣瀏覽器就不必處理成千上萬的標簽集了.利用XML,已經創(chuàng)建了若干新的標記語言,比如W3C特別推薦的MathML,一種用于顯示數(shù)學公式和科學數(shù)據(jù)的專用標記語言,就是基于XML的.

          數(shù)據(jù)交換
          ??? 數(shù)據(jù)交換在進行電子商務的交易時是極為重要.數(shù)據(jù)交換的關鍵在于企業(yè)之間或企業(yè)內部部門之間的標準數(shù)據(jù)接口,使用存儲格式不同的數(shù)據(jù)能夠進行交換.XML為以文本格式式存儲的數(shù)據(jù)提供了對于結構的定義和管理,可以作為數(shù)據(jù)交換的標準格式或協(xié)議,是數(shù)據(jù)交換雙方的系統(tǒng)差異變得無關緊要,并且產生清晰易讀的文件.XML避免了同類產品的一些常見弊病,如擴展性差,缺乏國際化和本地化的支持,平臺相關等.作為一種非常健壯的數(shù)據(jù)交換格式,XML將繼續(xù)發(fā)展,不斷完善.

          智能化查詢
          ??? 由于XML的出現(xiàn),只能搜索引擎將成為現(xiàn)實,可將XML文檔中的數(shù)據(jù)進行智能化搜索,得到更精確的查詢結果.為了更好的理解XML實現(xiàn)內容定義的意義,我們來比較一下下面的兩個例子:
          例1: The best pricture award in 1998 went to the film <I>Titanic</I>.
          例2: The best pricture award in 1998 went to the film? <FILM>Titanic<FILM>.
          在第一例子中,搜索引擎并不能確定所涉及的一艘輪船,一場表演,一部電影,抑或是一個形容詞.這樣的搜索精度比較低.而在第二個例子中,你能知道"Titanic"是一部電影的名字.如果現(xiàn)在搜索引擎要搜索的是電影 "Titanic",那么在這個文檔中就能找到一個精確的匹配項.

          ?讓用戶選擇顯示的數(shù)據(jù)
          ????? XML支持用戶端的數(shù)據(jù)處理.用戶可以選擇一個,若干或全部數(shù)據(jù)記錄,也可以按照不同的屬性進行排序,或者切換到圖形化查看方式,而且不需要服務器針對每一次操作發(fā)送數(shù)據(jù).相同的數(shù)據(jù)可以用不同的方式來顯示,也可以僅僅顯示數(shù)據(jù)的一個子集,這些都取決于用戶與這些數(shù)據(jù)的相對關系.比如,會計部門是可以訪問財務信息的,而購買東西的顧客卻不能反問這部分信息.

          ?局部更新
          ????? 當需要更新XML文檔中的數(shù)據(jù)時,并不需要更新整個頁面,而只要重新下載那些變化了的數(shù)據(jù),這顯然加快了更新的速度.例如:股票交易中的數(shù)據(jù)是動態(tài)的,如果每次都更新整個頁面的話,都需要很多時間.而使用XML,將只改變變化了的數(shù)據(jù).

          XML的設計目標
          ?????
          XML是針對大規(guī)模的電子出版物的挑戰(zhàn)來設計的,同時在Web數(shù)據(jù)的交換中也充當著越來越重要的角色.
          根據(jù)W3C的有關文件,XML將在如下幾個方面發(fā)揮重要作用:
          * 實現(xiàn)國際化,獨立于媒體的電子出版.
          * 允許個產業(yè)部門制訂與平臺無關的數(shù)據(jù)交換協(xié)議,尤其針對電子商務數(shù)據(jù)交換的協(xié)議.
          * 使用允許自動處理的格式,將信息傳遞給用戶代理商
          * 讓人們用低價軟件就可以實現(xiàn)數(shù)據(jù)處理
          * 允許人們按照自己的方式顯示信息
          * 提供一種有關信息的數(shù)據(jù)(寫作 metadata),以幫助人們尋找和發(fā)現(xiàn)信息,實現(xiàn)信息的生產者和消費者之間的雙向尋找.

          ? 任何形式電子商務的成功,都有賴于一個公共詞匯表的廣泛使用.部分XML詞匯表列舉如下:

          ? 頻道定義格式(CDF, Channel Definition Format)-一種基于XML的,用于創(chuàng)建web頻道的數(shù)據(jù)格式.所謂web頻道,是一種實現(xiàn)web服務器到客戶端的數(shù)據(jù)自動發(fā)送的技術.
          ?
          ? 開放軟件描述(OSD, Open Software Description)-用于網上自動安裝軟件,而不需要任何人工干預.

          ? 開放式金融交易(OFX, Open financial Exchange)-被個人金融應用程序用來作為個人和金融組織之間進行網上交流的工具.

          ? Meta內容框架(MCF, Meta Content Framework)-用來定義關于信息的數(shù)據(jù),以實現(xiàn)對信息的編目和搜索.

          ? 資源描述框架(RDF, Resource Description Framework)-用于描述各種類型的資源,以實現(xiàn)對資源的編目,搜索和引用.

          ? 無線標記語言(WML, Wireless Markup Language)-用于在無線網絡上的數(shù)據(jù)奮發(fā),采用無線訪問協(xié)議.

          ? 化學標記語言(CML, Chemical Markup Language)-用來定義化學公式.
          ?
          ?? 數(shù)學標記語言(MathML, Mathematical Markup Language)-用來定義復雜的數(shù)學公式.

          posted @ 2006-06-13 12:02 藍色Saga 閱讀(224) | 評論 (0)編輯 收藏

          僅列出標題
          共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
          主站蜘蛛池模板: 乌审旗| 台江县| 靖西县| 乃东县| 梧州市| 鄂托克前旗| 交口县| 鱼台县| 津南区| 封开县| 合水县| 禄劝| 赣榆县| 镇赉县| 滨州市| 桂东县| 汨罗市| 新化县| 上林县| 和政县| 尼木县| 增城市| 潜山县| 农安县| 日土县| 西安市| 邛崃市| 商丘市| 土默特左旗| 乐亭县| 左贡县| 桦川县| 常德市| 大同市| 云安县| 佛坪县| 两当县| 滦南县| 建宁县| 澄江县| 安顺市|