Java SAXParser:不同于`localName`和`qName`
在
Java中,Handler类包含方法,其名称为startElement.this方法具有原型:
public void startElement(String uri,String localName,String qName,Attributes属性) 我已经阅读了Oracle Java网站,但是我仍然不明白localName和qName参数之间有什么区别.他们解释一下:
在上面的定义中,我不知道一些概念:前缀(什么的前缀?)命名空间 谁可以为我解释(尽可能简单的)关于这些参数. 谢谢 :) 解决方法
例如,我将参考以下XML示例:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 命名空间 命名空间是定义元素的逻辑容器. XML Schema命名空间(带有uri:http://www.w3.org/2001/XMLSchema).在上面的文档中,它正在第2行被引用.XML文档处理可能会使用XML解析器,它可能是命名空间感知的,但是使用命名空间的文档通常需要由命名空间感知解析器来解析. 定义命名空间,以便a)它们可以由解析器编目,并且b)使得在不同命名空间中具有相同名称的元素可以存在于同一文档中,而不会变得模糊定义. 字首 前缀是用于引用命名空间的短按键.在上面的例子中,xs用于引用XML Schema命名空间. 本地名称(部分) 文档中的元素具有在命名空间中定义的名称.在上面的例子中,您可以找到schema,el??ement,complexType,sequence和element作为本地名称.如果您的文档中引用了多个命名空间,并且一个或多个这些命名空间定义了具有相同名称的元素,则本地名称可能不明确. 合格名称(qName) 限定名称由命名空间的前缀(可选地,一些实现可以使用命名空间uri)组成,后跟一个:,后跟元素的本地名称.在上面的例子中,您可以找到xs:schema,xs:element,xs:complexType,xs:sequence和xs:element作为限定名.这些名称是明确的,可以由解析器处理并进行验证. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |