[jdom-interest] SAXBuilder inclusion of default attributes

Harry Evans harry at tralfamadore.com
Mon Jan 19 20:43:28 PST 2004


Thanks for the tip.  Unfortunately, it seems that neither xerces nor 
crimson allow this flag to be set.  I get the following when I try to 
set the feature value to false:
org.jdom.JDOMException: 
http://xml.org/sax/features/external-general-entities feature not 
supported for SAX driver org.apache.xerces.parsers.SAXParser
    at org.jdom.input.SAXBuilder.internalSetFeature(SAXBuilder.java:643)
    at 
org.jdom.input.SAXBuilder.setFeaturesAndProperties(SAXBuilder.java:585)
    at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:467)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:341)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:684)
<etc>

However, armed with this information I was able to find a web resource 
that talked about this 
(http://www.topxml.com/xml/articles/sax2/default.asp), and I came up 
with the following (which seems to work great):

SAXBuilder builder = new SAXBuilder();
builder.setEntityResolver(new EntityResolver() {
    public InputSource resolveEntity(String publicId, String systemId) {
        return new InputSource(new ByteArrayInputStream(new byte[0]));
    }
});

Thanks for the information.  I would have never found this without 
knowing it was a feature and what the name was.

Harry Evans

Elliotte Rusty Harold wrote:

> At 6:32 PM -0800 1/19/04, Harry Evans wrote:
>
>> I am working with a third party data source, that submits xml to me. 
>> The DTD for this submission contains several elements that have 
>> attributes with default values, ie if certain attributes for an 
>> element are omitted, they have a default value, as defined by the DTD.
>>
>> I am doing some manipulation of this file and then sending it on to a 
>> new destination.  However, when I use SAXBuilder to build the 
>> document (even with validation off), it explicitly includes the 
>> default values for omitted attributes in the Document.
>>
>
> You need to turn off not only validation but also external entity 
> resolution. I think the relevant feature is 
> http://xml.org/sax/features/external-general-entities




More information about the jdom-interest mailing list