ASP教程之XML的界说
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。xml读者能够会感觉在一本A S P书中讲述本章内容不太适合,现实上扩大标志言语( e X t e n s i b l eMarkup Language,X M L )正在愈来愈深切咱们的生涯,这是一件功德。X M L可以逾越一切界限,要取得真正自力的、跨平台的数据传送格局, X M L多是独一的选择。
这类说法能够会使人感应懊丧,但在盘算机业内X M L几近失掉了一切大型(或小型)开辟厂商的承认。尺度能到达如斯的一致,曩昔也只要在T C P / I P协定被采用为收集协定的尺度时呈现过这类景象。X M L是一种国际尺度,受一个工业尺度整体的掌握,失掉全球的普遍撑持,并成为为数不多的只要一个尺度的手艺之一。
读者能够会感觉很奇异,现今世界各类尺度的变更就像季候更替一样频仍,即便是单个尺度也被多个公司分红数段以寻求竞争优势。但是, X M L倒是个破例,由于它的确取得了很多公司的普遍撑持。使人惊异的是一切的人仿佛都在勉力完成并遵守这类独一的尺度。假如回忆一下曩昔给工业界形成那末多费事的有关尺度成绩的争辩, X M L就更使人惊异了。
既然X M L是一个被广泛完成的尺度,因而,在A S P中利用它也很复杂。假如利用A S P创立一个We b站点,那末很有能够会利用某种模式的数据库来存储数据。而X M L是另外一种存储数据的格局,其使用也愈来愈普遍,因而必需把握它。固然X M L的功效不但于此。
虽然立即失掉周全撑持还不大能够,但咱们已看到X M L撑持的确已引入到I E和A D O中。坚苦在于I E和A D O的开展速度纷歧致,所以它们之间的交互还不敷幻想,故本章没有引见人们所但愿的有关数据传输的全能手艺。在写这本书时, I E和A D O的联合还不是严密,但它们都在不休改善。所以虽然如今还没有新版本宣布的详细动静,但A D O和I E未来一定会更好地联合。
在给X M L一个明白的界说之前,最好懂得甚么是标志言语。起首这里有一个成绩,由于“言语”这个术语用得其实不得当。实践上, X M L并非编程言语,而V B或C + +才是真实的编程言语,X M L只是界说了若何标志文本或文档的一套划定规矩。那末“标志”又是指甚么?标志一个文档是目标识出文档的某些局部有特别寄义的进程。这能够难以了解,咱们举一个有关超文本标志言语(Hypertext Markup Language,H T M L )的例子,由于“H T M L”中的“M”就代表了标志( M a r k u p )。
H T M L是一套划定文档结构的标志。H T M L包括了一些事后界说好的标志,每种标志都有各自的寄义,例如:
这是一个含有大批标志的文本。文本以< B O D Y >标志入手下手,在H T M L里,该标志暗示文档主体的入手下手,主体局部以< / B O D Y >标志停止。在这个文档的主体内有题目,放在< H 1 >和< / H 1 >标志之间;别的还有一些粗体文本,放在< B >和< / B >标志之间。这些文本标志为有特别寄义的文本。
你能够注重到下面的例子没有利用格局化这个词。这是经由细心思索的,由于标志和格局化并非一回事。< B O D Y >标志标定的是文档的一块区域,并没有界说任何格局。但是,< B >标志却标定文档的这一块区域用粗体显示。这是由于H T M L中的< B >标志是隐含了指定格局的标志。
所以请记住,标志言语只是一种划定规矩,界说了若何给一篇文档中的特定局部增添特别寄义。这类界说能够会起到很好的格局化感化,但这并非利用标志的独一缘由。
11.1.1 XML和H T M L的不同
虽然X M L和H T M L都利用标志,然而它们是分歧的。个中最次要的区分是X M L专门用来描写文本的布局,而不是用于描写若何显示文本。X M L并没有一套固定的标志,例如:
下面的代码看起来与上一节的H T M L代码不是完整一样吗?假如它是H T M L文档,切实其实一样。假如把其加载到阅读器,以上内容就会显示如图11 - 1所示的了局,其感化仿佛是格局化文档。
然而,假如下面的代码是X M L文档,那末个中的标志就不具有任何寄义,其内容只是申明:
? 有一个名为B O D Y的标志,在这个标志外面有一些文本。
? 有一个名为H 1的标志,在这个标志外面有一些文本。
? 有一个名为B的标志,在这个标志外面有一些文本。
假如以上代码作为一个X M L文档(文件的扩大名为. x m l )加载到I E阅读器中,可以看得十分清晰,其了局如图11 - 2所示。
I E注释该X M L文档并将其显示出来。请注重, I E并没对这个X M L文档做任何处置,仅仅是显示出来罢了。阅读器晓得若何注释H T M L文档,而且晓得若何用标志所界说的格局来显示文档。一样,阅读器也晓得若何注释X M L文档,但因为X M L标志不界说格局,所以文档不会失掉格局化,因而原样显示这些标志。
但I E实践上仍是做了一点格局编排,使X M L更容易读了。它把标志分为分歧的条理,所以咱们看到了一套布局化的标志,且I E没有注释这些标志。
迄今为止所学的X M L文档由标志文档某些局部的标志构成。那末X M L利用数据会有甚么成绩呢,再看另外一个例子。这个例子在后面的章节中呈现过,读者会发明X M L在这里非常成心义。
下面的例子中利用了几对分歧的标志。一入手下手,你能够会以为这些标志必定有其寄义。他们都有一个成心义的称号,界说了A u t h o r的一个列表、单个A u t h o r和一些与A u t h o r有关的值。在后面的章节中,这些内容呈现了屡次,当在一个阅读器中检查时,咱们可以把它格局化成一个表来显示。但由于这是X M L,X M L中的标志不代表任何意义,如图11 - 3所示。
可见,这里I E没有对其停止任何处置。所以即便这些标志对咱们来讲是成心义的,但它们对X M L却没有。现实上,这段代码可以写成以下模式:
阅读器只是把这些标志原封不动地显示出来,如图11 - 4所示。
标志可所以你所喜好的恣意符号。固然,一入手下手就给其一个成心义的名字是很直不雅的。X M L的可读性非常强,所以普通利用能描写其内容的标志名字。
在此,已看到X M L由一系列能描写文档各局部的标志构成。在以上利用A u t h o r信息的例子中,利用X M L来描写数据,利用了代表数据字段名的标志名。这就是X M L能作为一种数据互换格局的真正寄义。它是尺度的文本,所以可以很轻易地从一台机械传送到另外一台机械。但它并非一种公用格局,所以任何人都可以读懂,而且假如标志名获得成心义的话, X M L数据就具有“自我描写”的功效。
11.1.2 标志和元素
利用了“标志”这个名字来肯定某些H T M L的标志,好比< B >或< H 1 >。元素是指使用这些标志而构成的一个全体。例如:
因而,一个元素由一个入手下手标志和一个停止标志构成,它们把文本包抄在两头,个中也能够包含其他子元素。这一点很主要,由于这牵扯到一个“模式化的X M L”的概念,个中每个入手下手标志都必需有一个对应的停止标志。这一点与HTML 4.0及其之前的版本分歧,在那些H T M L版本中,某些标志没有停止标志(例如< I M G >和< B R > )和< P >标志。
假如利用X M L来描写数据,有能够在一些域中不包括数据。在这类情形下,标志就为空。在X M L中有两种办法可以界说空标志。第一种办法是利用一个入手下手标志和一个停止标志,但个中没有内容:
模式化的X M L的另外一层寄义是X M L的标志是巨细写敏感的,所以在这类情形下入手下手标志和停止标志必需分歧。这也意味着上面这一行是有效的X M L:
1. 根标志
另外一个需求晓得的术语是根标志。它暗示最外层的标志,一个X M L文档只能有一个根。例如再来看看A u t h o r的例子:
这里的根标志是< A u t h o r s >。由于这里只要一个根标志,故以上表述是正当的。但上面的代码是毛病的:
11.1.3 形式和文档类型界说
咱们一入手下手就声了然X M L标志实践上不代表任何意义,可以给标志取任何名字,但怎样才干晓得甚么类型的标志在文档中是答应利用的?因而必需利用文档类型界说( D o c u m e n tType Definition,D T D )或形式( S c h e m a )。形式和D T D的功效几近是一样的,都划定了哪些元素在文档中可使用,并可以把一个模式化的X M L文档改变为一个无效的X M L文档。也就是说它被准确标志(即有优秀模式),而且只包括答应的元素和属性。
既用D T D也用形式的缘由是由于微软感觉D T D在有些中央显得对照愚笨。D T D是一种界说X M L文档布局的文本文件,但D T D自己并非X M L,有完整分歧的语律例则。这就有点失常,所以在这一点上咱们同意微软的概念。假如处置X M L文档,那末界说那些文档的布局也应当是X M L,这就是形式所做的,即形式是D T D的X M L等价物。
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 掌握asp的特性而且一定要知道为什么。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页:
[1]
2