1. xml中的localName和QName
2.<websites
3. xmlns:sina="http://www.sina.com"
4. xmlns:baidu="http://www.baidu.com">
5.
6. <sina:website sina:blog="blog.sina.com">新浪</sina:website>
7. <baidu:website baidu:blog="hi.baidu.com">百度</baidu:website>
8.</websites>
Namespace(空間名稱,命名空間)
引入的原因是為了避免混淆。例如上面的這個XML文檔,sina和baidu都有blog屬性,定義了兩個namespace,就像sax官網說的,用namespace是為了實作更多的擴充功能,作為基本應用,很多時候都用不到它:
sina的namespace: http://www.sina.com
baidu的namespace:http://www.baidu.com
1. xmlns:sina="http://www.sina.com"
2. xmlns:baidu="http://www.baidu.com">
namespace的值可以任意,但是注意不要重複。一般預設的格式都是以url來作為namespace,比如
xmlns:Android="http://schemas.android.com/apk/res/android。
Prefix(字首)
sina:blog中 sina就是字首。
LocalName(本地名稱)
sina:blog 中blog就是localName。
QName(Qualified Name 限定的名稱)
sina:blog就是QName,相當于字首+":"+LocalName。
uri(不是url哈)
例如sina:blog的uri就是字首sina的namespace,即"http://www.sina.com"。
2.sax解析localName與qName
sax simple API for XML,現在有兩個版本,sax和sax2。
sax不支援LocalName、QName和uri。對于屬性sina:blog="blog.sina.com",sax解析的結果是LocalName=QName="sina:blog",uri="",value="blog.sina.com"。
sax2支援LocalName、QName、uri。對于屬性sina:blog="blog.sina.com",sax2解析的結果是LocalName="blog",QName="sina:blog",uri="",value="blog.sina.com"。