欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java程序员的10道常见的XML面试问答题(XML术语详解)

程序员文章站 2024-02-28 11:10:34
xml面试问题包括用于转换xml文件的xslt技术,xpath,xquery等各种xml技术和xml基础知识,比如dtd或者schema。 本文将看到10道常见的xml面...

xml面试问题包括用于转换xml文件的xslt技术,xpath,xquery等各种xml技术和xml基础知识,比如dtd或者schema。

本文将看到10道常见的xml面试问答题。这些问题大部分在java面试中会问到,同时在c,c++,scala或其他语言的编程面试中同样很有用处。xml并不依赖于其他编程语言,同sql一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些xml问题是很有意义的。

xml面试问答

下面是我列出的关于xml技术经常会问到的面试题。这些问题并不很难但涵盖了xml技术的一些重要领域,比如dtd,xml schema,xslt转换,xpath检索,xml绑定,xml解析器以及xml的基本知识,比如命名空间,校验,属性,元素等。

问题1:xml是什么?

答:xml即可扩展标记语言(extensible markup language),你可以根据自己的需要扩展xml。xml中可以轻松定义<books>, <orders>等自定义标签,而在html等其他标记语言中必须使用预定义的标签,比如<p>,而不能使用用户定义的标签。使用dtd和xml schema标准化xml结构。xml主要用于从一个系统到另一系统的数据传输,比如企业级应用的客户端与服务端。

问题2:dtd与xml schema有什么区别?

答:dtd与xml schema有以下区别:dtd不使用xml编写而xml schema本身就是xml文件,这意味着xml解析器等已有的xml工具可以用来处理xml schema。而且xml schema 是设计于dtd之后的,它提供了更多的类型来映射xml文件不同的数据类型。dtd即文档类型描述(document type definition)是定义xml文件结构的传统方式。

问题3:xpath是什么?

答:xpath是用于从xml文档检索元素的xml技术。xml文档是结构化的,因此xpath可以从xml文件定位和检索元素、属性或值。从数据检索方面来说,xpath与sql很相似,但是它有自己的语法和规则。了解更多查看怎样使用xpath从xml文档中检索数据。

问题4:xslt是什么?

答:xslt也是常用的xml技术,用于将一个xml文件转换为另一种xml,html或者其他的格式。xslt为转换xml文件详细定义了自己的语法,函数和操作符。通常由xslt引擎完成转换,xslt引擎读取xslt语法编写的xml样式表或者xsl文件的指令。xslt大量使用递归来执行转换。一个常见xslt使用就是将xml文件中的数据作为html页面显示。xslt也可以很方便地把一种xml文件转换为另一种xml文档。
问题5:什么是xml元素和属性

答:最好举个例子来解释。下面是简单的xml片断。

复制代码 代码如下:
<orders>
    <order id="123">
        <symbol>6758.t</symbol>
        <price>2300</price>
    <order>
<orders>

例子中id是元素的一个属性,其他元素都没有属性。

问题6:什么是格式良好的xml

答:这个问题经常在电话面试中出现。一个格式良好的xml意味着该xml文档语法上是正确的,比如它有一个根元素,所有的开放标签合适地闭合,属性值必须加引号等等。如果一个xml不是格式良好的,那么它可能不能被各种xml解析器正确地处理和解析。

问题7:xml命名空间是什么?它为什么很重要?

答:xml命名空间与java的package类似,用来避免不同来源名称相同的标签发生冲突。xml命名空间在xml文档顶部使用xmlns属性定义,语法为xmlns:prefix='uri'。prefix与xml文档中实际标签一起使用。下面例子为xml命名空间的使用。

复制代码 代码如下:
<root xmlns:inst="http://instruments.com/inst"
    <inst:phone>
        <inst:number>837363223</inst:number>
    </inst:phone>
</root>

问题8:dom和sax解析器有什么区别

答:这又是一道常见面试题,不仅出现在xml面试题中,在java面试中也会问到。dom和sax解析器的主要区别在于它们解析xml文档的方式。使用dom解析时,xml文档以树形结构的形式加载到内存中,而sax是事件驱动的解析器。这个问题更详细的回答查看dom和sax解析器之间的区别。

问题9:xml cdata是什么

答:这道题很简单也很重要,但很多编程人员对它的了解并不深。cdata是指字符数据,它有特殊的指令被xml解析器解析。xml解析器解析xml文档中所有的文本,比如<name>this is name of person</name>,标签的值也会被解析,因为标签值也可能包含xml标签,比如<name><firstname>first name</firstname></name>。cdata部分不会被xml解析器解析。cdata部分以“

问题10:java的xml数据绑定是什么

答:java的xml绑定指从xml文件中创建类和对象,使用java编程语言修改xml文档。xml绑定的java api,jaxb提供了绑定xml文档和java对象的便利方式。另一个可选的xml绑定方法是使用开源库,比如xml beans。java中xml绑定的一个最大的优势就是利用java编程能力创建和修改xml文档。

以上的xml面试问答题收集自很多编程人员,但它们对于使用xml技术的每个人都是有用的。由于xml具有平*立的特性,xpath,xslt,xquery等xml技术越来越重要,xml广泛用于跨平台数据传输。尽管xml有冗余和文档体积大等缺点,但它在web服务以及带宽、速率作为次要考虑因素的系统间数据传输起很大作用。