注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骇客归来

ぁ枫あ

 
 
 

日志

 
 

J2ee Tutorial学习笔记(第二章Understanding XML)  

2007-01-27 11:25:08|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一.Introduction to XML:
 1.XML(Extensible Markup Language)是基于文本标记语言,用<>标记数据,成为Tag,但它不象HTML,XML标签确定的是数据,而不是详细的说明这个文件怎么显示,XML主要关系其中的数据.
例:<Message>
     <to> you@yourAddress.com.</to>
     <from>me@myAddress.com</from>
     <subject>XML is Really Cool</subject>
     <text>how many ways is xml cool ?let me count the way
     </text>
     </message>
 这个例子的Tag从整体上确定了这个message.包括其目的地址.发送地址.标题和其内容.像HTML一样<to>...</to>之间决定了XML的数据成分,而<to>...</to> tag又包涵在<message>...</message>中,这种一个Tag包涵另一个Tag可使XML的描述成分等级的数据结构.
2.Tag and Attributes:
    tag自身也可以有其自身的Additional information.包涵在tag自身中
 例:<Message to = "you@yourAddress.com." from= "me@myAddress.com"
     <subject>XML is Really Cool</subject>
     <text>how many ways is xml cool ?let me count the way
     </text>
     </message>
与上例相同,只是它把 to 和 from做进了 message 也就是作为了tag的 additional information可以简化代码,易于理解.
3.Empty Tag A1:html与XML很大的区别在与当一个xml文件很好的形成时,其附加的制约条件也是很多的,其中最重要的就是每个Tag都要有结束Tag,所以在XML中例如</to>的结尾是必不可少的.(另外一个很重要的条件是所有的Tag都是严格嵌套的,也就是你可以<message>...<to>...</to>...</message>但是不可以<message>...<to>...</message>...</to>.这是不允许的.
A2:有时你想建立一个空的tag你可以以 />来结尾 例如:

<Message>
     <to> you@yourAddress.com.</to>
     <from>me@myAddress.com</from>
     <subject>XML is Really Cool</subject>
     <flag/>
     <text>how many ways is xml cool ?let me count the way
     </text>
     </message>
 A3:XML文件注释 以<!--This is a comment--> 注释
 A4:XML prologue:<?xml version="1.0"?>或<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 xml文件都以<?...?>prologue.这里规定了xml文件的标准格式 version=1.0 编码格式用 ISO-8859-1.standalone表明这个文件是否和内部entity相联系或是和外部数据type说明联系.有联系是yes.
 A5:处理说明:<? target instruction to do?>target就是the name of application to do processding.
 A6:为什么XML很重要:
      B1:用于解释文本.要知道xml不是2进制的格式编写的,所以你可以用任何编辑器来编写xml文件,通常xml文件体积都很小,所以允许数据库保存大量的xml数据.
      B2.Data坚定:XML告诉我们有什么样的data.而不是怎样去display it.
      B3.stylability.当显示变得很重要时xml将告诉你怎么样描述data.例如:
            <to>you@yourAddress.com</to>为我们描述了一下事件.1.start a new line.2Display"to"in bold,followed by a space.3.Display the destination datas.
     这些所描述的都是为了 这个意思 To:you@yourAddress.com 告诉我们了送到你的地址去了,更重要得失xml是很自由的,你可以用一种不同的stylesheet来标记你的描述,可以是TEX PDF或者是还没有发明的文本格式.
       B4.Linkablity.在此我们还要感谢HTML,明确了文件与文件之间的联系是越发的重要了.XML确定2种links:mutiple-target links(多目标连接),expanding links.(扩展连接).
       B5.处理方便.上述的那些正规的XML标记语言统一的符号使XML的Process很容易进行,由于XML很严格的标记方法,使XML文件很好的形成,而不会有什么处理差错.但是不标准的标记方法XML是不执行的.
       B6.分等级的XML:XML从它的等级结构使XML文件的访问速度更加的快.因为你只需要加载你想要的东西.
4.XML and specs:Digesting the Alphabet soup
    以上你对XML有了一定的基础了解了.有必要深入XML了解更多的XML相关的缩写格式,它们代表了什么,通用的APIS访问XML文件即是连续的有可以是随机的,2种API分别是.SAX,和DOM.而确保XML的有效性的是DTD.另一种标准的性质是XSL Standard.一个对XML翻译的之际.例如将HTML转换为XML形式或者其他目前未知的新的XML技术,指明文件怎样执行的,还有一个技术就是XML link language specification可是2个XML文件连接.
    还有一些新的技术,XHTML,XML,SMIL,MATHML,SVG....
       C1.Basic standard
            SAX(simple API for XML)你可以理解它为 连续访问协议,这是一个快速执行的机制,可是你在sever上read.write XML DATA ,你可以理解它为事件驱动协议,因为这技术注册一个SAX解释器.此后当这个解释器看到新的XML tag的时候就会反馈响应的方法.
       C2.DOM(Document object model)
             DOM协议将使你的XML文件转换为一个集合的对象时你可以操控对象模型,他是radom access协议的很好的表现,因为你可以修改数据,删除,或插入任何新的数据.
       C3.JDOM和jom4j:在此提出之所以Dom有它的局限性,因为它不提供基于OO的方法,但是JDOM能提供,而且更加容易方便.JDOM是一个更新更清晰的更小的API,当coding style更重要时.JDOM是很不错的选择.
             jdom4j是一个更小的执行更快的API.
       C4.DTD是可选的,可以包括在你的XML文件种,也可以不,但是它能够给与你良好的XML规范.
       C5.XSL(Extensible stylesheet language)
         此处再次强调XML文件指明的是怎样识别DATA而不是关心怎样去显示它,而HTML恰好相反.而XSL包括2个部分(XSTL(transfom standard) XSL-FO(Formating object))XSL-Fo可以让你识别multiple area on pages.且link他们.
       C.6:XSTL (extensible stylesheet language for transformation)而Xpath stanrad is a addressing 机制.
       C6.DTD不是分级的,举一个例子<!ELEMENT mail Address(name,address,zipcode)>
                                                         <!ELEMENT mail Address(#PCDATA)>
        <!ELEMENT zipcode(#PCDATA)>
  正如你所看到的这些说明都是线性的,迫使现对这样以后面对名名相同的元素以相同的名称,如果你想加入这些元素例如<firstname><secondname>时你就需要一个新的标识符.
  container中.
        D1.XML Schema:其标准的可分为2个部分,一部分指定数据之间的关系,(也是最复杂的,一部分另一部分是确认XML内容通过确定其中的元素的数据类型.
 D2.RELEX NG(regular language discripition for xml)
        D3.TREX :Tress regular expression for xml
 D4.SXO :Schema for object-oriented XML
 F1.连接陈述标准:XML linking 中有很多分支:1.XLink是处理XML文件之间的link问题的,这种link的方法可以提供很多很复杂的link'形式,如多文档link,多重link,等.
      2.XMLBase和Xpointer.一般来说xml文件处理都是由文件对文件的处理通过他们的ID.而用Xpointer可以不用通过ID来处理.
      3.XHTML:是XML文档以HTML形式表现出来.
 G1.Knowlage standard:RDF Schema
  5.建立XML文件:这一节你可以学到如何建立XML文件,你可以用文本编辑器来编写自己的xml文件.
           1.用文本编辑器,建立一个名叫sildesample.xml文件
    2.下一步写声明,声明这是一个xml文件,以<?开头,  <? xml version="1.0" encoding='utf-8'?>说明其xml version是1.0的用的是8-bit unicode来编写xml的文件的.
    3.写注释:<!---A sample  Set of slides--!>注释是不会被执行的.
    4.先编写最地层的元素   <? xml version="1.0" encoding='utf-8'?>
                                            <!---A sample  Set of slides--!>
                                                    <slideshow>
          </slideshow>
   5.添加属性:<sildeshow>
                       title="Sample Slide Show"
         data="Data of publication"
         author="yours truly"
         </slideshow>
         6.添加嵌套元素:
                   <slideshow
     ...
     >
     <!---TITLE SLIDE --->
     <slide type="all">
        <title> Wake up to wonder weidgets!</title>
        </slide>
        </slideshow>
  7.添加HTML形式的文本,以HTML形式的文本都是用<em>来标识的
<?xml version='1.0' encoding='utf-8'?>

<!--  A SAMPLE set of slides  -->

<slideshow
    title="Sample Slide Show"
    date="Date of publication"
    author="Yours Truly"
    >

    <!-- TITLE SLIDE -->
    <slide type="all">
      <title>Wake up to WonderWidgets!</title>
    </slide>

    <!-- OVERVIEW -->
    <slide type="all">
      <title>Overview</title>
      <item>Why <em>WonderWidgets</em> are great</item>
      <item/>
      <item>Who <em>buys</em> WonderWidgets</item>
    </slide>

</slideshow>
8.完整代码:  <?xml version="1.0" encoding="utf-8" ?>
- <!--   A SAMPLE set of slides 
  -->
- <slideshow title="Sample Slide Show" date="Date of publication" author="Yours Truly">
- <!--  TITLE SLIDE
  -->
- <slide type="all">
  <title>Wake up to WonderWidgets!</title>
  </slide>
- <!--  OVERVIEW
  -->
- <slide type="all">
  <title>Overview</title>
- <item>
  Why
  <em>WonderWidgets</em>
  are great
  </item>
  <item />
- <item>
  Who
  <em>buys</em>
  WonderWidgets
  </item>
  </slide>
  </slideshow>
9.建立DTD(Document Type Definition):现在我们学习怎样建立,首先建立一个名为slideshow的文件,写入XML声明 如下:
<?xml version='1.0' encoding='utf-8'?>
<!--DTD for a simple "slide show"---!> 然后写入一下语句声明,slide元素包涵在slide元素中
<! ELEMENT  slideshow(slide)+>
   以此例你可以看出DTD文件以<!开头,其后跟着的是标签名(ELMENT)其后是要定义的元素的名字(slideshow)
10.定义文本和嵌套元素 
<!ELEMENT slideshow(slide+)>
<!ELELMET slide(tiltle ,item*)>
<!ELEMTET slilde(#PCDATA)>
<!ELEMENT slide(#PCDATA | item)*>
第二行说明slide中有title跟随着0个或更多的item,第三行说明title中包括PCDATA剖析器.第四行的 | 标识符说明"或"的关系,在这种情况下PCDATA或item都是可用的 将文件保存为 slidesamplela.dtd
11.在DTD中定义属性和实体: 定义属性: 在我们刚才的例子中添加以下代码
  <!ATTLIST slideshow
    title    CDATA #REQUIRED
    data  CDATA #IMPLIED
    author CDATA  "unknow"
    >
    <!ELMENET slide(title,item*)>
    ATTLIST 后跟的就是我们定义的slideshow 这个文件

  评论这张
 
阅读(87)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018