java操作XML---XML基礎知識
一:什麼是XML
XML是一種可擴充套件標記語言(EXtensibleMarkupLanguage),它和HTML很類似,卻又有些不同。
二:XML的特點
1. XML語言是區分大小寫的<a>和<A>是兩種不同的標籤元素。
2. XML沒有預定義的標籤,所有標籤都是自定義的。
3.XML被設計為具有自我描述性。
4.XML是W3C 的推薦標準。
三:XML語法
這是一段xml文字。
1 <?xml version="1.0" encoding="utf-8"?> <!--這是xml的申明,必須放在檔案的第一行第一列-->2 <students> <!--這是根元素,有且僅有一個根元素--> 3 <student> 4 <id>100</id> 5 <name>張三</name> 6 </student> 7 <student> 8 <id>101</id> 9 <name>李四</name> 10 </student> 11 </students>
語法說明:
1.第一行是xml申明,它定義了xml的版本資訊和編碼資訊(分別通過version和encoding屬性設定)。xml申明必須放在檔案的第一行,第一列。
2.第二行是xml根元素。xml中必須有且僅有一個根元素。
3.其他是根元素下的子孫元素。
4.xml中的元素必須關閉。有開始標籤必須的有關閉標籤。
5.xml是區分大小寫的。
6.元素及屬性的命名只能以字母(包括中文等)開始,不能以數字及下劃線開始,不能包含空格,不能以字元 “xml”(或者 XML、Xml)開始。最好不要包含 點(.),冒號(:)以及破折號(-)。
7.xml屬性的值必須加英文格式的引號。
8.xml中空格回車換行會被保留,這和HTML有很大的不同(HTML只保留一個空格)。
四:xml中的轉義字元
xml中有5個預定義的轉移字元 小於號(<),大於號(>),和號(&),單引號(’),雙引號(”)。
五:xml的dtd約束
1.xml檔案匯入本地dtd約束
語法: <!DOCTYPE 根元素名稱 SYSTEM “本地dtd檔案路徑”>
例項:<!DOCTYPE students SYSTEM "my.dtd">
2.xml檔案匯入網路dtd約束
語法:<!DOCTYPE 根元素名稱 PUBLIC “網路dtd檔案地址”>
例項:<!DOCTYPE students PUBLIC "http://xxx.com/xxx/xxx.dtd">
六:xml的schema約束
1.schema約束檔案就是一個xml。
根節點必須是schema
xmlns:固定值:http://www.w3.org/2001/XMLSchema 表示它是一個約束檔案
targetNamespace:約束檔案的地址,一般是一個url地址,這裡示例為:http://www.xxx.com
<?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.xxx.com">
......
</schema>
2.xml檔案引入schema約束
語法:<根元素 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="targetNamespace" xsi:schemaLocation="targetNamespaceschema檔名稱.xsd">
xmlns:xsi:這裡的xsi是一個別名,可以使用任意名稱,這裡只是為了和xmlns屬性區分,保持屬性值唯一性。
這個屬性的值是一個固定值:http://www.w3.org/2001/XMLSchema-instance
instance表示這個xml檔案不是一個schema約束
xmlns:這裡寫入schema的targetNamespace內容
xsi:schemaLocation:schema檔案的地址:包括targetNamespace+空格+schema檔名稱
例項:<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.xxx.com" xsi:schemaLocation="http://www.xxx.com xxx.xsd">