Steve Lawrence created DAFFODIL-1924:
----------------------------------------

             Summary: DaffodilXMLLoader needs to explicitly specify which 
instance to use
                 Key: DAFFODIL-1924
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1924
             Project: Daffodil
          Issue Type: New Feature
          Components: Front End
    Affects Versions: 2.1.0
            Reporter: Steve Lawrence
             Fix For: 2.2.0


The SAXParserFactory.newInstance() method is used to create a new instance of a 
SAXParser. There are a handful of steps taken to find a SAXParser to use, as 
documented in the [newInstance() 
JavaDocs|https://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()].
 The problem with this is that Daffodil sets the entity-resolver property to an 
instance of the DFDLCatalogResolver, which extends a specific Xerces 
XMLEntityResolver. In order for this to work, we must be guaranteed that the 
SAXParserFactory instance we get is the Xerces one, and not some other one 
overridden by one of the ways described in newInstace().

So instead, we should use the newInstance method that lets you provide a string 
specifying which factory class to use, and specify our Xerces one.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to