XML SAX: Explain result in `qName` and `localName` in one example XML file
Asked Answered
I

1

2

I am testing how to use SAXParser and understanding its component . Here is my XML file that I used to test:

<?xml-stylesheet href="/externalflash/NASA_Detail/NASA_Detail.xsl" type="text/xsl"?>

<rss version="2.0">
    <channel>
        <title>NASA Image of the Day</title>
        <link>http://www.nasa.gov/multimedia/imagegallery/index.html</link>
        <description>The latest NASA "Image of the Day" image.</description>
        <language>en-us</language>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
        <managingEditor>[email protected]</managingEditor>
        <webMaster>[email protected]</webMaster>

        <item xmlns:java_code="xalan://gov.nasa.build.Utils1"> 
            <title>Expedition 30 Cosmonauts Perform Spacewalk</title> 
            <link>http://www.nasa.gov/multimedia/imagegallery/image_feature_2181.html</link>
            <description>This image of Russian cosmonauts Oleg Kononenko and Anton Shkaplerov, both Expedition 30 flight engineers, was taken during a spacewalk on Thursday, Feb. 16, 2012. During the six-hour, 15-minute spacewalk, Kononenko and Shkaplerov moved the Strela-1 crane from the Pirs Docking Compartment in preparation for replacing it in 2012 with a new laboratory and docking module. The duo used another boom, the Strela-2, to move the hand-operated crane to the Poisk module for future assembly and maintenance work. Both telescoping booms extend like fishing rods and are used to move massive components outside the station. On the exterior of the Poisk Mini-Research Module 2, they also installed the Vinoslivost Materials Sample Experiment, which will investigate the influence of space on the mechanical properties of the materials. The spacewalkers also collected a test sample from underneath the insulation on the Zvezda Service Module to search for any signs of living organisms. Both spacewalkers wore Russian Orlan spacesuits bearing blue stripes and equipped with NASA helmet cameras. Image Credit: NASA</description>
            <guid isPermaLink="true">http://www.nasa.gov/multimedia/imagegallery/image_feature_2181.html</guid>
            <pubDate>Wed, 22 Feb 2012 00:00:00 EST</pubDate>
            <enclosure length="1234567" type="image/jpeg" url="http://www.nasa.gov/images/content/624856main_image_2181_516-387.jpg"/>
        </item>
    </channel>
</rss>

When I use SAXParser to test this file, here is some line of my output:

start Element: rss
Local Name  // this line I don't know why null
qNam: rss
start characters: 

start Element: channel
Local Name 
qNam: channel
start characters: 

My question is: in my XML file, no namespace so each element will belong to its default namespace and that why qName will equals to local Name (Because no prefix for qName).

But at above result, at element rss and channel (and all others that I haven't posted,yet), local Name is null !!!

Who can explain for me,please.

thanks :)

Irick answered 25/2, 2012 at 5:35 Comment(1)
It's not "null", it's blank. Important difference.Burner
H
3

This is slightly unclear in the Javadoc:

uri - the Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed

localName - the local name (without prefix), or the empty string if Namespace processing is not being performed

qName - the qualified name (with prefix), or the empty string if qualified names are not available

atts - the attributes attached to the element. If there are no attributes, it shall be an empty Attributes object. The value of this object after startElement returns is undefined

With namespace processing turned off, only the qName is being returned (with no prefix).

Humiliate answered 25/2, 2012 at 8:30 Comment(2)
Yes, the description of the qName parameter is terrible. That interpretation can come from the description that they have there, but its understanding would benefit from a change of punctuationShockproof
Perhaps: "qName - the qualified name (with prefix, or the empty string if qualified names are not available)"Shockproof

© 2022 - 2024 — McMap. All rights reserved.