fkjava

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

           

          今天在看用TdataSet生成的XML中第一行里有個(gè)standalone,不知道是什么意思,查了一下資料才知道它的作用,下面就把我了解的寫下來。

              standalone 用來表示該文件是否呼叫其它外部的文件。若值是 yes 表示沒有呼叫外部文件,若值是 no 則表示有呼叫外部文件。默認(rèn)值是 yes”。

              這里所指的外部文件其實(shí)就是查檢XML是不是有效的約束文件,或是DTD或是Schema,那這兩者又有什么區(qū)別呢?

              盡管XML1.0提供了一種機(jī)制,即文檔類型定義(DTD)來規(guī)范XML的格式規(guī)則。但是它天生存在一些缺點(diǎn),比如,它采用了非XML的語法規(guī)則、不支持更多的數(shù)據(jù)類型、擴(kuò)展性差等,為了克服這些缺點(diǎn),XML Schema 出現(xiàn)了。W3C推薦在XML中使用XML Schema來代替DTD

              XML Schema(模式) DTD一樣,也用于定義 XML 文檔的約束。但它與DTD明顯不同的是,XML Schema遵循XML語法規(guī)則,更好地支持?jǐn)?shù)據(jù)類型以及命名空間。W3C稱:XML Schema is an XML based alternative to DTD。模式在單獨(dú)的文件中定義,通常擴(kuò)展名為 .xsd。每個(gè)模式定義都有一個(gè)根元素 schema,該元素屬于名稱空間http://www.w3.org/2001/XMLSchema。schema 元素可以包含可選的屬性。

              比如:

              <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema

              elementFormDefault="qualified" attributeFormDefault="unqualified">

              這表示模式中使用的元素來自http://www.w3.org/2001/XMLSchema名稱空間。

              XML 文件使用 schema 名稱空間中的 schemaLocation 屬性鏈接到對(duì)應(yīng)的模式。使用 schemaLocation 屬性必須定義 schema 名稱空間。所有這些定義都出現(xiàn)在 XML 文檔的根元素中。

              語法如下:

              <root_element schema_namespace_definition schema_location_definition>

              下面是一個(gè)例子:

              <Books xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"

              xs:schemaLocation="http://www.example.com Books.xsd">

              先來看看一個(gè)XML文件示例(message.xml),分別用DTDXML Schema 描述這個(gè)文件,看看它們之間的區(qū)別:

              1、使用DTD

              <?xml version="1.0" standalone="yes"?>

              <!DOCTYPE message[

              <!ELEMENT message to,from,body>

              <!ELEMENT to      #PCDATA>

              <!ELEMENT from    #PCDATA>

              <!ELEMENT body    #PCDATA>

              ]>

              <message>

              <to>rose</to>

              <from>alex</from>

              <body>Hi,My Girl!</body>

             </message>

              2、使用XML Schema

              message.xml:

              <?xml version="1.0" standalone="no"? >

              <message xmlns=http://www.example.com

              xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

              xsi:schemaLocation="http://www.example.com message.xsd">

              <to>Rose</to>

              <from>Alex</from>

              <body>Hi,My Girl!</body>

              </message>

              message.xsd:

              <?xml version="1.0"?>

              <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema

              targetNamespace=http://www.example.com

              xmlns="http://www.example.com" elementFormDefault="qualified">

              <xs:element name="message">

              <xs:complexType>

              <xs:sequence>

              <xs:element name="to" type="xs:string"/>

              <xs:element name="from" type="xs:string"/>

              <xs:element name="body" type="xs:string"/>

              </xs:sequence>

              </xs:complexType>

              </xs:element>

          </xs:schema>

               您正在看的文章來自瘋狂軟件教育中心 www.fkjava.org

               信息咨詢:Q564205990             星老師

          posted on 2012-08-19 17:27 瘋狂軟件 閱讀(282) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 五华县| 时尚| 宜兰市| 高清| 弋阳县| 吴忠市| 赞皇县| 榆社县| 镇巴县| 镇远县| 康乐县| 罗定市| 太原市| 科尔| 渭南市| 龙岩市| 北安市| 桂平市| 黎城县| 资兴市| 长白| 许昌县| 石河子市| 光泽县| 浦北县| 巧家县| 芮城县| 大宁县| 桦甸市| 梧州市| 内乡县| 德阳市| 海丰县| 灵川县| 长葛市| 辽宁省| 城步| 韶关市| 砀山县| 文安县| 庄浪县|