Re: Parsing a MODS-document with validation fails

Jason Hunter <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
Thanks, Thomas.  I'll integrate it.

Anyone else sitting on a bug that could get fixed in 1.1.2?

-jh-

On Jul 22, 2011, at 12:12 AM, Thomas Scheffler wrote:

> Am 21.07.2011 10:14, schrieb Thomas Scheffler:
>> Am 21.07.2011 04:18, schrieb Bradley S. Huffman:
>>> Which version of JDOM?  My first guess is it is something in XMLOutputter.
>> 
>> This is the latest and greatest 1.1.1. I would not suspect XMLOutputter here as it usually does not have any problems with namespaces. This seems to be a parsing issue.
> 
> It is a bug in the SAXHandler class where attributes with a different Namespace are only detected by their QName and not by the different Namespace-URI. I attached a patch that fixes this bug.
> It would be great, if this could be integrated and released soon in a version 1.1.2.
> 
> regards
> 
> Thomas Scheffler
> 
>>> 
>>> On Wed, Jul 20, 2011 at 8:23 AM, Thomas Scheffler
>>> <[email protected]>  wrote:
>>>> Hi,
>>>> 
>>>> if I parse a valid MODS document with XML Schema validation, JDOM changes
>>>> attributes as it handles default values of schema not correctly (by ignoring
>>>> the namespace).
>>>> 
>>>> Here is a short code to demonstrate this:
>>>> 
>>>> SAXBuilder builder = new SAXBuilder(true);
>>>> builder.setFeature("http://xml.org/sax/features/namespaces", true);
>>>> builder.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
>>>> builder.setFeature("http://apache.org/xml/features/validation/schema",
>>>> true);
>>>> 
>>>> Document document = builder.build(new
>>>> URL("http://academiccommons.columbia.edu/download/fedora_content/show_pretty/ac:111060/CONTENT/ac111060_description.xml")); 
>>>> XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
>>>> xout.output(document, System.out);
>>>> 
>>>> Here is a result fragment:
>>>> 
>>>> <name type="simple">
>>>> <namePart type="family">Edwards</namePart>
>>>> <namePart type="given">Stephen A.</namePart>
>>>> <role>
>>>> <roleTerm type="text">author</roleTerm>
>>>> </role>
>>>> <affiliation>Columbia University. Computer Science</affiliation>
>>>> </name>
>>>> 
>>>> If you look at the original document you can see, that @type of name is
>>>> "personal". The "simple" comes from the xlink XML-Schema that was included
>>>> by the MODS-Schema. Therefor the result fragment should look like this:
>>>> 
>>>> <name type="personal" xlink:type="simple">
>>>> <namePart type="family">Edwards</namePart>
>>>> <namePart type="given">Stephen A.</namePart>
>>>> <role>
>>>> <roleTerm type="text">author</roleTerm>
>>>> </role>
>>>> <affiliation>Columbia University. Computer Science</affiliation>
>>>> </name>
>>>> 
>>>> If I use DOM from Java this is done correctly (but a bit ugly as it does not
>>>> use the namespace prefix already defined).
>>>> 
>>>> Could someone just fix this, please?
>> 
>> 
> 
> <jdom-namespace.patch>_______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/[email protected]


_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.