当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>JAVA网络编程

新手入门之浅谈XML和HTML的关系


  对于XML我是初学者。以前也只是向往和略微听说过它的作用。这学期开了E-Business的课程,也要讲XML的。所以就这次作业做了一些资料的参考和对照,发现了很多有意思的东西。拿出来跟大家共勉。因为也不是自己应用过的体会,所以有不准确和不够彻底的地方希望能够被理解。(注意:图示自己画的,字是自己敲的,规律是自己总结的,只有源码是原封COPY别人的.希望各位同学不要“完全“窃取别人的劳动成果,谢谢哈)
  
  惯例性的,先介绍一下几个名词,以便在后面的叙述中不会有理解上的误会。
  
  HTML(Hypertext Markup Language),被译成超文本标记语言。它的特点是能够处理文档结构, 字形字体, 版面布局, 链接, 等超文本文档结构, 使Web浏览器能够阅读和重新格式化任何Web页面。使用的面积很广,相信大家都多少有所认识。
  
  XML(Extensible Markup Language) ,被译成可扩展标记语言。 它是进行标记语言设计的元语言(Meta Language),XML是包括把信息从一处移到另一处(甚至在不同的软件产品和平台之间)的任何项目框架。它旨在通过简单数字到复杂数据结构以及人类可阅读文本等各种内容的交换而是计算机系统协同作业。而一旦可以交换信息,计算机就可以协同作业了。
  
  SGML(Standard Generalized Markup Language),全称是通用标识语言标准。它是标志语言的标准,也就是说所有标志语言都是依照SGML制定的,当然包括HTML。SGML的覆盖面很广,凡是有一定格式的文件都属于SGML,比如报告,乐谱等等,HTML是SGML在网络上最常见的文件格式。而XML则是SGML的简化版,只不过省略了其中复杂和不常用的部分。和SGML一样,XML也可以应用在金融,科研等各个领域。
  
  XHTML (Extensible Hypertext Markup Language) 不言而喻,是HTML和XML的结合。它是未来网页设计编写的未来。
  
  由于学术界讲究的是没有绝对的正确,所以很多人对这三者的关系各有所见。所以根据我的理解,从不同的角度阐释一下这四者的关系。
  
  1.    从历史发展的历程上和彼此的影响上来讲,
  http://www.eztg.com/toad/others/11249547432414120.jpg?http://www.xvna.com
  
  简单的陈述就是:最早有了SGML,然后产生了HTML,在SGML和HTML已经成熟发展的基础上,针对HTML的一些不理想的方面设计产生了XML,它特意避免了很多HTML不合理的地方和SGML冗余的地方。XHTML则是为了更好的利用HTML的显示特性和XML的数据分离处理特性而设计的。
  
  2. 从语言的构成关系上来讲,
  http://www.eztg.com/toad/others/11249547432429570.jpg?http://www.xvna.com
  
  简单的陈述就是:4者都是SGML的子集。他们的彼此生成关系像图中所示。也就是XML作为一种元语言可以生成HTML。
  
  掌握这些基础之后,我们可以研究一下HTML和XML的联系与区别到底有哪些。其实在国外的一些技术论坛上很少有人探讨XML与HTML的关系,更火热的是XML和SGML的关系,以及HTML是否会被XHTML所取代。然而,中国国内却有很多人在探讨我们的题目的问题。这足可以说明,我们的软件理论与技术和西方国家还是有差距的,无论从时间发展上,还是从技术水平上。
  
  他们的相似点无非都是文本语言,来自SGML,使用标记(tag),有相似的语法结构。更明显的是不同的地方。我还是从不同的角度去对这种语言进行比较。并且,请注意的是,这里并没有明确地指出哪个是本质的区别,因为观察问题的角度不同,得到的结论也就各有千秋。请看:
  
  1. 从语言历史和特性上说,XML既是HTML的兄弟,又是它的第二个母亲;HTML的标记很死板,XML则允许可准确地描述我们想知道的东西的自定义标准。也就是创建自己的标记符集。
  
  这是HTML:
  
  <p>p200 laptop
  <br>Friendly Computer Shop
  <br>$1438
  
  这是XML:
  
  <product>
  <model>p200 Laptop</model>
  <dealer>Friendly Computer Shop</dealer>
  <price>$1438</price>
  </product>
  
  在浏览器中,这两段代码可能一样,但XML数据是一种智能(smart)数据。它可以自己定义型号(model),经销商(dealer)和价格(price)这样便于我们自己了解的和记忆的标记,而HTML则必须有<br>这样的死板标记。
  
  2.从实际的功能上来看,早期的HTML是把数据和显示融合在一起的,不可分离。而有了XML的出现,我们可以把数据和显示分离。我们使用HTML进行显示,把数据放在XML中。这样的分离对我们来说是熟悉的。大家都使用过JAVA,C#这样的纯面向对象(OO)语言,也在System analysis课程的结业设计中探讨过OO的架构思想。所以对OO是再熟悉不过的了。XML的出现带来的数据和显示分离的技术和思想正是来自于OO。这样在不同的平台上显示什么样的网页,是HTML的事情,放在.htm或.htm文件中。而数据是不变的,都存放在.xml文件中。
  
  下面是一个例子,
  
  将下面代码存为myfile.htm
  
  <html>
  <head>
  <script language="javascript" for="window" event="onload">
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.load("myfile.xml");
  nodes = xmlDoc.documentElement.childNodes;
  title.innerText = nodesitem(0).text;
  author.innerText = nodes.item(1).text;
  email.innerText = nodes.item(2).text;
  date.innerText = nodes.item(3).text;
  </script>
  <title>在HTML中调用XML数据</title>
  </head>
  <body bgcolor="#FFFFFF">
  <b>标题: </b>
  <span id="title"> </span>
  <b>作者: </b>>
  <span id="author"></span>
  <b>信箱: </b>
  <span id="email"></span>
  <b>日期:</b>
  <span id="date"></span>
  </body>
  </html>
  
  将下面代码存为myfile.xml
  
  <?xml version="1.0" encoding="GB2312"?>
  <myfile>
  <title>XML轻松学习手册</title>
  <author>ajie</author>
  <email>[email protected]</email>
  <date>20010115</date>
  </myfile>
  
  将它们放在同一个目录下,用IE5以上版本浏览器打开,可以看到效果。 学习并掌握一种script,你将真正了解到XML无比的强大的功能。看出来显示和数据的分离性了吧?
  
  3. 从web显示的意义上讲,HTML可以在Web page上显示,而XML自身不能显示,我们可以通过使用格式化技术CSS,XSL来显示。
  
  4. 从面向的适用对象上来讨论,原初SGML是提倡POP的思想的,也就是人和人交互的意思。HTML更多的是POM的思想,就是人和机器的交互。而XML则是MOM的理念,旨在在中间件(MIDWARE)上建立帮助不同软件产品和平台无障碍沟通的渠道。XML之所以广泛的使用在E-Business上,因为XML使通用数据成为可能,使B2B通信成为可能,使智能代理成为可能,使智能查询(XQuery)成为可能。EDI电子数据交换,EAI企业应用集成,B2B企业-企业电子商务,IEC集成电子商务,ERP企业资源规划,这些首字母的缩写词都离不开XML。由于上述的MOM理念,XML是全新形势的WEB服务器软件出现,改变了从前的网络体系架构。
  
  如下图:
  http://www.eztg.com/toad/others/11249547432444640.jpg?http://www.xvna.com
  
  5.从语言的格式上我们看到,HTML是松散的,它允许错误的存在,不同的环境会有不同的HTML显示效果,有些平台仍不支持HTML。在各种我们所浏览的网页上,我们忍受了呈现上万的错误和不安全因素很多年了吧,所以必须避免再出现类似的不愉快。所以,XML有更严格的格式,有错误就会STOP,保证了正确性和安全性。下面是我找到的XML的格式要求(来自不同的出处):
  
  All XML elements must have a closing tag
  XML tags are case sensitive
  XML elements must be properly nested
  All XML documents must have a root element
  Attribute values must always be quoted
  With XML, white space is preserved
  With XML, CR/LF is converted to LF
  
  所有的标记都必须要有一个相应的结束标记;
  
  所有的XML标记都必须合理嵌套;
  
  所有XML标记都区分大小写;
  
  所有标记的属性必须用""括起来;
  
  以上所有是我对XML和HTML的相关资料的参考后所自己总结的认识。非常的肤浅。除了源代码,其余的都是自己的语言和思想概括。所以不成熟之处再次请求原谅。希望所有同学学好E-Business和XML这两门课。我想一定会对未来有所帮助。
相关内容
赞助商链接