2011-11-08 29 views
0

我在struts,spring,ibatis等中遇到過很多xml配置,我曾經盲目地使用這個聲明,因爲我無知。我真的很想知道這些聲明是如何有用的,DTD的用途之一是什麼?spring servlet xml頂部的聲明是什麼意思?

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 
+1

那裏沒有DTD,它表示一個XSD。你可以谷歌XSD和DTD之間的區別。如果你有興趣,有一個[SO問題](http://stackoverflow.com/questions/2389760/dtd-vs-xsd-which-one-to-choose)。 –

回答

2

如果你的意思是:

xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

這是名字空間。

該行 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">是關於哪裏可以找到名稱空間聲明。


從評論:

爲什麼我們給他們這樣呢?它僅用於xml語法驗證嗎?或其他一些額外的目的?

假設您有兩個不同的XSD模式,您希望在XML中使用這兩種模式。而且他們都定義了一個名字相同的標籤,但意義不同。然後,讀取您的XML文件的程序需要了解您的兩個標籤中的哪一個。所以這就是前綴(xsi)或曾經用於的內容。

完整的東西用於驗證和編輯器支持(自動完成)。但對於那些在沒有關於具體語義的知識的情況下繼續進行XML的東西也是如此。 (例如XLST)。

+0

我們爲什麼要這樣給他們?它僅用於xml語法驗證嗎?或其他一些額外的目的? – cherit

+0

@tito:看到我的擴展答案 – Ralph

+0

謝謝你。我知道命名空間是獨一無二的。 – cherit

相關問題