Java SAXParser:不同于`localName`和`qName`

前端之家收集整理的这篇文章主要介绍了Java SAXParser:不同于`localName`和`qName`前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Java中,Handler类包含方法,其名称为startElement.this方法具有原型:

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示例:
<?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作为限定名.这些名称是明确的,可以由解析器处理并进行验证.

猜你在找的Java相关文章