lqxue

          常用鏈接

          統(tǒng)計(jì)

          book

          tools

          最新評(píng)論

          #

          提供 CheckBox 全選與取消全選

          前言

            提供 CheckBox 全選與取消全選

          方法

          <script language="JavaScript">
          function chkall(input1,input2)
          {
              var objForm = document.forms[input1];
              var objLen = objForm.length;
              for (var iCount = 0; iCount < objLen; iCount++)
              {
                  if (input2.checked == true)
                  {
                      if (objForm.elements[iCount].type == "checkbox")
                      {
                          objForm.elements[iCount].checked = true;
                      }
                  }
                  else
                  {
                      if (objForm.elements[iCount].type == "checkbox")
                      {
                          objForm.elements[iCount].checked = false;
                      }
                  }
              }
          }
          </script>

          <form id="form1">
          <input type="checkbox" value='全部選取' onclick='chkall("form1",this)' name=chk><BR>
          <input type="checkbox" name="item_001" value="1">1<BR>
          <input type="checkbox" name="item_002" value="2">2<BR>
          <input type="checkbox" name="item_003" value="3">3<BR>
          <input type="checkbox" name="item_003" value="4">4
          </form>

          posted @ 2007-07-17 19:17 lqx 閱讀(307) | 評(píng)論 (0)編輯 收藏

          [收藏]Volo view Activex control

          由于用dwg trueview 把dwg embed在ie中有點(diǎn)問題,所以換了一個(gè)activex控件,下面是一個(gè)用volo view activex control 顯示.dwg的例子;
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
          <HEAD>
          <TITLE> New Document </TITLE>
          <META NAME="Generator" CONTENT="EditPlus">
          <META NAME="Author" CONTENT="">
          <META NAME="Keywords" CONTENT="">
          <META NAME="Description" CONTENT="">
          </HEAD>

          <BODY>
          <object id = "dwgViewerCtrl1"
          classid = "clsid:8718C658-8956-11D2-BD21-0060B0A12A50" border = "1" width = "100%" height = "100%">
              <param name = "src" value="dwgView_files\\1TYB6.DWG">
          </object>  
          </BODY>
          </HTML>


          http://discussion.autodesk.com/thread.jspa?threadID=261210

          posted @ 2007-07-10 15:20 lqx 閱讀(829) | 評(píng)論 (1)編輯 收藏

          some resources of html or javascript

          javascript 工具比較:http://mootools.net/slickspeed/

          posted @ 2007-07-09 10:54 lqx 閱讀(250) | 評(píng)論 (0)編輯 收藏

          [收藏]有關(guān)MYSQLDUMP的詳細(xì)解釋

          http://www.phpchina.com/viewnews_11459.html

          、如果是以前導(dǎo)出的文件,導(dǎo)入的時(shí)候遇到錯(cuò)誤:

            Got a packet bigger than ‘max_allowed_packet’ bytes

            or

            ERROR 1153 (08S01) at line 616: Got a packet bigger than ‘max_allowed_packet’ by

            tes

            就需要修改mysql的最大允許包大小了,編輯my.ini,在[mysqld]部分(不在這部分沒用)添加一句:

            set-variable=max_allowed_packet=10485760

            重啟mysql服務(wù)就可以了,我這里設(shè)置的是大約10M。

          posted @ 2007-07-09 10:18 lqx 閱讀(275) | 評(píng)論 (0)編輯 收藏

          Inserting objects into HTML

          http://www.w3.org/TR/WD-object-970218

          posted @ 2007-07-08 15:09 lqx 閱讀(208) | 評(píng)論 (0)編輯 收藏

          如何把數(shù)據(jù)庫(kù)中的dwf(cad圖形)顯示到網(wǎng)頁(yè)上

          利用AutoDesk DWF viewer 插件,可以把物理地址上的.dwf文件顯示到一個(gè)html頁(yè)面中,方法如下:
          <object id = "viewer"
          classid = "clsid:A662DA7E-CCB7-4743-B71A-D817F6D575DF">
          <param name = "Src" value="D:\Drawings\Dwfs\New.dwf">
          </object>

          <object id = "viewer"
          classid = "clsid:A662DA7E-CCB7-4743-B71A-D817F6D575DF"CODEBASE="http://www.autodesk.com/global/dwfviewer/installer/DwfViewerSetup.cab"

          border = "1"

          width = "950"

          height = "600">

          <param name = "Src" value="my.dwf">

          </object>

          posted @ 2007-07-08 11:29 lqx 閱讀(2483) | 評(píng)論 (0)編輯 收藏

          HRESULT 類型

          大多數(shù) COM 函數(shù)以及一些接口成員函數(shù)的返回值類型均為 HRESULT 類型。HRESULT 類型的返回值反映了函數(shù)中的一些情況,其類型定義規(guī)范如下:

             31 30 29 28                    16 15                                0
            |-----|--|------------------------|-----------------------------------|

          類別碼 (30-31) 反映函數(shù)調(diào)用結(jié)果:
                          00 調(diào)用成功
                          01 包含一些信息
                          10 警告
                          11 錯(cuò)誤
          自定義標(biāo)記(29) 反映結(jié)果是否為自定義標(biāo)識(shí),1 為是,0 則不是;
          操作碼 (16-28) 標(biāo)識(shí)結(jié)果操作來源,在 Windows 平臺(tái)上,其定義如下:
                          #define FACILITY_WINDOWS         8
                          #define FACILITY_STORAGE         3
                          #define FACILITY_RPC             1
                          #define FACILITY_SSPI            9
                          #define FACILITY_WIN32           7
                          #define FACILITY_CONTROL         10
                          #define FACILITY_NULL            0
                          #define FACILITY_INTERNET        12
                          #define FACILITY_ITF             4
                          #define FACILITY_DISPATCH        2
                          #define FACILITY_CERT            11
          操作結(jié)果碼(0-15) 反映操作的狀態(tài),WinError.h 定義了 Win32 函數(shù)所有可能返回結(jié)果。
                          以下是一些經(jīng)常用到的返回值和宏定義:
                          S_OK            函數(shù)執(zhí)行成功,其值為 0 (注意,其值與 TRUE 相反)
                          S_FALSE         函數(shù)執(zhí)行成功,其值為 1
                          S_FAIL          函數(shù)執(zhí)行失敗,失敗原因不確定
                          E_OUTOFMEMORY   函數(shù)執(zhí)行失敗,失敗原因?yàn)閮?nèi)存分配不成功
                          E_NOTIMPL       函數(shù)執(zhí)行失敗,成員函數(shù)沒有被實(shí)現(xiàn)
                          E_NOTINTERFACE  函數(shù)執(zhí)行失敗,組件沒有實(shí)現(xiàn)指定的接口

          不能簡(jiǎn)單地把返回值與 S_OK 和 S_FALSE 比較,而要用 SECCEEDED 和 FAILED 宏進(jìn)行判斷。



          Trackback: http://tb.donews.net/TrackBack.aspx?PostId=741200


          posted @ 2007-07-05 10:32 lqx 閱讀(362) | 評(píng)論 (0)編輯 收藏

          [收藏]Spring 中 C3p0 connection pooling 的配置

          Spring 的 DataSource bean 定義如下, 把可變的變量抽出放在db.properties file中, 方便修改 db.properties file只要放在當(dāng)前項(xiàng)目的classes路徑下,或放在Tomcat 的Shared/classes下, Spring 就可以找到
          <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
                  <property name="driverClass">
                      <value>${jdbc.driver}</value>
                  </property>
                  <property name="jdbcUrl">
                      <value>${jdbc.url}</value>
                  </property>
           
                  <property name="acquireIncrement"><value>${hibernate.c3p0.acquire_increment}</value></property>
                  <property name="idleConnectionTestPeriod"><value>${hibernate.c3p0.idle_test_period}</value></property>
                  <property name="checkoutTimeout"><value>${hibernate.c3p0.timeout}</value></property>
                  <property name="maxPoolSize"><value>${hibernate.c3p0.max_size}</value></property>
                  <property name="minPoolSize"><value>${hibernate.c3p0.min_size}</value></property>
                  <property name="maxStatements"><value>${hibernate.c3p0.max_statements}</value></property>
                  <property name="initialPoolSize"><value>${hibernate.c3p0.min_size}</value></property>
                  <property name="user"><value>${jdbc.username}</value></property>
                  <property name="password"><value>${jdbc.password}</value></property>
              </bean>

          db.properties 如下
           jdbc.driver=com.mysql.jdbc.Driver
          jdbc.url=jdbc:mysql://localhost:3306/zyw?useUnicode=true&characterEncoding=GBK
          jdbc.username=root
          jdbc.password=root
          hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
          hibernate.show_sql=true
          hibernate.format_sql=false
          hibernate.c3p0.min_size=80
          hibernate.c3p0.max_size=80
          hibernate.c3p0.timeout=3000
          hibernate.c3p0.max_statements=6000
          hibernate.c3p0.idle_test_period=3000
          hibernate.c3p0.acquire_increment=5


          下面是一些可供使用的項(xiàng):
          maxIdleTime:<!--最大空閑時(shí)間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
          acquireIncrement:<!--當(dāng)連接池中的連接耗盡的時(shí)候c3p0一次同時(shí)獲取的連接數(shù)。Default: 3 -->
           maxStatements:<!--JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量。但由于預(yù)緩存的statements
                                       屬于單個(gè)connection而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素。
                                       如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。Default: 0-->
          idleConnectionTestPeriod:<!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
          acquireRetryAttempts: <!--定義在從數(shù)據(jù)庫(kù)獲取新連接失敗后重復(fù)嘗試的次數(shù)。Default: 30 -->
          breakAfterAcquireFailure: <!--獲取連接失敗將會(huì)引起所有等待連接池來獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效
                                                      保留,并在下次調(diào)用getConnection()的時(shí)候繼續(xù)嘗試獲取連接。如果設(shè)為true,那么在嘗試
                                                       獲取連接失敗后該數(shù)據(jù)源將申明已斷開并永久關(guān)閉。Default: false-->
           testConnectionOnCheckout:<!--因性能消耗大請(qǐng)只在需要的時(shí)候使用它。如果設(shè)為true那么在每個(gè)connection提交的
            時(shí)候都將校驗(yàn)其有效性。建議使用idleConnectionTestPeriod或automaticTestTable
            等方法來提升連接測(cè)試的性能。Default: false -->

          posted @ 2007-07-03 21:24 lqx 閱讀(1286) | 評(píng)論 (0)編輯 收藏

          [收藏]XML Schema 與 XML DTD的技術(shù)比較與分析


          未顯示需要 JavaScript 的文檔選項(xiàng)






          級(jí)別: 初級(jí)

          周競(jìng)濤 (zhoujtnet@yahoo.com.cn)西北工業(yè)大學(xué)CAD/CAM國(guó)家專業(yè)實(shí)驗(yàn)室
          王明微 (wangmv@hotmail.com)西北工業(yè)大學(xué)CAD/CAM國(guó)家專業(yè)實(shí)驗(yàn)室

          2002 年 7 月 01 日

          XML DTD是目前使用最廣泛的一種XML 模式,XML Schema則已經(jīng)成為W3C的正式推薦標(biāo)準(zhǔn),并有替代XML DTD的趨勢(shì)。那么,從技術(shù)角度看,XML Schema與XML DTD有那些區(qū)別,XML Schema又有那些優(yōu)勢(shì)呢?

          引言

          XML DTD(XML的文檔類型定義)是近幾年來XML技術(shù)領(lǐng)域所使用的最廣泛的一種模式。但是,由于XML DTD并不能完全滿足XML自動(dòng)化處理的要求,例如不能很好實(shí)現(xiàn)應(yīng)用程序不同模塊間的相互協(xié)調(diào),缺乏對(duì)文檔結(jié)構(gòu)、屬性、數(shù)據(jù)類型等約束的足夠描述等等,所 以W3C于2001年5月正式推薦XML Schema為XML 的標(biāo)準(zhǔn)模式。顯然,W3C希望以XML Schema來作為XML模式描述語(yǔ)言的主流,并逐漸代替XML DTD。那么XML Schema與XML DTD相比到底有哪些優(yōu)勢(shì)呢,XML DTD是否真的會(huì)在XML的模式描述領(lǐng)域中逐漸消失呢?





          回頁(yè)首


          XML模式與XML格式

          XML模式是指用來描述XML結(jié)構(gòu)、約束等因素的語(yǔ)言,例如XML Schema、XML DTD、XDR,SOX等等。XML格式則是XML文檔本身所具有的格式。本文以XML Schema來代表W3C所推薦的XML Schema模式標(biāo)準(zhǔn),而以"XML模式"來代表所有的XML模式描述語(yǔ)言。

          從 模式的描述語(yǔ)言來說,XML Schema和XML DTD都屬于語(yǔ)法模式。與概念模式不同,語(yǔ)法模式在對(duì)同一事物描述時(shí),可以采用不同的語(yǔ)法,例如在對(duì)關(guān)系模式描述時(shí),無論是使用XML Schema還是XML DTD,都既可以用元素也可以用屬性來描述關(guān)系模式的列。

          模式必須以某種格式來表示,XML Schema的格式與XML DTD的格式有著非常明顯的區(qū)別,XML Schema事實(shí)上也是XML的一種應(yīng)用,也就是說XML Schema的格式與XML的格式是完全相同的,而作為SGML DTD的一個(gè)子集,XML DTD具有著與XML格式完全不同的格式。這種區(qū)別會(huì)給XML Schema的使用帶來許多好處:

          1. XML用戶在使用XML Schema的時(shí)候,不需要為了理解XML Schema而重新學(xué)習(xí),節(jié)省了時(shí)間;
          2. 由于XML Schema本身也是一種XML,所以許多的XML編輯工具、API 開發(fā)包、XML語(yǔ)法分析器可以直接的應(yīng)用到XML Schema,而不需要修改。
          3. 作為XML的一個(gè)應(yīng)用,XML Schema理所當(dāng)然的繼承了XML的自描述性和可擴(kuò)展性,這使得XML Schema 更具有可讀性和靈活性。
          4. 由于格式完全與XML一樣,XML Schema除了可以像XML一樣處理外,也可以同它所描述的XML文檔以同樣的方式存儲(chǔ)在一起,方便管理。
          5. XML Schema與XML格式的一致性,使得以XML為數(shù)據(jù)交換的應(yīng)用系統(tǒng)之間,也可以方便的進(jìn)行模式交換。
          6. XML有非常高的合法性要求,XML DTD對(duì)XML的描述,往往也被用作驗(yàn)證XML合法性的一個(gè)基礎(chǔ),但是XML DTD本身的合法性卻缺少較好的驗(yàn)證機(jī)制,必需獨(dú)立處理。XML Schema則不同,它與XML有著同樣的合法性驗(yàn)證機(jī)制。




          回頁(yè)首


          數(shù)據(jù)類型

          或 許,對(duì)于許多開發(fā)人員來講,XML Schema與XML DTD相比的一個(gè)最顯著的特征,就是其對(duì)數(shù)據(jù)類型的支持了。這完全是因?yàn)閄ML DTD提供的數(shù)據(jù)類型只有CDATA 、Enumerated、NMTOKEN 、NMTOKENS等十種內(nèi)置(built-in)數(shù)據(jù)類型。這樣少的數(shù)據(jù)類型通常無法滿足文檔的可理解性和數(shù)據(jù)交換的需要。XML Schema則不同,它內(nèi)置了三十七種數(shù)據(jù)類型,如long,int,short,double等常用的數(shù)據(jù)類型,并通過將數(shù)據(jù)類型表示為由value space、lexical space和facet三部分組成的三元組而獲得更大的靈活性。但是, XML Schema數(shù)據(jù)類型的真正靈活性來自于其對(duì)用戶自定義類型的支持。XML Schema提供兩種方式來實(shí)現(xiàn)數(shù)據(jù)類型的定義。

          1) 簡(jiǎn)單類型定義(simpleType),即在XML Schema內(nèi)置的數(shù)據(jù)類型基礎(chǔ)上或其它由XML Schema內(nèi)置的數(shù)據(jù)類型繼承或定義所得到的簡(jiǎn)單的數(shù)據(jù)類型(simpleType)基礎(chǔ)上,通過restriction,list 或者 union方式定義新的數(shù)據(jù)類型。

          例如:



          源碼1 restriction方式的定義
          <simpleType name='Sku'>
          <restriction base='string'>
          <pattern value='\d{3}-[A-Z]{2}'/>
          </restriction>
          </simpleType>




          源碼2 list方式的定義
          <simpleType name='listOfDouble'>
          <list itemType='double'/>
          </simpleType>




          源碼3 union方式的定義
          <xsd:attribute name="size">
          <xsd:simpleType>
          <xsd:union>
          <xsd:simpleType>
          <xsd:restriction base="xsd:positiveInteger">
          <xsd:minInclusive value="1"/>
          <xsd:maxInclusive value="12"/>
          </xsd:restriction>
          </xsd:simpleType>
          <xsd:simpleType>
          <xsd:restriction base="xsd:string">
          <xsd:enumeration value="month"/>
          </xsd:restriction>
          </xsd:simpleType>
          </xsd:union>
          </xsd:simpleType>
          </xsd:attribute>

          2) 復(fù)合類型定義(complexType),該方法提供了一種功能強(qiáng)大的復(fù)雜數(shù)據(jù)類型定義機(jī)制,可以實(shí)現(xiàn)包括結(jié)構(gòu)描述在內(nèi)的復(fù)雜的數(shù)據(jù)類型。下面是一個(gè)以 complexType定義實(shí)現(xiàn)關(guān)系模式中表結(jié)構(gòu)的例子,設(shè)有表T_C_Type(Psign,Count),其中Psign為CHAR數(shù)據(jù)類型, Count為NUMBER數(shù)據(jù)類型。則有:



          源碼4 complexType定義
          <!--表結(jié)構(gòu)類型定義-->
          <complexType name="T_C_Type">
          <sequence minOccurs="0" maxOccurs="unbounded">
          <element name="Psign">
          <complexType>
          <simpleContent>
          <restriction base="string">
          <attribute name="value" type="string"/>
          </restriction>
          </simpleContent>
          </complexType>
          </element>
          <element name="Count" minOccurs="0">
          <complexType>
          <complexContent>
          <restriction base="anyType">
          <attribute name="value" type="int" use="optional"/>
          </restriction>
          </complexContent>
          </complexType>
          </element>
          </sequence>
          </complexType>

          不僅如此,XML Schema還允許元素的內(nèi)容取空值,這一點(diǎn)可以擴(kuò)大XML Schema對(duì)數(shù)據(jù)情況的描述范圍,而XML DTD則無能為力。例如:



          源碼5 XML Schema 元素取空值的定義
          <element name='test' nullable='true'/>





          回頁(yè)首


          元素順序的支持

          XML DTD與XML Schema 都支持對(duì)子元素節(jié)點(diǎn)順序的描述,但XML DTD沒有提供對(duì)于無序情況的描述,也就是如果以XML DTD來描述元素的無順序出現(xiàn)情況,它必須采用窮舉元素各種可能出現(xiàn)的排列順序的方式來實(shí)現(xiàn),這種方法不僅繁瑣,有時(shí)甚至是不現(xiàn)實(shí)的。例如對(duì)于table 的a,b子元素,如果希望它們以任意的順序出現(xiàn),用XML DTD來描述:



          源碼6 a,b子元素任意順序出現(xiàn)的XML DTD定義
          <?xml version="1.0" encoding="UTF-8"?>
          <!ELEMENT ENTER_NAME_OF_ROOT_ELEMENT_HERE EMPTY>
          <!ELEMENT table ((a,b)|(b,a))>
          <!ELEMENT a (#PCDATA)>
          <!ELEMENT b (#PCDATA)>

          XML Schema提供了<all>標(biāo)記來描述這種情況:



          源碼7 a,b子元素任意順序出現(xiàn)的XML Schema定義
          <xsd:element name="a" type="xsd:string"/>
          <xsd:element name="b" type="xsd:string"/>
          <xsd:element name="table">
          <xsd:complexType>
          <xsd:all>
          <xsd:element ref="a"/>
          <xsd:element ref="b"/>
          </xsd:all>
          </xsd:complexType>
          </xsd:element>

          可見,用XML Schema來實(shí)現(xiàn)子元素的無序描述要簡(jiǎn)單的多。





          回頁(yè)首


          命名空間

          在XML中引入命名空間的目的是為了能夠在一個(gè)XML文檔中使用其它XML文檔中的一些具有通用性的定義(通常是一些元素或數(shù)據(jù)類型等的定義),并保證不 產(chǎn)生語(yǔ)義上的沖突。XML DTD并不能支持這一特性,這進(jìn)一步限制了XML DTD的適用范圍。而XML Schema則很好的滿足了這一點(diǎn)。

          并 且, XML Schema還提供了include 和 import兩種引用命名空間的方法。下面的例子中XML Schema文檔引用了其它兩個(gè)XML Schema的定義,通過使用import實(shí)現(xiàn)了混合使用不同命名空間的目的。例子中還定義了不同命名空間中元素之間的keyref約束。



          源碼8 XML Schema對(duì)命名空間的使用
          schema targetNamespace="http://202.117.84.144"
          xmlns:xs="http://202.117.84.144"
          xmlns="http://www.w3.org/2001/XMLSchema"
          xmlns:a="http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"
          xmlns:b="http://202.117.84.228/middlewareOracle805ioracletest20211784144"
          elementFormDefault="qualified">
          <import namespace="http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"
          schemaLocation="F:\xml schema\middlewareSqlServer2000sqlservertest20211784228.xsd"/>
          <import namespace="http://202.117.84.228/middlewareOracle805ioracletest20211784144"
          schemaLocation="F:\xml schema\middlewareOrcal805ioracletest20211784144.xsd"/>
          <annotation>
          <documentation xml:lang="cn">
          schema for Middleware
          Copyright 2001 Zhou Jingtao. All rights reserved.
          </documentation>
          </annotation>
          <element name="CombineDatabase">
          <complexType>
          <sequence>
          <element name="CombinGlobeSchema">
          <complexType>
          <sequence>
          <element ref="a:H-Database"/>
          <element ref="b:H-Database"/>
          </sequence>
          </complexType>
          <keyref name="SqlServerTest_T_C_Psign" refer="b:gz_jgxx_ID_pk">
          <selector xpath="a:H-Database/a:SqlServerTest/a:T_C/a:Count"/>
          <field xpath="@value"/>
          </keyref>
          </element>
          </sequence>
          </complexType>
          </element>
          </schema>





          回頁(yè)首


          對(duì)于API的支持

          在掌握和使用XML技術(shù)時(shí),DOM和SAX可能是技術(shù)人員最常使用到的XML API。DOM和SAX只對(duì)XML實(shí)例文檔有效,雖然可以通過它們實(shí)現(xiàn)以XML DTD來驗(yàn)證XML文檔,但是DOM和SAX卻沒有提供解析XML DTD文檔內(nèi)容的功能,也就是說我們無法通過DOM或SAX來得到DTD中元素、屬性的聲明和約束的描述。但是在基于XML+DTD的數(shù)據(jù)交換過程中,一 些應(yīng)用程序需要得到DTD本身的描述內(nèi)容和結(jié)構(gòu),以方便對(duì)XML文檔中數(shù)據(jù)的處理,例如在使用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML 文檔的過程中就涉及到如何將XML DTD映射為關(guān)系模式描述的問題。為了實(shí)現(xiàn)對(duì)XML DTD的解讀,研究人員必須為XML DTD開發(fā)新的接口或者專用工具,帶來了很大的不便。

          由于XML Schema本身就是一個(gè)XML 文檔,所以我們可以通過使用DOM、SAX或JDOM等XML API很容易的解析XML Schema,這就實(shí)現(xiàn)了XML文檔與其描述模式處理方式的一致性,利于數(shù)據(jù)的傳輸和交換。





          回頁(yè)首


          更加清晰的屬性出現(xiàn)情況的限制、以及缺省值和枚舉

          XML DTD以關(guān)鍵字#IMPlIED、#FIXED和#REQUIRED來指定屬性是否出現(xiàn),并支持屬性缺省值的定義。XML Schema則提供了更明確的標(biāo)記來實(shí)現(xiàn)清晰易懂的表示。XML Schema廢棄了XML DTD的#IMPlIED,不再支持屬性的隱含狀態(tài),而要求必須給出明確的狀態(tài),并以prohibited來表示屬性的禁用。對(duì)于缺省值的表達(dá)則更為直 觀,用default來直接給出。



          源碼9 XML DTD 、XML Schema對(duì)屬性出現(xiàn)情況的限制
          <!ATTLIST TestDTD testAr1 CDATA  #IMPLIED>
          <!ATTLIST TestDTD testAr2 CDATA #REQUIRED>
          <!ATTLIST TestDTD testAr3 CDATA #FIXED "3">
          <!ATTLIST TestDTD testAr4 CDATA "3">
          <xsd:attribute name="TestAr1" type="xsd:string" use="optional" default="3"/>
          <xsd:attribute name="TestAr2" type="xsd:string" use="prohibited"/>
          <xsd:attribute name="TestAr3" type="xsd:string" use="required" fixed="3"/>

          對(duì)于XML Schema在枚舉方面的改進(jìn),請(qǐng)參見參考資料中"XML 問題 #7 W3C XML Schema 與文檔類型定義 (DTD) 比較"一文(文獻(xiàn)9)。





          回頁(yè)首


          注釋

          XML DTD和XML Schema都支持<!-注釋內(nèi)容-->這樣的注釋方法,但是XML Schema提供了更靈活和有用的注釋方式:documentation和appinfo。它們提供了面向讀者和應(yīng)用的注釋。



          源碼10 XML Schema的注釋
          <xsd:annotation>
          <xsd:documentation>面向用戶和應(yīng)用的注釋</xsd:documentation>
          <xsd:appinfo>
          //這是一段C語(yǔ)言代碼。
          #include stdio.h
          void main()
          {
          int i,j;
          i =1;
          j=i+1;
          }
          </xsd:appinfo>





          回頁(yè)首


          對(duì)數(shù)據(jù)庫(kù)的支持

          目前如何將關(guān)系數(shù)據(jù)表示為XML數(shù)據(jù)和如何實(shí)現(xiàn)基于關(guān)系數(shù)據(jù)庫(kù)的XML數(shù)據(jù)存儲(chǔ)、查詢和更新已經(jīng)成為了研究的熱點(diǎn)。Deutsh,F(xiàn)lorescu [5],Kossman[5],Shanmugasundaram[6,7]和D W Lee[8]等人都在XML與關(guān)系數(shù)據(jù)的相互轉(zhuǎn)化問題方面作了較深入的研究。然而由于XML Schema成為正式推薦標(biāo)準(zhǔn)的時(shí)間較晚,加之XML DTD語(yǔ)法相對(duì)簡(jiǎn)單,所以現(xiàn)在大部分的研究和應(yīng)用都是基于XML DTD展開的。但是,XML DTD在對(duì)關(guān)系數(shù)據(jù)的描述方面明顯存在著不足,例如XML DTD有限的數(shù)據(jù)類型根本無法完成對(duì)關(guān)系數(shù)據(jù)數(shù)據(jù)類型的一一映射,也無法實(shí)現(xiàn)大部分的數(shù)據(jù)規(guī)則的描述。XML Schema提供了更多的內(nèi)建數(shù)據(jù)類型,并支持用戶對(duì)數(shù)據(jù)類型的擴(kuò)展,基本上滿足了關(guān)系模式在數(shù)據(jù)描述上的需要,這一點(diǎn)可以作為XML Schema比XML DTD更適合描述關(guān)系數(shù)據(jù)的一個(gè)主要的原因。





          回頁(yè)首


          一個(gè)結(jié)論

          通過比較,可以看出,XML Schema比XML DTD具有更強(qiáng)的表現(xiàn)力,能夠更好的滿足不同領(lǐng)域應(yīng)用的需求。那么,是不是可以說XML DTD會(huì)很快被XML Schema替代并最終消失呢。從作者的觀點(diǎn)來看,XML Schema雖然在大多數(shù)的應(yīng)用領(lǐng)域都有替代XML DTD的趨勢(shì),但是XML DTD仍然有它的適用范圍,并不可能被XML Schema完全替代:

          • XML DTD是作為XML 標(biāo)準(zhǔn)的一部分發(fā)布的,W3C似乎并沒有準(zhǔn)備將其從XML標(biāo)準(zhǔn)中廢除掉,對(duì)于XML DTD的支持還將持續(xù)。
          • 目 前大多數(shù)的面向XML應(yīng)用,都對(duì)XML DTD做了很好的支持,XML DTD的工具也相對(duì)較為成熟,一般情況下,這些應(yīng)用和工具并不會(huì)選擇以XML Schema替換XML DTD的方式對(duì)其升級(jí),更多的選擇應(yīng)該是二者都支持。當(dāng)然,對(duì)于那些對(duì)數(shù)據(jù)交換或者描述能力要求較高、XML DTD已不能滿足功能需求的應(yīng)用來說,以XML Schema來代替XML DTD已經(jīng)成為一種必然趨勢(shì)。
          • 當(dāng)前大多數(shù)與XML 模式相關(guān)的算法研究都是基于XML DTD展開的,作為一種研究的延續(xù),并不會(huì)放棄XML DTD的研究成果,但是,針對(duì)XML Schema的研究將會(huì)成為一個(gè)新的熱點(diǎn)。
          • 在一些相對(duì)要求簡(jiǎn)單的處理環(huán)境中,XML DTD仍然會(huì)占有它的一席之地。
          • 同其他技術(shù)的發(fā)展一樣,由于新標(biāo)準(zhǔn)的出現(xiàn),XML DTD的作用會(huì)逐漸減弱,但正如層次數(shù)據(jù)庫(kù)在今天仍然在使用一樣, 對(duì)XML Schema是否會(huì)完全替代XML DTD做一個(gè)結(jié)論似乎為時(shí)過早。

          所以,作為一種強(qiáng)有力的標(biāo)準(zhǔn),XML Schema作為XML模式的主流已經(jīng)成為一種趨勢(shì);但作為一種最簡(jiǎn)單的XML模式,XML DTD也還將會(huì)在一段時(shí)間內(nèi)發(fā)揮它應(yīng)有的作用。



          參考資料

          • Fallside D C. XML Schema Part 0: Primer. http://www.w3.org/TR/xmlschema-0, 2001.5 XML Schema 標(biāo)準(zhǔn)的總體介紹。

          • Thompson H,et al . XML Schema Part 1: Structures. http://www.w3.org/TR/xmlschema-1, 2001.5 XML Schema的結(jié)構(gòu)標(biāo)準(zhǔn)

          • Biron P V, Malhotra A. XML Schema Part 2: Datatypes. http://www.w3.org/TR/xmlschema-2, 2001.5 XML Schema的數(shù)據(jù)類型標(biāo)準(zhǔn)。

          • Lee D W, Chu W W. Comparative Analysis of Six XML Schema Languages.ACM SIGMOD Record, 2000.9,29(3): 76~87 該文對(duì)XML 模式中的XML DTD , XML Schema , XDR , SOX , Schematron, DSD作了詳細(xì)的比較,其中對(duì)于XML Schema的論述,由于當(dāng)時(shí)XML Schema標(biāo)準(zhǔn)還未定稿,所以與最新的標(biāo)準(zhǔn)相比有些出入。

          • Florescu D, Kossman D. Storing and Querying XML Data Using a RDBMS. IEEE Data Engineering Bulletin, 1999,22(3): 27~34 研究了如何利用RDBMS實(shí)現(xiàn)XML數(shù)據(jù)的存儲(chǔ)和查詢。

          • Shanmugasundaram J, et al..Efficiently Publishing Relational Data as XML Documents..The VLDB Journal, 2000, 65~76 提出了一種基于SQL語(yǔ)言的的關(guān)系數(shù)據(jù)到XML的有效發(fā)布方法。

          • Shanmugasundaram J,et al.Querying XML Views of Relational Data.The VLDB Journal, 2001, 261~270提出了用來實(shí)現(xiàn)復(fù)雜XQuery的框架結(jié)構(gòu),研究如何提高XML視的查詢效率。

          • Lee D W, Chu W W. Constraints-preserving Transformation from XML Document Type Definition to Relational Schema.International Conference on Conceptual Modeling / the Entity Relationship Approach, 2000, 323~338 詳細(xì)論述了XML DTD到關(guān)系模式的映射算法CPI。

          • David Mertz ,W3C XML Schema 與文檔類型定義 (DTD) 比較, http://www.ibm.com/developerWorks/cn/xml/x-matters/part7/index.shtml


          作者簡(jiǎn)介


          周競(jìng)濤,西北工業(yè)大學(xué)CAD/CAM國(guó)家專業(yè)實(shí)驗(yàn)室博士研究生,致力于將哲學(xué)、數(shù)學(xué)結(jié)合到技術(shù)研究中,主要研究方向:中間件、XML技術(shù)、EII,Semantic Web Services。可以通過 zhoujtnet@yahoo.com.cn與他聯(lián)系。



          王明微,陜西西安,西北工業(yè)大學(xué)CAD/CAM國(guó)家專業(yè)實(shí)驗(yàn)室碩士研究生,研究方向:逆向工程、模式識(shí)別。可以通過 wangmv@hotmail.com與他聯(lián)系。










          摘自:http://www-128.ibm.com/developerworks/cn/xml/x-sd/index.html

          posted @ 2007-07-02 17:00 lqx 閱讀(216) | 評(píng)論 (0)編輯 收藏

          [收藏]truncate,delete,drop的異同點(diǎn)

          注意:這里說的delete是指不帶where子句的delete語(yǔ)句
          相同點(diǎn)
          truncate和不帶where子句的delete, 以及drop都會(huì)刪除表內(nèi)的數(shù)據(jù)

          不同點(diǎn):
          1. truncate和 delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義)
              drop語(yǔ)句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index); 依賴于該表的存儲(chǔ)過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài).
          2.delete語(yǔ)句是dml,這個(gè)操作會(huì)放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā).
             truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger.
          3.delete語(yǔ)句不影響表所占用的extent, 高水線(high watermark)保持原位置不動(dòng)
            顯然drop語(yǔ)句將表所占用的空間全部釋放
            truncate 語(yǔ)句缺省情況下見空間釋放到 minextents個(gè) extent,除非使用reuse storage;   truncate會(huì)將高水線復(fù)位(回到最開始).
          4.速度,一般來說: drop>; truncate >; delete
          5.安全性:小心使用drop 和truncate,尤其沒有備份的時(shí)候.否則哭都來不及
          使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句. 回滾段要足夠大.
          想刪除表,當(dāng)然用drop
          想保留表而將所有數(shù)據(jù)刪除. 如果和事務(wù)無關(guān),用truncate即可. 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete.
          如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù)

          摘自:http://www.chinaunix.net/jh/19/252763.html

          posted @ 2007-07-02 16:03 lqx 閱讀(258) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共18頁(yè): First 上一頁(yè) 8 9 10 11 12 13 14 15 16 下一頁(yè) Last 
          主站蜘蛛池模板: 绥宁县| 泰兴市| 察哈| 永吉县| 鹤壁市| 双牌县| 淮安市| 武山县| 香港| 桓仁| 海林市| 大石桥市| 乌拉特后旗| 南平市| 井陉县| 石屏县| 沂源县| 三门县| 彭阳县| 肇源县| 独山县| 二连浩特市| 布拖县| 奈曼旗| 道孚县| 乌鲁木齐市| 德令哈市| 余江县| 乐业县| 周至县| 西城区| 井冈山市| 屯昌县| 洪江市| 康定县| 阳山县| 电白县| 罗源县| 公主岭市| 本溪市| 天峻县|