??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩精品电影一区亚洲,中文文字幕文字幕亚洲色,久久精品国产亚洲av高清漫画http://www.tkk7.com/hitlang/category/15678.html学以致用zh-cnWed, 28 Feb 2007 04:11:49 GMTWed, 28 Feb 2007 04:11:49 GMT60XML学习W记http://www.tkk7.com/hitlang/articles/71854.htmlliulangliulangMon, 25 Sep 2006 15:14:00 GMThttp://www.tkk7.com/hitlang/articles/71854.htmlhttp://www.tkk7.com/hitlang/comments/71854.htmlhttp://www.tkk7.com/hitlang/articles/71854.html#Feedback0http://www.tkk7.com/hitlang/comments/commentRss/71854.htmlhttp://www.tkk7.com/hitlang/services/trackbacks/71854.html2004-10-28     星期四    ??/p>

XML预览

1.  XML的背?br />{:1) XML代表扩展的标记语a(eXtensible Markup Language);
    2) XML由W3C联盟发展l护;
    3) XML是一U元语言Q可以用来定义其它语a;
    4) XML没有定义M标记Q它提供了一U工具定义标C及它们之间的l构关系;
    5) XML是一U用于结构化文本交换的标记语a;
    6) XML代表了内容的l构也代表了内容本n;
    7) XMLl承自SGML(标准标记语言)。SGML的前wGML由IBM?960q发明,用于描述讑֤无关的文本?br />    8) XML是SGML的子c? 起初的目的是为Web的结构文档提供服务?br />    9) W3Cl织?998q??0日发布XML1.0版,W二个版本发布于2000q?0?日?/p>

2.  XML和HTML的关p?br />{:1) 事实上,HTML和XML不能够进行比较的。因为XML是一U元语言Q而HTML是一U定义好的语a?br />    2) HTML有一套确定的标记。在W3C标准规范中定义了HTML标记的含义ƈ由部分浏览器实现了?br />    3) HTML标记非常适合描述人类易读的可视化文本?br />    4) HTML定义了许多表现指令用以优化在览器中的显C?br />    5) 在HTML标记中,数据固有的结构丢׃?br />    6) HTML没有l持数据cd信息的完整性、约束、或实体间的其它关系Q而XML提供了这些特征?br />   
3.  SGML、XML和HTML
{:   
       SGML<----HTML
        ?br />        |
       XML

4.  XML文g
{:<?xml version="1.0" ?><--------------------------------Processing Instruction
    <welcome><---------------------------------------------Root Element
      <message><-------------------------------------------Child element
         Welcome to the world of EnterInfo!
      </message>
      <book-info>
         <book-title>     ?------------------------------Entity reference
            Web services &amp; IBM WSAD<-------------------Character data
         </book-title>    ?------------------------------Attribute
         <data type="lastEditon">
             <day><----------------------------------------Begin tag
               23
             </day><---------------------------------------End tag
             <month>
               08
             </month>
             <year>
               2001
             </year>
         </data>
         <data type="lastEdition">
             <day>
               23
             </day>
             <month>
               08
             </month>
             <year>
               2001
             </year>
         </data>
         <email>TonyDeng@enterinfo.net</email>
         <filename src = "sg246292.pdf" /><---------------Empty tag
      </book-info>
    </welcome>

5.  XML标记
{:1) XML文档是基于文本的Q由标记和内容组成:
       . 标记让XML的处理器知道如何d理内容,以及它们是如何组l的;
       . 内容是字W数据,你可以在打印或显C的面看见它们?br />    2) XML文档中有六种标记:
       a. Elements: 最常见的标记Ş式,它确定它们所包围的内宏V以Start tag开始,以end tagl束。非I元素包含了子元素或字符数据。空元素没有内容Q能写成以下二种形式Q?br />          <empty-element></empty-element> or
          <empty-element/>
       b. Attributes: 是出现在元素的first tag中位于元素名U后的名U?值对。所有的属性值必ȝ单引h双引hh。属性指定了元素的特征?br />       c. Entity references: 实体引用可用于插入保留字W或L的unicodeQ也用于重复或变化的文本Q或包含外部文g的内宏V实体引用以与号(&)开始,以分?;)l束。XML规范预定义了五种保留的实体引用:
          &lt;    代表     <
          &gt;    代表     >
          &quot;  代表     "
          &apos;  代表     '
       d. Comments: 不是XML文档原文内容的一部分Q它以?lt;!--”开始,以?->”结束。XML处理器不需要将注释传给应用E序?br />       e. Processing instructions(PIs): PIs不是XML文档的原文内容,但XML的处理器需它传递给应用E序?br />       f. CDATAQ指C析器忽略大多数标记字W,该部分封装了一些源代码?/p>

6.  l构良好的的XML文档
{:虽然XML没有M预定义标{,但成为结构良好的文档Q还是存在一些必d守的规则。从定义上讲Q假如一个文档结构不好,它也׃是XML文档?br />    1) 标签必须成对?br />    2) 一份文档必d含一个根元素?br />    3) 所有的开始标{֒l束标签必须匚w?br />    4) I标{ֿM?>”结束?br />    5) 标签必须嵌套正确?br />    6) 元素名称大小写敏感?br />    7) 所有的属性值必M于单引号或双引号中?br />    8) 在同一个开始标{或I标{M属性不允许出现过一ơ?br />    HTML中也存在cM的规则,但HTML览器可接受l构不好的HTML文档?/p>

7.  文档cd定义(DTD)(Document type definition)
{:1) l构良好的文档ؓXML提供了许多优势,例如可扩展性、将l构加于一l数据?br />    2) 无论如何Q通过XML文档交换信息需要更多功能:
       . 它必d能对一套文档构建通用语法q能自动验其正确性?br />       . 需要文档类型定?DTD)的地址?br />    3) 一个DTD定义了:
       . 允许的子元素以及它们排列的先后顺?
       . 元素和以及属性的多样?
       . 属性值和它们的类型以及默认?
       . 实体和符?br />    4) DTD表达了一个文档内容的元信?
    5) 通过DTDQXML解析器能校验一份XML文档是否W合定义;
    6) 一个DTD可用于一臛_个XML文档;
    7) 文档内容能在外部或内部声明:
       <!DOCTYPE rootElement SYSTEM "filename.dtd">
       <!DOCTYPE rootElement [...(delcarations)...]>
    8) 一个DTD标识了文档的根元素以及包含了额外的声明。它必须是文档中PI和注释后的首要内宏V?br />    9) 外部和内部的DTD元素混合在一h可以的?br />    因ؓDTD已被XML schemas所替代Q我们可不必详细讨论?/p>

8.  认
{:1) 一份结构良好的文档只有当它包含一个合适的文档cd声明q且W合q䆾声明的约束时才是有效的?br />    2) 所有有效的文档都是l构良好的,但结构良好的文档q不一定是有效的?/p>

9.  XML的名域空?br />{:1) 应用E序通过元素名称(标签)和文档的内容建立联系。应用程序有可能使用相同标签处理二䆾文档。在二䆾文档的这个标{中有不同的意思。因此,引入名域I间的概念以排除命名的冲H?br />    2) XML的名域空间由W3Cl织?999q??4日定义ƈ推荐?br />    3) 以后我们会看刎ͼq个定义了Web服务导向的体pȝ构标准利用了强大的概c?br />    4) 标签名称应该是全球唯一的,但是因ؓ性能原因他们必须短小?br />    5) Z解决q个冲突QW3Cl织名域I间介绍定义了一个属性:xmlnsQ通过它改qXML元素。假如它出现在一个元素中Q它定了这个元素的名域I间?br />    6) xmlns属性有下列的语法:
       xmlns=localQualifier:"globallyUniqueName"
    7) 全局唯一的名UC用URI语法Q但它ƈ非一个真实的可用浏览器通过HTTP协议讉K的URI?br />    8) 在下列用户元素定义中Q一个accounting名域I间被定义用以区分用戯录。这些记录被其它商业应用E序所创徏?br />       <acct:customer xmlns:acct="         <acct:name>Corporation</acct:name>
         <acct:order acct:ref="5566"/>
         <acct:status>invoice</acct:status>
       </acct:customer>
       . 名域I间定义在第一行,分配了一个全局名称
http://www.enterinfo.net/acct-REV10l本地的限地词:acct?br />       . q个限定词用于元素名Uͼl定它们到名域空间?br />       W二个应用程序,例如一个fulfillmentpȝQ可以分z一个不同的名域I间l它的customer元素Q?br />       <ful:customer xmlns:ful="          <ful:name>Corporation</ful:name>
          <ful:order ful:ref="A98756"/>
          <ful:status>shipped</ful:status>
       </ful:customer>
       现在一个应用程序通过名称可处理相同数据结构中不同的数据?br />    9) 假设元素没有定义名域I间Q系l会加上默认的名域空间。黙认的名域I间的元素无d~Q注意黙认的名域I间适合于所有有属性定义?br /> 
10. XML schema
{:1) 作ؓXML文档元素信息W号Q我们只介绍了DTD?br />    2) DTD有缺点,例如Q它们用不同于XML文档的语法?br />    3) 它们同样~少数据键入能力?br />    4) XML schema definition(XSD) 带给XML丰富的数据描q。一个schema可准地定义U束q迫使数据类型尊守?br />    5) XSD由W3Cl织?001q??日发布?br />    6) XSD本n是XML文档Q它们可被XML工具或通过MXML处理器管理。换句话_对于XML schemaq存在一个XML schema?br />    7) 值得注意的是XSD可被引入XML文g。在处理的时候,导入的schema必须可被讉K(例如使用HTTP)?/p>


2004-10-29     星期五    ??/p>

XML预览之二

11. 一个schema定义中的元素
{:1) 声明Q声明元素和属性以特定的名U和cd出现在文档中Q声明包括定义?br />    2) 定义Q定义创建新的类?单或复杂)?br />       . 单类型:不能有元素内容以及属?
       . 复杂cdQ在内容中有元素Q可以有属?

12. W一个Schema范例
{:我们使用simpleType元素定义和命名一个简单类型:
    <?xml version="1.0" ?>
    <schema xmlns="
        targetNamespace="        xmlns:TestSchema="      <simpleType name="ZipCodeType">
        <restriction base="integer">
          <minInclusive value="10000"/>
          <maxInclusive value="99999"/>
        </restriction>
      </simpleType>
      <!--element definitions skipped -->
    </schema>
    . restriction元素表明其所Z的基本类型ƈ指定了二个方面:minInclusive和maxInclusive。这些范围限制了新类型的范围区间?br />    . 注意我们为schema定义了默认的名域I间作ؓ标准的XML名域I间
http://www.w3.org/2001/XMLSchema。我们也定义了自q定的名域I间Q?a >http://www.ibm.com?/p>

13. W二个Schema范例的部?br />{:<element name="address">
      <complexType>
        <sequence minOccurs="1" maxOccurs="1">
          <element ref="TestSchema:street"/>
          <element ref="TestSchema:zipCode"/>
          <element ref="TestSchema:city"/>
        </sequence>
      </complexType>
    <element>
    <element name="street" type="string"/>
    <element name="zipCode" type="TestSchema:ZipCodeType"/>
    <element name="city" type="string"/>
    <element name="addressList">
      <complexType>
        <sequence minOccurs="0" maxOccurs="unbounded">
          <element ref="TestSchema:address"/>
        </sequence>
      </complexType>
    </element>
    . sequence是XSD的保留关键字Q定义了一个复杂类型的内置l构;
    . type属性是可选的Q它包含了一个类型定义的引用——可定义于XSD文g?如:TestSchema:ZipCodeType)或预先确定的标准数据cd(如String)?/p>

14. 在XML中用XSD
{:信上面定义的XSD文g保存在:c:\temp\TestSchema.xsd中,下面是一个采用该XSD文gq行验证的XML文gQ?br />    <?xml version="1.0" ?>
    <x:addressList xmlns:x="       xmlns:xsi="       xsi:schemaLocation="http://www.ibm.comfile:///c:/temp/TestSchema.xsd">
       <x:address>
          <x:street>x:Vangerowstrasse</x:street>
          <x:zipCode>69115</x:zipCode>
          <x:city>x:Heidelberg</x:city>
       </x:address>
       <x:address>
          <x:street>x:Bennal Road</x:street>
          <x:zipCode>90375</x:zipCode>
          <x:city>x:San Jose</x:city>
       </x:address>
    </x:addressList>
    . 注意q个XSD文g必须能通过HTTP讉KQ在q个例子中,file:///C:/temp/TestSchema.xsd是位|的真实URL;
    . ?a >http://www.ibm.com的命域空间只是用这个符L来进行全球唯一定。假定noProtocol://www.ibm.com是全球唯一的,它也是一个有效的名域I间?br />    . XML标准中schema位置属性的语法是:
      xsi:schemaLocation="targetnamespaceURI locationURI"

15. 目标名域I间
{:1) 目标名域I间Q用以识别元素对应的既存的名字?br />    2) 在声明的情况下,q种联系定了符合schema的XML文g中元素的名域I间?br />    3) 一个引入了schema的XML文g必须在schemaLocation属性中引用它的目标名域I间?br />    4) M目标和元素真实名域空间间的错配都会作为schema的确认错误进行报告?br />    5) 在我们的例子中,目标名域I间是:http://www.ibm.com。它定义在XSD文g中ƈ在XML文g中被引用了二ơ?/p>

16. 处理XML
{:XML是一U存储和描述数据的方式。我们可能想E序d理这些数据,q儿有二U方式:
    1) 一个XML的解析器可以产生XML数据的代?像DOM的对?Q这些代表可以通过语言(像Java)的APIq行讉K?br />    2) 一个XML/XSL处理器能应用XSL style sheetXML文档转化成Q意文本格?其它XML文g、WML、HTML)?/p>

17. XML解析器之DOM
{:1) DOM: 英文全称为document object model;
    2) Z对象模型的DOMQ解析以后,内存中装载着DOM对象树。这个对象树提供了XML文档l构和内容的所有信?
    3) DOM提供了很多关于DOM树的操作命o;
    4) 对应于一个大XML文档的DOM占用了非常大的内存空间。它创徏了许多小的生命周期不长的对象Q这lJVM内存理pȝ带来了很大的压力?br />    5) DOM最适合于在内存中导航ƈ处理XML文档的结构和内容?/p>

18. XML解析器之SAX
{:1) SAX是英文simple API for XML的羃写,它是事g驱动?
    2) 通过Java代码中与SAX事g的对应Q你可以~写ZXML的数据驱动的E序;
    3) SAX允许XML数据只在一ơ传送中对应到指定的对象模型;
    4) SAX~程模式被认为很ȝ因ؓ它们不能在数据间D;
    5) SAX非常适合直接的,映射到指定问题域只传送一ơ的对象模型;

19. XML解析器之JDOM
{:1) JDOM通过一树状l构提供Java讉KXML文档的能力,像DOM一栗?br />    2) 与DOM不同的是QJDOM专ؓJava设计Q比DOM提供更ؓ直接和容易地使用API的能力?br />    3) JDOM是由Brett McLaughlin和Jason Hunter发动的一个开源项目?/p>

20. 解析器实?br />{:存在很多解析器实现。例如,Xerces是Apache的一个开源项目,它基于早期IBM的一个称为XML4J的解析器?/p>

21. XML/XSL处理?br />{:1) XSL(eXtensible style sheet language)允许真正的内容和表现形式的分?
    2) XSL它本w也是XML格式Q它׃部分l成Q?br />       . XPath: XML路径语言Q在XML文档之内定位信息的标准方式,用于在XML文档中访问文本数据、元素、属性以及其他信息?br />       . XSL-T: 是XSL的副产品Q其以一U标准方式将格式化应用到XML文档。一斚wQ它可以文档变换成XSL-FO重现Q另一斚wQ它可以其变换成其他XML抽象Q也可以变换成其他重现表C?br />       . XSL-FO: XSL格式化对?br />    3) q儿有一个Apachel织对XSL的开源实现叫做XalanQ它ZLotus的早期XSL实现?/p>

22. ȝ
{:1) XML代表信息而非格式Q它使数据便携?br />    2) XML处理和传输提供以数据应用不同语义和Ş式表现的能力?br />    3) XML发展得很快,XML的用一直在高速地增长。例如,XML是Web服务的一基性技术?/p>

DTD和Schema

1.  XML和B2B
{:1) 通过XMLQ金融信息可通过互联|进行交?
    2) XML正成为金融信息通过互联|交换的主要语言。许多B2B应用E序正在开发中?/p>

2. XMLQ创建新语言
{:1) XML是WAP和WML之母;
    2) WML(Wireless Markup language), 用于标记手持讑֤(像手?上互联网应用E序Q用XML写成?/p>

3. 关于XMLq没什么特别的
{:1) XMLq没什么特别的Q就是一些用括hLXML标记的纯文本文g?br />    2) 可处理纯文本文g的Y件同栯处理XML。在一个简单的文本~辑器中QXML标记可见且不会特别地处理?br />    3) 在一个XML敏感的应用程序中QXML标记能特别地处理。标C许能或者不可见Q或者是一个功能,q依赖于应用E序?/p>

4. XML元素的关p?br />{:1) 元素以父子关pȝ互联p?
    2) 为理解XML术语Q你应该知道XML元素命名间的联系以及元素内容是如何描q的?/p>

5.  元素的内?br />{:1) 元素可有不同的内容类?
    2) 一个元素包括从元素开始标记到元素l束标记间的所有东?
    3) 一个元素可有元素内宏V؜合内宏V简单内Ҏ者空内容。一个元素也可有属性?/p>

6. 元素命名
{:XML元素必须遵守q些命名规则Q?br />    1) 名称可包括字母、数字以及其它字W?
       . 名称不能以数字开?
       . 不能以字母xml(或XML或Xml)开?
       . 名称不能包括I隔;
    2) 当你“发明”元素名U时h意ƈ遵定q些单的的规则:
       . M名称都可以用,但名字尽量富有描q性。名UC各词间以下划U分隔的形式很棒?br />       . 名称应该短而简单,?lt;book_title>而不是:<the_title_of_the_book>?/p>

7.  XML属?br />{:1) XML元素可以像HTML一样在开始标C带有属性?br />    2) 属性提供不是数据的信息?/p>

8.  引号cd
{:1) 属性值必L在引号内Q要么是单引可么是双引受以一个h的性别举例Qh的标记可写成Q?br />       <person sex="female">或?br />       <person sex='female'>
    2) 双引h最常用的,但有?假如q个属性值本w包括引?有必要用单引号。例如:
       <gangster name='George "Shotgun" Ziegler'>
    3) 数据可存储于子元素或属性中?br />    4) 关于何时使用属性、何时用子元素q没有什么规则。在HTML使用属性非常方便,但在XML中你应尽量避免它们。假如信息像数据的话使用子元素吧?/p>

9.  避免使用属性?
{:1) 使用属性存在一些问题:
       . 属性不能包括多个|但子元素?
       . 属性对未来的变化不Ҏ扩展;
       . 属性不能描q结构,但子元素?
       . 属性用程序代码操作困隑־?
       . 属性gҎ使用DTD试;
    2) 假如你用属性作为数据的容器Q你得到的将是难于阅dl护的文档。用元素描q数据,只在当信息与数据无关时才使用属性?/p>

10. “有效的”XML文档
{:一个“有效的”XML文档是一个“结构良好”的XML文档Q同样遵守DTD?/p>

11. DTD和Schema
{:1) 一个DTD定义了一个XML文档元素的合法性?br />    2) DTD的目的是定义XML文档的有效构建块。它用一个有效元素的列表定义了文档结构?br />    3) XSchema是一个XML文档Q用来代替DTD?/p>

12. 错误会中止?br />{:1) XML文档的错误将会中止当前XMLE序?br />    2) W3C的XML规范规定Q假如发C个确定的错误Q程序不应该l箋处理当前XML文档。原因在于XML软g应该Ҏ写,所有XML文档应该一致?br />    3) 在HTML中,它可能创建带有很多错误的文档。一个主要的原因在于HTML览器非常大Q在它们到HTML错误时它有自q方式L定这份文档应该像什么?/p>

13. XML内嵌于HTML?br />{:1) 非法定的<xml>标记使XML数据内嵌于HTML中?br />    2) XML数据能直接内嵌入HTML文g中,如:
       <xml id="note"><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note></xml>
       或者作Z个单独的XML文g以下列方式内嵌:
       <xml id="note" src="note.xml"></xml>
       注意<xml>标记是HTML元素Q而不是XML元素?/p>

14. 数据l定
{:数据岛能l定到HTML元素。在下面的例子中Q一个ID为“cdcat”的XML数据岛通过一个外在的XML文g装蝲q来。一个HTML表格通过数据源属性绑定到数据Q最后表数据属性通过span内一数据字段属性绑定到XML数据?br />    <html><body>
    <xml id="cdcat" src="cd_catalog.xml"></xml>
    <table border="1" datasrc="#cdcat">
      <tr>
        <td><span datafld="ARTIST"></span></td>
        <td><span datafld="TITLE"></span></td>
      </tr>
    </table>
    </body>
    </html>

15. 名域I间属?br />{:1) 名域I间属性置于元素的开始标CQ它的语法如下:
       xmlns:namespace-prefix="namespace"
    2) 当一个元素的开始标记定义了一个名域空_所有的带有相同前缀的子元素都和q个名域I间相联p?
    3) 注意到那个地址用于识别名域I间Q而不是用于解析器L信息。唯一的目的是l名域空间一个唯一的名字?/p>

16. l一资源标识W?URI)
{:1) 一个URI是一个用来确定网l资源的字符丌Ӏ最常用的URI是URLQ它用来标识一个互联网域名地址。另一U不太普遍的cd是URN。在我们的范例中Q我们仅使用URL?br />    2) ׃我们的设备范例用了一个互联网地址标识它的名域I间Q我们可信它是唯一的?/p>

17. DTD有关介绍
{:1) DTD的目的是验证XML文档的有效性,它用一个有效元素的列表定义了文档的l构?br />    2) 一个DTD可以声明在你XML文档的内容,也可作ؓ一个外部引用?/p>

18. 内置DOCTYPE声明
{:假如DTD声明在XML源文件内Q它使用以下语法装在DOCTYPE定义?
    <?xml version="1.0"?>
    <!DOCTYPE note[                                 <!--定义q是一个notecd的文?->
      <!ELEMENT note (to,from,heading,body)>        <!--定义note元素的四个子元素-->
      <!ELEMENT to (#PCDATA)>                       <!--定义to元素的类型ؓ#PCDATA"-->
      <!ELEMENT from (#PCDATA)>                     <!--定义from元素的类型ؓ#PCDATA"-->
      <!ELEMENT heading (#PCDATA)>
      <!ELEMENT body (#PCDATA)>
    ]>
    <note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

19. 外置DOCTYPE声明
{:假如DTD对于你XML源文件而言是一个外在文Ӟ它装入XML源文件的语法如下Q?br />    <!DOCTYPE root-element SYSTEM "filename">
    范例Q?br />    <?xml version="1.0"?>
    <!DOCTYPE note SYSTEM "note.dtd">
    <note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>     

20. Z么用DTDQ?br />{:1) 通过DTDQ每个XML文g可以有一个它格式的描q?
    2) 通过DTDQ彼此独立的l织可以使用共同的标准交换数?
    3) 你的应用E序可以使用一个标准的DTD去验证你从外部接收到的数据是否有?
    4) 你同栯使用DTD去验证你自己的数据?/p>

21. XML文档的构建块
{:从DTD的观Ҏ看,所有的XML文档(以及HTML文档)都由以下单的构徏块组成:
    . Elements
    . Tags
    . Attributes
    . PCDATA
    . CDATA

22. 元素
{:元素是XML和HTML文档的主要构建块;

23. 标签
{:标签用于标记元素Q一个开始标{标C元素的开始,一个结束标{标C元素的结?

24. 属?br />{:属性提供了关于属性的额外信息。属性一般置于元素的开始标{ֆ。属性一般以名称/值对形式出现?/p>

25. PCDATA
{:1) PCDATA是解析字W数?parsed character data)的羃写?br />    2) 字符数据看作是XML元素开始标{֒l束标签间找到的文本。PCDATA是将会被解析器解析的文本。文本中的标{ְ会作为标记处理?/p>

26. CDATA
{:1) CDATA同样是字W数?
    2) CDATA是不会被解析器解析的文本。文本内的标{ְ不会被作为标记处理,文本内的实体不会展开?/p>

27. 声明一个元?br />{:在一个DTD中,XML元素声明为element。一个element声明有如下语法:
    <!ELEMENT element-name category> 或?br />    <!ELEMENT element-name (element-content)>

28. I元?br />{:I元素的category关键字声明ؓEMPTY:
    <!ELEMENT element-name EMPTY>
    . DTD范例Q?lt;!ELEMENT br EMPTY>
    . XML范例Q?lt;br/>

29. 只有一个字W数据的元素
{:只有一个字W数据的元素在圆括号内声?PCDATA
    <!ELEMENT element-name (#PCDATA)>
    范例Q?br />    <!ELEMENT from (#PCDATA)>

30. 带有子元素的元素
{:语法Q?lt;!ELEMENT element-name(child-element-name)>或?lt;!ELEMENT element-name(child-element-name,child-element-name,...)
    范例Q?lt;!ELEMENT note(to, from, heading, body)>
    当子元素以逗号分隔的序列Ş式声明的时候,子元素必M相同的序列出现在文档中。对于一个完整的声明Q子元素也必d明。子元素也可以有子元素。完整的声明可能是:
    <!ELEMENT note     (to, from, heading, body)>
    <!ELEMENT to       (#PCDATA)>
    <!ELEMENT from     (#PCDATA)>
    <!ELEMENT heading  (#PCDATA)>
    <!ELEMENT body     (#PCDATA)>

31. 相同元素出现一?br />{:<!ELEMENT element-name (child-name)>
    范例Q?br />    <!ELEMENT note(message)>
    上面的声明范例声明子元素message只能在note元素中出Cơ?/p>

32. 过出现一?br />{:<!ELEMENT element-name(child-name+)>
    范例Q?br />    <!ELEMENT note (message+)>
    ?”号表示子元素message必须在“note”中出现一臛_ơ?/p>

33. 出现O臛_?br />{:<!ELEMENT element-name (child-name*)>
    范例Q?br />    <!ELEMENT note(message*)>
    ?”号表示子元素message必须在“note”中出现一臛_ơ。  ?

34. 出现O??br />{:<!ELEMENT element-name (child-name?)>
    范例Q?br />    <!ELEMENT note(message?)>
    ?”号表示子元素message必须在“note”中出现一臛_ơ?/p>

35. 声明可选的内容
{:<!ELEMENT note (to,from,header,(message|body))>

36. 声明混合的内?br />{:<!ELEMENT note (#PCDATA|to|from|header|message)*>
    可以有由L多的解析字符和元?to、from、header、message)l成的؜合内宏V?br />    . #PCDATA必须是该l中的第一个标受该l必LL选择而不是序列。其他组成必L元素cd?从不加括Ll?。末W号必须L星号(*)Q而决不能是加?+)?/p>

37. Schema和XSD
{:1) XML Schema是XML格式的DTD的替代品?br />    2) 一个XML schema描述了一份XML文档的结构?br />    3) XML Schema languageUCؓXSD?/p>

38. XML Schema是什么?
{:1) XML Schema的目的是定义XML文档合法的构建块Q就像DTD一栗?br />    2) 一个XML Schema:
       . 定义了可出现在文档中的元?
       . 定义了可出现在文档中的属?
       . 定义了哪些元素是子元?
       . 定义了子元素的顺?
       . 定义了子元素的数?
       . 定义了一个子元素是否为空或是否能包含文本;
       . 定义了元素和属性的数据cd;
       . 定义了默认和固定的元素倹{?/p>

39. XML Schemas, DTD的任?br />{:我们认ؓ不久的将来XML Schemas作ؓDTD的替代品会用在大多数Web应用E序中,理由是:
    . XML Schemas可扩?
    . XML Schemas比DTD更丰富以及更有用;
    . XML Schemas用XML~写;
    . XML Schemas支持数据cd;
    . XML Schemas支持名域I间;

40. XML Schemas, W3Cl织推荐
{:1) XML Schema最初由微Y提出Q但是正式由W3Cl织推荐是在2001q??
    2) q个规范现在是稳定的Qƈ作ؓW3C的成员?/p>

41. SchemaҎ据类型的支持
{:1) XML Schema最显著的增强是Ҏ据类型的支持;
    2) Ҏ据类型的支持使得Q?br />       . 更易描述允许的文档内?
       . 更易验证数据的正?
       . 更易和来自于数据库的数据工作;
       . 更易于定义数据的限制;2
       . 更易于定义数据的格式;
       . 更易于在不同数据cd间{?

44. XML Schema使用XML语法
{:1) 关于XML Schema的另外一个显著的增加是他们用XML~写?br />    2) 因ؓXML Schemas用XML~写Q?br />       . 不必重新学习其它语言;
       . 可以使用XML~辑器编辑Schema文g;
       . 可以使用XML解析器解析你的Schema文g;
       . 可以通过XML DOM操作你的Schema文g;
       . 可以通过XSLT转换你的Schema文g;

2004-11-1     星期一      ?/p>

43. XML Schemas安全的数据交?br />{:1) 当数据从发送者发送到接收者,本质上双斚w知道内容的样?
    2) 通过XML SchemasQ发送者以接收者理解的方式描述数据;
    3) 一个类g?999-03-11”的数据在某些城市会译?1?日而在另外一些城市会译??1日,但是一个XML元素的数据类型定义ؓcM于:
       <date type="date">1999-03-11</date>
       q样大家都能理解内容。因为XML的data数据cd格式为:CCYY-MM-DD?/p>

44. XML Schemas是扩展的
{? 1) XML Schemas是扩展的Q就像XMLQ因Z们是用XML写的?br />    2) 通过一个扩展的Schema定义Q你可以Q?br />       . 在其它Schemas中重用你的Schema;
       . 从标准类型中创徏你自q数据cd;
       . 相同的文档引用多个schemas;
 
45. l构良好q不?br />{:1) l构良好的XML文档W合XML语法规则Q?br />       . 必须以XML声明开?
       . 必须有一个唯一的根元素;
       . 所有开始标{ֿd配结束标{?
       . XML标签大小写敏?
       . 所有元素必d?br />       . 所有元素必d套适当;
       . 所有属性值必ȝ引号引v?
    2) 即便文档l构良好Q他们依然可能出现错误,而这些错误可能出C重的l果?/p>

46. 一个简单的XML文档
{:看看q个名称为note.xml的简单XML文档:
    <?xml version = "1.0 " ?>
    <note>
       <to>Tove</to>
       <from>Jani</from>
       <heading>Reminder</heading>
       <body>Don't forget me this weekend!</body>
    </note>

47. 一个简单的DTD
{:q个名称为note.dtd的简单DTD定义了上面note.xml的元素:
    <!ELEMENT     note    (to, from, heading, body)>
    <!ELEMENT     to      (#PCDATA)>
    <!ELEMENT     from    (#PCDATA)>
    <!ELEMENT     heading (#PCDATA)>
    <!ELEMENT     body    (#PCDATA)>
    行一定义了note元素有四个子元素Q行二定义了to元素的类型ؓ?PCDATA?行三定义了from元素的类型ؓ?PCDATA?如此{等

48. 一个简单的XML Schema
{:q个名称为note.xsd的简单XML Schema定义了上面note.xml的元素:
    <?xml version="1.0"?>
    <xs:schema xmlns:xs="        targetNamespace="        xmlns="        elementFormDefault="qualified">
    <xs:element name="note">
        <xs:complexType>
             <xs:sequence>
                  <xs:element name="to" type="xs:string"/>
                  <xs:element name="from" type="xs:string"/>
                  <xs:element name="heading" type="xs:string"/>
                  <xs:element name="body" type="xs:string"/>      
             </xs:sequence>
        </xs:complexType>
    </xs:element>
    </xs:schema>
    note元素是复杂类型,因ؓ它包含了其它元素。其它元?to,from,heading,body)是简单类型,因ؓ他们没有包括其它元素。你在下面学到更多有关单和复杂cd的知识?br />    1) <schema>元素是每个XML Schema的根元素Q?br />       <?xml version="1.0"?><xs:schema>...</xs:schema>
    2) <schema>元素可包含一些属性,一个schema描述通常看上dq样Q?br />       <?xml version="1.0"?>
       <xs:schema xmlns:xs="
           targetNamespace="           xmlns="           elementFormDefault="qualified">
       ...
       </xs:schema>
    3) xmlns="
    4) elementFormDefault="qualified"说明用这个schema声明的XML实例文档中Q何元素必ȝ合这个名域空间?br />    5) xmlns:xs="

49. 一个XML Schema的引?br />{:q䆾XML文档有XML Schema的一个引用:
    <?xml version="1.0"?>
       <note xmlns="
             xmlns:xsi="             xsi:schemaLocation="         <to>Tove</to>
         <from>Jani</from>
         <heading>Reminder</heading>
         <body>Don't forget me this weekend!</body>
    </note>
    1) xmlns="
    2) 一旦你有了有效的XML Schema实例名域I间Qxmlns:xsi="

50. XSD单元?br />{:1) 一个简单元素是一个内容仅为文本的XML元素。它不能包含M其它属性和元素?br />    2) 无论如何Q“仅为文本”限制是一U误对{文本可以是很多不同cd。它可以是包含在XML Schema定义中的一U类型,也可以是一U你自行定义的一U类型?br />    3) Z限制一个数据的内容Q你也可以加入约束。数据需要匹配一个定义好的类型?/p>

51. 怎样定义一个简单的元素Q?br />{:定义一个简单元素的语法是:
       <xs:element name="xxx" type="yyy"/>
       xxx是元素名Qyyy是元素的数据cd名。这儿是一些简单元素:
       <lastname>Refsnes</lastname>
       <age>34</age>
       <dateborn>1968-03-27</dateborn>
       下面是对应的元素定义Q?br />       <xs:element name="lastname" type="xs:string"/>
       <xs:element name="age" type="xs:integer"/>
       <xs:element name="dateborn" type="xs:date"/>

52. 一般的XML Schema数据cd
{:XML Schema有许多内|的数据cd。这儿是大部分一般类型的列表Q?br />       xs:string
       xs:decimal
       xs:integer
       xs:boolean
       xs:date
       xs:time

53. 默认和固定?br />{:1) 单元素可以有一个默认或固定|
    2) 当没有指定值时Q一个默认的D动分配给元素。在q个例子中,默认gؓredQ?br />       <xs:element name="color" type="xs:string" default="red"/>
    3) 一个固定g是自动分配给元素的,你不能指定其它倹{在q个例子中,默认gؓredQ?br />       <xs:element name="color" type="xs:string" fixed="red"/>

XML处理(解析)?/p>

1.  XML处理(解析)?br />{:1) 一个XML处理器可以是验证或非验证解析器?br />    2) ҎXML1.0规范Q?br />       . 一个验证解析器必须阅读整个DTDq检验XML是否q背于DTD?br />       . 一个非验证解析器可以不需要DTD?br />       . 二种解析器都查XML文档是否l构良好?/p>

2.  验证q是非验证?
{:1) 大多数解析器能运行于验证及非验证模式;
    2) XML文档的验证在软g开发生命周期的开发和试阶段臛_重要。而在q行阶段验证有一个性能上的消费?br />    3) 在品中Q当一个系l数据的可靠性已l徏立,验证功能可关掉?br />    4) 一些解析器默认是非验证状态?/p>

3.  Tree-based解析?br />{:1) 在tree-based解析Ӟ解析器试图ؓ整个文档建立{架构;
    2) 对于一个非常大的文档,q非常占用内存资?
    3) 元素和属性只有在整个文档解析后才可用;
    4) 一旦在内存中创Z文档Q它p被遍历和q行改变;
    5) 一个DOM解析器是一个tree-based解析器的例子?/p>

4.  Event-based解析?br />{:1) 一旦解析器遇到文档的标{,便可Ҏ档进行处?
    2) q是一个以数据Z心的XML格式视图;
    3) 无论何时遇到元素或标讎ͼ便能够进行处?
    4) 一旦标记过了,便不能返?
    5) 解析器返回元素,它的属性以及内?
    6) event-based解析器从不试囑־立数据的l构Q因此它内存需求较?br />    7) 在只惛_文档中寻扑֐适元素的情况下,q种解析器非常有?
    8) 一个SAX解析器是一个event-based解析器的例子?/p>

5.  最行的XML解析?br />{:1) 市场上最行的的XML解析器是Apache的Xerces;
    2) Xerces提供了XML的解析和产生Q对Java和C++都有效。它实现了W3C XML和DOM标准Q以及SAX标准;
    3) Xerces也支持XML Schema;
    4) q个解析器已q入IBM的系列?WebSphereQWSAD和DB2)?/p>

6.  XML4J和XML4C
{:1) 另一个解析器是IBM的XML4J和XML4C;
    2) XML4J是确认型的XML解析器,完全用Java~写;
    3) XML4C是面向C++的确认型的XML解析?
    4) 它提供了解析、生、操作以及验证XML文档的类;
    5) 二种解析器均支持XML1.0以及相关标准(DOM1.0、SAX1.0、DOM2.0);
    6) XML4J包含了DOM 2的实玎ͼSAX 2的实C及W3C schema的部分,但这些均处于试验阶段?/p>

7.  XML应用E序
{:1) 如今l织对于商业的快速变化带来了柔性系l架构的新需?
    2) pȝ应该功能强大Q可升、健壮,最最重要的是要能满新的商业需?
    3) 应用E序通常需要支持多U客L?
    4) Web应用E序占统d位的客户端到现在为止是浏览器;
    5) 蜂窝电话、PDA以及其它l端讑֤Q都h不同的XML能力?/p>

8.  XSLT
{:1) XSLT设计用于XML数据转化为其它XML格式;
    2) 一个XSLT处理器,例如Apache的Xalan, 用一臛_个XSLT stylesheet(XML格式文档)完成转换;
    3) 在一个基于XSLT以及Java的Web应用E序, XML数据Z数据库查询动态地产生?/p>

9.  XMLT
{:1) 即有些数据库可数据导出成XML格式Q我们通常自行写Java代码用JDBC数据导ZؓXML;
    2) Z在大多数览器上能显CXML数据Q它必须首先转化为HTML;
    3) XML数据作ؓ一个输入反馈给处理器,XSLT stylesheet作ؓW二个输入。输出直接作Z个HTML传送到Web览?
    4) XSLT stylesheet产生了HTML格式的输出,而XML提供了原始的数据;

10. SAX2
{:1) SAX代表Simple API for XML;
    2) SAX是Java中有关XML的第一个采用的API;
    3) SAX API是event-based APIQ通过回调Ҏ处理解析事g;
    4) SAX通常不徏立一个内在的?
    5) q些event-driven API用于讉KXML文档q从中获取信?
    6) 它们不能用于操作XML文档的内在结?
    7) 当XML文档被解析时Q应用程序用SAX接收各种解析事g的信?
    8) 应用E序实现q些不同事g的处理方?
    9) 你可处理比系l内存大得多的文档,q且通过回调事g的处理方法你可以构徏数据的结构?/p>

11. SAX应用E序lg
{:        XML Application
                 ??br />                SAX API
                 ??br />               XML Parser
                  ?br />              XML Document

12. SAX2的类和接?br />{:ContentHandler接口被认为是最重要的接口,它的Ҏ包括Q?br />    startDocument(): 只调用一?
    startElement(): 每个元素标签调用一?
    characters():
    endElement(): 每个元素标签调用一?
    endDocument(): 文档l束调用一ơ?br />    1) SAX提供了一个实CContentHandler接口的类;
    2) 使用DefaultHandler, 创徏一个它的子cdƈ覆盖你感兴趣的方法。而其它方法可以忽略掉Q因Z们只是空Ҏ?/p>

13. XML名域I间支持
{:1) SAX2增加了对XML名域I间的支?
    2) 每个SAX2 XMLReader接口的实现默认地支持名域I间处理?br />    3) 通过名域I间Q元素和属性有二部分名UͼURI和localName, 有时UCؓ通用或扩展名U?br />    4) 名域I间支持影响到ContentHandler和属性接口?/p>

14. 属?br />{:1) 对于属性来_你可以通过getValueҎL到属性名U的?
    2) 通过getURI和getLocalNameҎQ你可以得到名域I间的URI或属性的本地名称;

15. DefaultHandlerc?br />{:1) Z使用方便QSAX提供了一个称为DefaultHandler的类Q它实现了ContentHandler接口;
    2) 使用DefaultHandlerӞ创徏一个子cdƈoverride你感兴趣的方?
    3) 其它Ҏ可安全地忽略Q因Z们只是空Ҏ;

16. DefaultHandlercȝҎ
{:1) startDocument
       public void startDocument() throws SAXException
       . 在解析期_startDocument()只被调用一?
       . 接收文档开始的事g;
       . 一般这个方法不做什么事Q也可以写一些特定的操作;
    2) endDocument
       public void endDocument() throws SAXException
       . 在解析期_endDocument()只被调用一?
       . 接收文档l束的事?
       . 一般这个方法不做什么事Q也可以写一些特定的操作;
    3) startElement
       public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, Attributes attributes) throws SAXException
       . XML中每个标{调用一ơ这个方?
       . 接收元素开始的事g;
       . 一般这个方法不做什么事Q也可以写一些特定的操作;
       . uri: 名域I间的URIQ如果元素没有名域空间或者名域空间处理不被执行则可用空字符?
    4) endElement
       public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName) throws SAXException
       . XML中每个标{调用一ơ这个方?
       . 接收元素l束的事?
       . 一般这个方法不做什么事Q也可以写一些特定的操作;
    5) characters
       public void characters(char[] ch, int start, int length) throws SAXExcepiton

17. DOM
{:1) XML是一U描q树形结构数据的语言QDOM了一pd接口讉KXML文档的树形结?
    2) DOM详细说明了XML文档是如何表Cؓ对象;
    3) 不同于SAXQDOM也允许创建和修改XML文档的内?
    4) DOM level2, 包含了创Z份文档的接口Q从一份文档导入一个节点到另外一份文档,支持XML名域I间;

18. DOMl构体系
{:1) DOM提供了一pd标准对象接口QXML解析器用这些接口将文档内容提供l一个客LE序;
    2) q些接口提供了访问原始文档的所有信?
    3) 遍历树Şl构的基本接口是NodeQ它定义了必要的Ҏ遍历和修改XML文档的树形结构。这些方法包括getting, deleting, modifying以及inserting?br />    4) 每个详细的文档结构在DOM中由下面接口之一表现Q?br />       . Document
       . Attr
       . Element
       . Text
       . Comment
       . CDATASection
       . DocumentType
       . Notation
       . Entity
       . EntityReference
       . ProcessingInstruction
   5) q些专门的接口都l承了Node接口的基本属性和Ҏ
   6) 他们都提供了专门的访问方式访问XML文档目相关的唯一信息;
   7) 产生出的特定节点存储于一个有父子以及同链接l构的一个列表中;
   8) q个链接l构可通过节点接口使用父、子以及同链接关系q行遍历;

19. Document
{:1) Document代表了整个文档以及定义了创徏元素、属性、注释等{方法的接口;
    2) 一个节点的属性用元素接口方法操?
    3) 应该注意到当一个DOM应用E序dXML文档形成相应的对象后Q该对象只保存在内存?
    4) 改变内存中一个DOM对象q没有自动修改原始文?

20. XML名域I间支持
{:1) DOM Level2支持XML名域I间Q它允许创徏和修改名域空间相关的元素和属?
    2) 节点固定地绑定到创徏时相关的名域I间URI。因此,使用DOM在一个文档里Ud节点Q不会引起它的名域空间前~或名域空间URI的变化?br />    3) 名域I间验证对于解析器而言q强制QDOM应用E序是可靠的?/p>

 

 

 


    


    


      
 

 


 



liulang 2006-09-25 23:14 发表评论
]]>
վ֩ģ壺 Ů18ëƬaëƬƵ| þþѵľƷ| ձ˻ʿxxxxƵ| ޵Ӱ߲| 8xƵ| ޾ƷŮþþþ9999| 91avƵ߹ۿ| С˵ͼƬƵ| AVַ߹ۿ| ഺɫУ԰С˵| վѹۿ| ҹWWWʪˬ | ëƬa߹ۿ67194| ƵĻ| þþþþþƵ| պŷһ | ޹Ʒһ| ɫƬѿ| þҹɫƷav| þ㽶߿| һƵ| ߲Ѳ| ѾþþƷѾѾ| Ƶ߲| ˻ƶվƵ | һAVѲ| һ| 777ӰƬѹۿ| ޵һվ| ޳߲va| avվ| ޹˾þþƷ| ҹƬ߹ۿӰԺ| ѹۿ߽Ƭ| ҹav2019| ˳ɵӰվƷ | ŮƵվ| avŮӰ| ѹۿСˮ| þþþùƷѿ| AVɫɫWWW|