ccontavalli / mod-xslt

Apache mod-xslt based on libxslt and libxml2
http://www.modxslt.org/
GNU General Public License v2.0
3 stars 1 forks source link

content negotiation of included XML documents #1

Open clubshop opened 13 years ago

clubshop commented 13 years ago

The scenario is using content negotiation on a server to retrieve from a variety of multi-lingual XML docs which all use a common PI / XSL, which itself uses other included XSL documents, which themselves use the document() function. The initial document is chosen correctly by Apache using it's content negotiation engine. However, the subsequent documents that are pulled in by mod_xslt are chosen simply by name. These documents, however, are not available by the simple name, but instead by the simple_name.(language code) So we have say: index.xml -> index.xsl -> header.xsl -> header_language_pack.xml index.xml is available to Apache as index.xml.en, index.xml.it, ... index.xsl could be language selective, but we currently have no resources like that header.xsl uses document(header_language_pack.xml) to grab the translated header content assuming that correct language code will automatically used as the final file suffix header_language_pack.xml is only available (and has to be to support content negotiation) as header_language_pack.xml.en, header_language_pack.xml.it, ... so the file open call fails

ccontavalli commented 13 years ago

I have a fix in the works - will probably take another week before it's ready for prime time, given various other things going on right now, but it's almost there.

The fix changes mod-xslt2 behavior by using internal apache handlers to fetch external entities, which allows other modules to intervene and mangle paths and documents.

ccontavalli commented 13 years ago

Didn't mean to close the issue - hit the wrong button.