XML入门教程:XML名称空间-XML/XSLT
2024-09-05 20:56:07
供稿:网友
XML名称空间表示XML名称的使用范围,因为XML可自定义元素标签,所以有不同XML应用间XML名称重名的机会是很大的。如果没有一种方法来区分不应用的名称,就会造成混乱。XML名称空间就是为了解决这个问题而设计的。通过XML名称空间,我们可以区分来自不同的XML应用的具有相
XML名称空间表示XML名称的使用范围,因为XML可自定义元素标签,所以有不同XML应用间XML名称重名的机会是很大的。如果没有一种方法来区分不应用的名称,就会造成混乱。XML名称空间就是为了解决这个问题而设计的。通过XML名称空间,我们可以区分来自不同的XML应用的具有相同名称的元素和属性。可以将来自单一XML应用的相关元素和属性集合在一起,方便软件识别和处理。
名称空间由前缀和本地部分组成,中间用冒号分隔。前缀标识元素或属性的所在名称空间,本地部分标识名称空间中的某个元素或属性。整个名称也称为限定名称(qualified name)。前缀可以用除XML(大小写任意组合)三个字母外的任何合法的XML名称字符组成。每个限定名称中的前缀都必须与唯一的一个URI关联。带有相同URI关联的前缀的名称属于同一名称空间。
<rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> <rdf:Description about="http://www.example.com/test.xml"> <title>example</title> <author>linuxsir</author> ... </rdf:Description></rdf:RDF>
上例rdf:RDF元素的xmlns:rdf属性将前缀rdf绑定到名称空间http://www.w3.org/TR/REC-rdf-syntax#。属性xmlns:rdf为rdf:RDF元素及其子元素声明了前缀rdf。RDF处理器将把rdf:RDF和rdf:Description作为RDF元素,因为两个元素都具有与RDF规范定义的某个URI相绑定的前缀。处理器不会认为title,author等元素为RDF元素,因为它没有绑定到相同URI的rdf前缀。本文由错新站长站(https://www.jb51.net)整理发布!转载请注明出处,谢谢!
前缀一般在使用该前缀的最上层元素中定义。在下层元素中也可定义不同的前缀:
<rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> <rdf:Description xmlns:dc="http://www.w3.org/dc/" about="http://www.example.com/test.xml"> <dc:title>example</dc:title> <dc:author>linuxsir</dc:author> ... </rdf:Description></rdf:RDF>
不带前缀的属性,如about,不属于任何的名称空间。如xlink:type和xlink:href属性属于xlink名称空间,当然,前提是你要先把xlink绑定到一个URI。URI不必须是一定存在的http链接,它只是一种表示的方法,以区分不同的名称空间。
通过将无前缀的xmlns属性附加到根元素中,可以指定不带前缀的元素及所有不带前缀的子元素属于某个名称空间。