1、 “玩转” Java 系列 1 【更多 Java Android 资料下载,可访问尚硅谷(中国)官网 下载区】 题目: Java程序员的 10道 XML面试题 包括 web 开发人员的 Java 面试在内的各种面试中, XML 面试题在各种编程工作的面试中很常见。 XML 是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准。 XML 面试问题包括用于转换 XML 文件的 XSLT 技术, XPATH, XQuery 等各种 XML 技术和 XML 基础知识,比如 DTD 或者 Schema。 本文将看到 10 道常见的 XML 面试问答题。这些问题大部分在 Java 面试中会问到,
2、同时在 C,C+, Scala 或其他语言的编程面试中同样很有用处。 XML 并不依赖于其他编程 语言,同 SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些 XML 问题是很有意义的。 XML 面试问答 下面是我列出的关于 XML 技术经常会问到的面试题。这些问题并不很难但涵盖了 XML 技术的一些重要领域,比如 DTD, XML Schema, XSLT 转换, XPATH 检索, XML 绑定, XML 解析器以及 XML 的基本知识,比如命名空间,校验,属性,元素等。 问题 1: XML是什么? 答: XML 即可扩展标记语言( Extensible Markup
3、 language),你可以根据自己的需要扩展 XML。XML 中可以轻松定义 , 等自定义标签,而在 HTML 等其他标记语言中必须使用预定义的标签,比如 ,而不能使用用户定义的标签。使用 DTD 和 XML Schema 标准化XML 结构。 XML 主要用于从一个系统到另一系统的数据传输,比如企业级应用的客户端与服务端。 问题 2: DTD与 XML Schema 有什么区别? 答: DTD 与 XML Schema 有以下区别: DTD 不使用 XML 编写而 XML Schema 本身就是 xml 文件,这意味着 XML解析器等已有的 XML工具可以用来处理 XML Schema。而
4、且 XML Schema 是设计于 DTD 之后的,它提供了更多的类型来映射 xml 文件不同的数据类型。 DTD 即文档类型描述 (Document Type definition)是定义 XML 文件结构的传统方式。 问题 3: XPath是什么? 答: XPath 是用于从 XML 文档检索元素的 XML 技术。 XML 文档是结构化的,因此 XPath 可以从 XML 文件定位和检索元素、属性或值。从数据检索方面来说, XPath与 SQL 很相似,但是它有自己的语法和规则。了解更多查看怎样使用 XPath 从 XML 文档中检索数据。 问题 4: XSLT是什么 ? 答: XSLT
5、也是常用的 XML 技术,用于将一个 XML 文件转换为另一种 XML, HTML 或者其他的格式。 XSLT 为转换 XML 文件详细定义了自己的语法,函数和操作符。通常由 XSLT 引擎完“玩转” Java 系列 2 【更多 Java Android 资料下载,可访问尚硅谷(中国)官网 下载区】 成转换, XSLT 引擎读取 XSLT 语法编写的 XML 样式表或者 XSL 文件的指令。 XSLT 大量使用递归来执行转换。一个常见 XSLT 使用就是将 XML 文件中的数据作为 HTML 页面显示。 XSLT 也可以很方便地把一种 XML 文件转换为另一种 XML 文档。 问题 5:什么
6、是 XML 元素和属性 答:最好举个例子来解释。下面是简单的 XML 片断。 6758.T 2300 例子中 id 是元素的一个属性,其他元素都没有属性。 问题 6:什么是格式良好的 XML 答:这个问题经常在电话面试中出现。一个格式良好的 XML 意味着该 XML 文档语法上是正确的,比如它有一个根元素,所有的开放标签合适地闭合,属性值必须加引号等等。如果一个 XML 不是格式良好的,那么它可能不能被各种 XML 解析器正确地处理和解析。 问题 7: XML命名空间是什么?它为什么很重要? 答: XML 命名空间与 Java 的 package 类似,用来避免不同来源名称相同的标签发生冲突。
7、XML 命名空间在 XML 文档顶部使用 xmlns属性定义,语法为 xmlns:prefix= URI。 prefix 与XML 文档中实际标签 一起使用。下面例子为 XML 命名空间的使用。 837363223 问题 8: DOM和 SAX 解析器有什么区别 答:这又是一道常见面试题,不仅出现在 XML 面试题中,在 Java 面试中也会问到。 DOM 和SAX 解析器的主要区别在于它们解析 XML 文档的方式。使用 DOM 解析 时, XML 文档以树形结构的形式加载到内存中,而 SAX 是事件驱动的解析器。这个问题更详细的回答查看 DOM和 SAX 解析器之间的区别。 问题 9: XM
8、L CDATA 是什么 答:这道题很简单也很重要,但很多编程人员对它的了解并不深。 CDATA 是指字符数据,它“玩转” Java 系列 3 【更多 Java Android 资料下载,可访问尚硅谷(中国)官网 下载区】 有特殊的指令被 XML解析器解析。 XML解析器解析 XML文档中所有的文本,比如 This is name of person,标签的值也会被解析,因为标签值也可能包含 XML 标签,比如First Name。 CDATA 部分不会被 XML 解析器解析。CDATA 部分以 结束。 问题 10: Java的 XML 数据绑定是什么 答: Java 的 XML 绑定指从 X
9、ML 文件中创建类和对象,使用 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 服务以及带宽、速率作为次要考虑因素的系统间数据传输起很大作用。