Uploaded image for project: 'Batik'
  1. Batik
  2. BATIK-951

Add support for IRIs/URIs (with URI resolution and XML catalog support)



    • Type: Improvement
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: 1.8
    • Fix Version/s: None
    • Labels:
    • Environment:
      Operating System: All
      Platform: All


      ParsedURL basically just supports URLs right now (the Java Runtime's URL protocols plus the RFC 2397 data URL protocol). It seems impossible to add URI resolution with a connection to the user agent. In FOP, it was possible to pipe image loading through FOP's URI resolution by registering an image bridge, but that's not a general mechanism working for all external resources. It should be possible to register a URIResolver (or EntityResolver) with Batik's user agent so all IRI's are resolved through a central entity.

      For comparison, FOP works like this: We provide a possibility to register a URIResolver on FopFactory and user agent levels. First the user agent is consulted (if a user agent is available in the context), then the URIResolver on FopFactory is consulted. A URIResolver returns a Source object. If the Source is a StreamSource and contains an InputStream, that is used. A DOMSource is equally supported, if XML documents are loaded. Otherwise, the systemId is assumed to be a URL which is then used via Java's own java.net.URL. If a URI cannot be resolved by any URIResolver, it is assumed to be a URL and handled appropriately.

      I think this will require extensive changes all over Batik's codebase (whereever a ParsedURL is instantiated), so this needs to be well thought through. Due to time constraints I cannot work on this right now but have to use an impractical work-around, so I just write this down as a reminder/wish.





            • Assignee:
              batik-dev@xmlgraphics.apache.org Batik Developer's Mailing list
              jeremias@apache.org Jeremias Maerki
            • Votes:
              1 Vote for this issue
              1 Start watching this issue


              • Created: