99热这里有精品-夜夜嗨av色一区二区不卡-亚洲国产精彩中文乱码AV-日本japanese乳偷乱熟

Java程序員的10道XML面試題

包括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片斷。

 

<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部分以<![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服務以及帶寬、速率作為次要考慮因素的系統間數據傳輸起很大作用。

 

本教程由尚硅谷教育大數據研究院出品,如需轉載請注明來源,歡迎大家關注尚硅谷公眾號(atguigu)了解更多。

清苑县| 新乡市| 章丘市| 巴彦淖尔市| 芦山县| 连云港市| 任丘市| 留坝县| 清丰县| 临安市| 丹巴县| 龙泉市| 吉首市| 枣强县| 方正县| 莱阳市| 合山市| 安塞县| 西青区| 木兰县| 达拉特旗| 福鼎市| 台前县| 乐平市| 新安县| 延津县| 福州市| 丰镇市| 余姚市| 沙河市| 沾益县| 永州市| 普兰店市| 武安市| 理塘县| 江源县| 六枝特区| 铁力市| 金川县| 伊金霍洛旗| 湟源县|