分享
 
 
 

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

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

一.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 这个文件

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有