[jdom-interest] Re: jdom-interest Digest, Vol 56, Issue 13

S. Seide ml-jdom at seide.st
Thu Jul 30 06:17:06 PDT 2009


> But http://xml.org/sax/features/namespace-prefixes is set to true in
> SAXBuilder (along with http://xml.org/sax/features/namespaces), so my
> understanding is getQName() should never be "".  If its a unprefixed
> name, then getQName() should be returning the same as getLocalName().
> In this case "version".
> 
> I can't remember, can you turn either of those SAX features off in SAXBuilder?

turning them off givs the following results (application specific part
of stack removed for better readability):

SAXBuilder parser = new SAXBuilder();
parser.setFeature("http://xml.org/sax/features/namespace-prefix", false);
Document doc = parser.build(is);

atts.getLocalName(i) - "version"
atts.getQName(i) - ""

> 07-30 13:04:49.965: ERROR/Global(844): java.lang.StringIndexOutOfBoundsException
> 07-30 13:04:49.965: ERROR/Global(844):     at java.lang.String.substring(String.java:1571)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.jdom.input.SAXHandler.startElement(SAXHandler.java:568)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatParser.startElement(ExpatParser.java:145)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatParser.append(Native Method)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:506)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:467)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
> 07-30 13:04:49.965: ERROR/Global(844):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
...
> 07-30 13:04:49.965: ERROR/Global(844):     at dalvik.system.NativeStart.main(Native Method)

===

SAXBuilder parser = new SAXBuilder();
parser.setFeature("http://xml.org/sax/features/namespaces", false);
Document doc = parser.build(is);

> 07-30 13:09:58.367: ERROR/Global(898): org.jdom.input.JDOMParseException: Error in building: The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled.: The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled.
> 07-30 13:09:58.367: ERROR/Global(898):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:538)
> 07-30 13:09:58.367: ERROR/Global(898):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
...
> 07-30 13:09:58.367: ERROR/Global(898):     at dalvik.system.NativeStart.main(Native Method)
> 07-30 13:09:58.367: ERROR/Global(898): Caused by: org.xml.sax.SAXNotSupportedException: The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled.
> 07-30 13:09:58.367: ERROR/Global(898):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)
> 07-30 13:09:58.367: ERROR/Global(898):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
> 07-30 13:09:58.367: ERROR/Global(898):     ... 18 more
> 07-30 13:09:58.367: ERROR/Global(898): Caused by: org.xml.sax.SAXNotSupportedException: The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled.
> 07-30 13:09:58.367: ERROR/Global(898):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)
> 07-30 13:09:58.367: ERROR/Global(898):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
> 07-30 13:09:58.367: ERROR/Global(898):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
...
> 07-30 13:09:58.367: ERROR/Global(898):     at dalvik.system.NativeStart.main(Native Method)

===

SAXBuilder parser = new SAXBuilder();
parser.setFeature("http://xml.org/sax/features/namespaces", false);
parser.setFeature("http://xml.org/sax/features/namespace-prefix", false);
Document doc = parser.build(is);

> 07-30 13:13:21.586: ERROR/Global(935): org.jdom.JDOMException: http://xml.org/sax/features/namespace-prefix feature not recognized for SAX driver org.apache.harmony.xml.ExpatReader
> 07-30 13:13:21.586: ERROR/Global(935):     at org.jdom.input.SAXBuilder.internalSetFeature(SAXBuilder.java:827)
> 07-30 13:13:21.586: ERROR/Global(935):     at org.jdom.input.SAXBuilder.setFeaturesAndProperties(SAXBuilder.java:766)
> 07-30 13:13:21.586: ERROR/Global(935):     at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:621)
> 07-30 13:13:21.586: ERROR/Global(935):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
> 07-30 13:13:21.586: ERROR/Global(935):     at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
...
> 07-30 13:13:21.586: ERROR/Global(935):     at dalvik.system.NativeStart.main(Native Method)


regards,
S. Seide


More information about the jdom-interest mailing list