QName and Namespace

来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:25:39
2007-09-27 15:01
QName and Namespace
QName对象表示了一个XML元素或属性的qualified name,即一个namespace和一个local name的二元组。
Namespace对象表示了QName二元组中的namespace部分,它由prefix和URI两部分组成。
prefix :前缀,其它就是Name与Vaule中的Name。也可以说是URI的简写的标识。
URI:统一资源标识符 (Uniform Resource Identifier, URI) ,这里定义这样一个URI,并没有实际远程意义,只是你取的字符串代表了你的命名含义。
/******************** SAMPLE XML FILE *************************
xmlns:heavyz="http://www.heavyzheng.com/schema/sample.xsd">


*************************************************************/
public void printRootQNameInfo(Document doc) {
Element root = doc.getRootElement();
QName qname = root.getQName();
System.out.println("local name        : " + qname.getName());
System.out.println("namespace prefix: " + qname.getNamespacePrefix());
System.out.println("namespace URI     : " + qname.getNamespaceURI());
System.out.println("qualified name : " + qname.getQualifiedName());
return;
}
/************************* OUTPUT *****************************
localname         : Sample
namespace prefix: heavyz
namespace URI     : http://www.heavyzheng.com/schema/sample.xsd
qualified name : heavyz:Sample
*************************************************************/
XML Name Space----XML 命名空间
这个理解起来总感觉有些抽象,不太好懂,自己学的也是一知半解,但是感觉它的存在却是很不同凡响的,,在XML的应用中,给我们带来了很多方便,也让XML的功能得到了很大的提升,自己感觉的,呵呵,有说的不对的地方,不要见笑哟!
在进入正题之前,我们先引用一个例子:
Apples Bananas
在上面这个XML中,有点类似于我们以前见到的HTML中的表格的功能,其实你也可以那样简单的认为这样;
African Coffee Table80120
在这个XML中,我们描述了一个桌子的信息,这样假如我们把这两个XML放到一个XML文件中,就会遇到命名冲突的问题,于是便有了Name space.
XML的命名空间----解决上述问题的途径:
一.使用前缀解决命名冲突的问题:
上面的两个文件变为以下内容:
1--
Apples Bananas
2--
African Coffee Table 80 120
现在是不是可以很明显的把两种不同的信息分开了呢,通过就可以方便的引用这两个文件了,
二.使用命名空间来解决这个问题:
1--
Apples Bananas
2---
African Coffee Table 80 120
在上面的例子中,我们除了使用了前缀外,还使用了xmlns属性,xmlns即xml name space的缩写.
命名空间属性:
一般其声明在元素开始标记的地方,格式为:
xmlns:namespace-prefix="namespace"
如:xmlns:f=" http://www.w3.org/TR/xsl "
我们在命名的时候,文中出现的类似URL的东东其实没有实际的意义,只是一种标记.