XML命名空間NameSpase

XML系列:命名空間   一,什麼是命名空間?  命名空間是唯一標識XML文檔中的元素和實體的信息集合,通過特定URL關聯XML,解決命名衝突。  DTD不支持命名空間的所有功能。但XML Schema支持。   二,命名空間的使用

 1,聲明和使用命名空間:將前綴和URL關聯,使用xmls屬性定義命名空間別名。   語法:   xmls:前綴名 = “命名空間的URL”      名字空間的前綴名可以是不包含冒號的任何合法XML名稱。   把同一命名空間的URL關聯到不同前綴是毫無意義的事情~!   解析器並不解析URL真正的內容,比方http://type.com和http://www.type.com指向同一頁面,解析器不會做檢查!      (1),在根元素中聲明命名空間       例子:   <?xml version = "1.0" encoding = "gb2321"?>   <student xmls = "http://www.type.com"     xmls:i = "http://www.Info.com"      xmls:g = "http://www.grade.com">    <i:info >     <i:name>張三</i:name>     <i:sex>男</i:sex>    </i:info>    <g:grade>     <g:chinese>88</g:chinese>     <g:math>90</g:math>    </grade>   </student>   (2),在元素中聲明命名空間   <?xml version = "1.0" encoding = "gb2321"?>   <type:student xmls:type = "http://www.type.com">    <i:info xmls:i = "http://www.Info.com">     <i:name>張三</i:name>     <i:sex>男</i:sex>    </i:info>    <g:grade xmls:g = "http://www.grade.com">     <g:chinese>88</g:chinese>     <g:math>90</g:math>    </grade>   </type:student>     2,屬性和命名空間   (1),屬性是屬於特定的元素,除非加前綴,否則屬性屬於他們的元素的命名空間。       (2),一個元素不可以具有相同名稱的屬性,但可以包含2個名稱相同但屬於不同命名空間的屬性。   例子:   <?xml version = "1.0" encoding = "gb2321"?>   <student xmls = "http://type.com"     xmls:i = "http://Info.com"      xmls:g = "http:grade.com">    <i:info id = 1001,  g:id = 2001>     <i:name>張三</i:name>     <i:sex>男</i:sex>    </i:info>    <g:grade id=2001>     <g:chinese>88</g:chinese>     <g:math>90</g:math>    </grade>     </student>     3,默認命名空間   可以爲元素和其子元素指定一個默認的命名空間,使用沒有前綴的xmls屬性將默認空間附加給元素和子元素。  則默認元素及其子元素在默認空間中。   屬性不在默認命名空間中,必須明確添加前綴。即使擁有屬性的元素在某個命名空間中,沒有前綴的屬性也不在該命名空間中。   例子:假設type元素定義在http://type.com中,      student元素定義在http://student.com中      teacher元素定義在http://teacher.com中。   使用默認命名空間   <?xml version = "1.0" encoding = "gb2321"?>   <type xmls ="www.type.com">    <student xmls = "http://student.com">     <info>      <name>張三</name>      <sex>男</sex>     </info>     <grade>      <chinese>88</chinese>      <math>90</math>     </grade>      </student>    <teacher xmls = "http://teacher.com">      <name>李四</name>      <sex>男</sex>    </teacher>   </type>   不使用默認命名空間   <?xml version = "1.0" encoding = "gb2321"?>   <ty:type xmls:ty ="www.type.com"    xmls:s= "http://student.com"    xmls:t = "http://teacher.com">    <s:student >     <s:info>      <s:name>張三</s:name>      <s:sex>男</s:sex>     </s:info>     <s:grade>      <s:chinese>88</s:chinese>      <s:math>90</s:math>     </s:grade>      </s:student>    <t:teacher>      <t:name>李四</t:name>      <t:sex>男</t:sex>    </t:teacher>   </ty:type>      例子:假設student元素和teacher元素定義在http://type.com中。   <?xml version = "1.0" encoding = "gb2321"?>   <type xmls ="www.type.com">    <student>     <info>      <name>張三</name>      <sex>男</sex>     </info>     <grade>      <chinese>88</chinese>      <math>90</math>     </grade>      </student>    <teacher>      <name>李四</name>      <sex>男</sex>    </teacher>   </type>        例子:假設student元素定義在http://type.com中,而teacher元素在http://www.teacher.com中定義。   <?xml version = "1.0" encoding = "gb2321"?>   <type xmls ="www.type.com"    xmls:t="http://www.teacher.com">    <student>     <info>      <name>張三</name>      <sex>男</sex>     </info>     <grade>      <chinese>88</chinese>      <math>90</math>     </grade>      </student>    <t:teacher>      <t:name>李四</t:name>      <t:sex>男</t:sex>    </t:teacher>   </type>   或   <?xml version = "1.0" encoding = "gb2321"?>   <type xmls ="www.type.com">    <student>     <info>      <name>張三</name>      <sex>男</sex>     </info>     <grade>      <chinese>88</chinese>      <math>90</math>     </grade>      </student>    <teacher xmls ="http://www.teacher.com">      <name>李四</name>      <sex>男</sex>    </teacher>   </type>   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章