最近在看Tuscany SCA In Action这本书,在学习Tuscany的Extension这一章节中关于自定义componentnton的过程中,有这样一种语法的代码:
pojo.impl.POJOImplementationProcessor;qname=http://pojo#implementation.pojo, model=pojo.POJOImplementation
所以,就简单学习了一个qname。(语法其他内容请看Java中的SPI)
QName 表示 XML 规范中定义的限定名称:XML 模式第二部分:Datatypes specification、Namespaces in XML、Namespaces in XML 勘误表。
QName 的值包含名称空间 URI、本地部分和前缀。
QName 中包括前缀,以保留词汇信息(当在 XML 输入源中存在 时)。前缀不 用于 QName.equals(Object) 或计算 QName.hashCode()。仅 使用名称空间 URI 和本地部分定义相等性和哈希码。
如果没有指定名称空间 URI,则将其设置为 XMLConstants.NULL_NS_URI。如果没有指定前缀,则将其设置为 XMLConstants.DEFAULT_NS_PREFIX。
QName 是不可变的。
1.来历:qname是qualified name 的简写 2.构成:由名字空间(namespace)前缀(prefix)以及冒号(:),还有一个元素名称构成 3.举例:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
version="1.0">
<xsl:template match="foo">
<hr/>
</xsl:template>
</xsl:stylesheet>
xsl是名字空间前缀,template是元素名称,xsl:template 就是一个qname 4.总结:qname无非是有着特定格式的xml元素,其作用主要是增加了名字空间,比如有同样的元素名称,而名字空间不同的情况。先了解这么多,请大家补充。
参考:http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/javax/xml/namespace/QName.html
从百度点进来的,支持一下