public void startElement(String uri,String localName,String qName,Attributes属性)
我已经阅读了Oracle Java网站,但是我仍然不明白localName和qName参数之间有什么区别.他们解释一下:
localName – The local name (without prefix),or the empty string if
Namespace processing is not being performed.
qName – The qualified XML 1.0 name (with prefix),or the empty string if qualified names are not available.
在上面的定义中,我不知道一些概念:前缀(什么的前缀?)命名空间
谁可以为我解释(尽可能简单的)关于这些参数.
谢谢 :)
解决方法
<?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,element,complexType,sequence和element作为本地名称.如果您的文档中引用了多个命名空间,并且一个或多个这些命名空间定义了具有相同名称的元素,则本地名称可能不明确.
合格名称(qName)
限定名称由命名空间的前缀(可选地,一些实现可以使用命名空间uri)组成,后跟一个:,后跟元素的本地名称.在上面的例子中,您可以找到xs:schema,xs:element,xs:complexType,xs:sequence和xs:element作为限定名.这些名称是明确的,可以由解析器处理并进行验证.