XML经典问答

原创 2004年07月07日 09:54:00
XML经典问答
JavaABC  http://www.JavaABC.com


一.HTML已经这样流行了,为什么还要发展XML?

简单地讲,HTML不能完成,我们希望XML所要完成的任务。原因很简单,XML所要完成的任务,必须由元置标语言来完成,而HTML只是一个实例置标语言。 在XML发布之前,国际互联网的发展受到HTML如下几个问题的束缚:
1) HTML无法描述数据内容,而这一点恰恰是数据检索、电子商务所必须的。
2) HTML对数据表现的描述能力是十分不够的,如HTML还不能描述矢量图形、  科学符号等对象,目前只能通过图象来表现这些对象。
3) HTML实例置标语言的地位,完全不能适应对新标记需求的发展需要。
  XML的出现,使上述问题都得到很好的解决。
试想在互联网世界,如果大家都讲方言,互相交换信息时都要进行翻译,那将是一个多么难以沟通和交流的世界。在互联网世界,XML之所以重要,恰恰是由于它扮演了"国际语言"角色的缘故。此外,XML更为互联网世界提供了定义各行各业的"专业术语"的工具。

二.如何在浏览器中阅读XML?

阅读XML文档的工具一般称为XML解析器, 也称为XML处理器。 XML处理器将数据传送到应用软件, 以便处理, 出版, 查询, 或显示。XML不给应用软件提供 应用程序接口 (API), 它只是把数据传给应用软件. XML处理器不解析非构造良好的数据。 Netscape 和 Microsoft 都已经将XML解析器包含在其浏览器中。 XML开发者团体提供免费的XML阅读器和解析器, 以便在应用软件或XML制作软件中进行应用。

三.为什么要使用XML而不是HTML?

比较重要的原因有以下六条:
  1)作者和供应商能使用XML设计自己的文档类型,不必被HTML所约束。
  2)由于XML的超文本链接能力比HTML强得多,XML提供的信息内容比      HTML更丰富,也更易于使用。
  3)XML能提供更多更好的机制方便浏览器的信息表现和优化性能。
  4)XML舍弃了SGML的复杂性,因此编写处理XML的应用程序会很容易。
  5)信息易于存储,可重复使用。
  6)XML文件在SGML环境中也可使用,不一定要局限于在WEB中使用。

四.可以用Java创建和管理XML文件吗?

是的,任何程序设计语言都能被用来从XML形式的源文档中输出数据。已经出现了许多的前端和后台工具使得程序设计和数据管理更加方便。下面两个网址有更加详细的说明: http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com

五.为什么XML文件的分析结果出现乱码?

这是由编码问题引起的。XML标准规定,XML分析器必须支持“UTF-8”和“UTF-16”编码,而且必须能够自动区分这两种编码的文件,对于其他编码(包括常用的中文编码“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含编码声明,分析器则按照声明的编码进行处理,否则就按照识别结果进行处理(识别的结果总是“UTF-8”和“UTF-16”中的一种)。因此,如果XML文件的编码在这两种之外,你必须在XML文件前加上编码声明,如:<?xml version="1.0" encoding="gb2312"?>就表示XML文件的编码是“gb2312”。

  现有的XML分析器大多不支持中文编码“GB2312”或“BIG5”,因此无法读取包含中文的XML文件。你可以使用支持中文编码的分析器,如MSXML,IBMJAVA4C,IBMJAVA4J等进行XML分析。你也可以用内码转换工具,将编码转换为“UTF-8”或“UTF-16”后进行解析,然后将解析结果转换回原来的编码。本站的软件园地中的ccnv(Code Converter)就是这样的工具。当然,你也可以自己写一个内码转换程序。

  关于“UTF-8”和“UTF-16”编码的详细信息,请查看本站标准荟萃中的UTF-16和UTF-8标准。

六.XML如何与数据库连接?


XML是一种文件格式,它没有规定与数据库的连接方法,你需要用传统的方法连接数据库,进行数据库查询,然后将查询结果转化为XML格式。现在有一些工具提供了XML与数据库的连接过程大都遵循这样的步骤。下面是一个利用ASP直接生成XML文件的例子,你可以访问http://www.xml.net.cn/Asps/test/roster1.asp查看执行效果。

<%@ language="VBScript" %>
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet type="text/xsl" href="..image oster.xsl"?>
<roster>
<%
set cConn = Server.CreateObject("ADODB.Connection")
call cConn.Open("DSN","USER", "PWD")
set rs = cConn.Execute("SELECT DISTINCT * FROM roster")
Do While Not rs.EOF %>
<Record>
<Name><%=trim(rs("name"))%></Name>
<NativePlace><%=trim(rs("NativePlace"))%></NativePlace>
<Age><%=trim(rs("Age"))%></Age>
<Telephone><%=trim(rs("Telephone"))%></Telephone>
</Record>
<% rs.MoveNext
Loop
rs.Close
set rs=nothing
set cConn=nothing
%>
</roster>

评C++经典问答第二版(C++FAQs second edition)

内容当然是没的说了。第十章就非常不错中文版由周远成翻译。我所看过的内容,翻译都是准确的。就是有些地方读起来不太流畅,可能也是因为工作量比较大的缘故,译者就没空精雕细琢了。...
  • redguardtoo
  • redguardtoo
  • 2005年02月21日 17:44
  • 2451

XML经典问答

一.HTML已经这样流行了,为什么还要发展XML?    简单地讲,HTML不能完成,我们希望XML所要完成的任务。原因很简单,XML所要完成的任务,必须由元置标语言来完成,而HTML只是一个实例置标...
  • gameylq
  • gameylq
  • 2007年06月19日 17:16
  • 262

关于Spring的69个面试问答和Top25个问答--终极列表,以及Spring相关知识

Spring 框架越来越流行,很多大型系统用到,
  • shenzhenNBA
  • shenzhenNBA
  • 2014年06月03日 23:18
  • 2333

AS3中关于XML部分(归纳)

XML,无论在各大小项目当中都会用到。可见其重要性。其实真正掌握XML并不难,关键是在于怎么合理,简洁,让人一目了然的设计出一张完整的XML表。 一、比较常见的错误: 1:元素属性值必须用引号""...
  • xbdf1234
  • xbdf1234
  • 2012年11月18日 23:15
  • 1160

经典问答

1.问:你兜里只有2块钱,怎么解决三餐??? 答:买个破碗,蹲街边   2..问:如果你是谢霆锋,你会原谅张柏芝吗? 答:你才谢霆锋呢   3.问:情侣两个都在QQ上,但是双方都不说...
  • huangyun2009121053
  • huangyun2009121053
  • 2012年07月23日 23:50
  • 677

XML 经典书籍

这里列出了一些我们认为值得去看的XML数据。这些书的质量都是很好的。我们已经看过这些书或者他们的早期版本。October 2001A Programmers Reference to XML, XPa...
  • heimaoxiaozi
  • heimaoxiaozi
  • 2007年03月12日 09:56
  • 3312

Java常见经典问答题

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Jav...
  • jcw321
  • jcw321
  • 2017年06月05日 12:50
  • 662

Python初学者 常见问题:书籍推荐、资料、社区

本文针对零基础的,想学习Python者。本文会不定时更新。 说明:本文由@易枭寒(Email:yixiaohan121318@gmail.com   QQ:499065469)搜索整理,转载请注...
  • ztejiagn
  • ztejiagn
  • 2013年03月15日 11:07
  • 937

c++经典问答

C++  的优点是什麽?「封装性  encapsulation」:藉由隐藏内部的资料结构,让我们可以改变系统的某部份,而不必更动其他部份。我们为软体元件(称之为  class,类别)提供一个安全的介面...
  • sandyandy
  • sandyandy
  • 2009年04月29日 15:18
  • 698

面试英语经典问答

Q: Can you sell yourself in two minutes? Go for it. (你能在两分钟內自我推荐吗?大胆试试吧!) A: With my qualifications ...
  • leeyu35
  • leeyu35
  • 2010年04月18日 21:16
  • 484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML经典问答
举报原因:
原因补充:

(最多只允许输入30个字)