包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见。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片断。

1
2
3
4
5
6
<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命名空间的使用。

1
2
3
4
5
<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服务以及带宽、速率作为次要考虑因素的系统间数据传输起很大作用。

Java计算的XML面试题相关推荐

  1. java的xml面试题_Java程序员的10个XML面试问答

    java的xml面试题 XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种X ...

  2. java xml 面试_Java程序员面试常见的10道XML面试题

    问题1:XML是什么? 答:XML即可扩展标记语言(Extensible Markup language),你可以根据自己的需要扩展XML, ,而不能使用用户定义的标签.使用DTD和XML Schem ...

  3. 【JAVA】(vip)蓝桥杯试题 基础练习 阶乘计算 BASIC-30 JAVA

    目录 试题 基础练习 阶乘计算 要点 思路 代码(无注释) 代码(含有注释) 代码二,==运行超时,内存也超了==某位同学提出的是使用java的大数类BigInteger 试题 基础练习 阶乘计算 资 ...

  4. JAVA程序员笔试面试题汇总及答案 .

    1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只 是选择其中的一部分,暂时不用部分细节. ...

  5. java最全面的面试题

    Java面试题 一. Java基础部分 7 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2.Java有没有goto? 7 3.说说&和 ...

  6. Java 程序员 开发面试题

    面向对象的特征有哪些方面    1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...

  7. 超有霸气的,有影响力的Java/C++/ASP.NET面试题

    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二 ...

  8. 2020年 Java 最常见200+ 面试题全解析:面试必备

    Java 最常见200+ 面试题全解析:面试必备 如想了解更多更全面的Java必备内容可以阅读:所有JAVA必备知识点面试题文章目录: JAVA必备知识点面试题 序 言 在本篇文章开始之前,我想先来回 ...

  9. Java 中的 XML:Java 文档模型的用法

    Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...

最新文章

  1. Spring AOP增强(Advice)
  2. 共享服务器设置权限修改,共享服务器权限设置
  3. javaweb和ajax使用查询出来的数据做下拉菜单_不会用Excel做数据筛选,老板叼的你没话说!...
  4. x265-common.h
  5. java中Object.equals()简单用法
  6. linux对^M换行符的处理
  7. flask+uwsgi+supervisor+nginx在局域网服务器上部署实践
  8. 监控服务器ssh登录,并发送报警邮件
  9. 53. Element setAttribute() 方法
  10. linux ssh 正向代理与反向代理
  11. Win8应用法律声明
  12. [转]coolfire黑客入门教程系列之(三)
  13. python人脸识别代码实现
  14. Mybatis学习之路——看这一篇文章,深刻学会Mybatis
  15. 201871010126 王亚涛 《面向对象程序设计(java)》 第四周学习总结
  16. html中尖括号怎么写,HTML中显示特殊字符,如尖括号 “”,
  17. Android生态系统分裂剖析 开放性系统带来的影响
  18. 【小5聊】腾讯位置服务之小程序简单使用以及显示附近WC步行路线
  19. MFC应用程序单文档及类向导的使用
  20. 【计算机毕业设计】基于微信小程序的校园跑腿系统

热门文章

  1. @Override错误
  2. fscache 调研
  3. Android系统在超级终端下必会的命令大全(二)
  4. 释放vmware磁盘空间
  5. Q139:PBRT-V3,Metropolis Light Transport (MLT)(16.4章节)
  6. sass 混入 (@mixin 与 @include的使用)
  7. java数据校验博客_springmvc教程:利用Validation进行参数校验
  8. mysql study_MySQL Study之--MySQL体系结构深入解析
  9. java亚马逊模拟登录_java – 亚马逊MWS入门
  10. 华为 台积电 高通申请_台积电/高通纷纷力挺华为!全面放下姿态:将不再断供华为芯片产品...