AlainCouthures / xsltforms

XForms to XHTML+Javascript (AJAX) conversion based on a unique XSL transformation. Suitable server-side (PHP) or client-side (Google Chrome, Edge, Internet Explorer, Mozilla FireFox, Opera, Safari) browser treatment where an XSLT 1.0 engine is available
37 stars 17 forks source link

New version of xsltforms 1.0RC2 breaks application #1

Open joecrean opened 10 years ago

joecrean commented 10 years ago

Hi, I have a MarkLogic application which uses xforms in a few places. Recently we started getting users with IE11 and found that the forms broke (null pointer exception in xsltforms.js) however the version of xsltforms used in the application was quite old (2-3 years old I guess). As I test I installed the latest version of xsltforms. Unfortunately I see a new exception but across all browsers, here are the details Appreciate any tips you can give me. thanks Joe

XDMP-ARGTYPE: (err:XPTY0004) fn:contains(, "{") -- arg1 is not of type xs:string? in /resources/xsltforms/xsltforms.xsl, at 4057:3 [XSLT] fn:context-item() = fn:doc("")/default:html/default:body/default:div/default:div/default:div[1]/default:div[2]/default:a/default:img/@class fn:position() = 2 in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 4544:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 271:0 [XSLT] in /resources/xsltforms/xsltforms.xsl, at 220:0, in xdmp:xslt-invoke("/resources/xsltforms/xsltforms.xsl", document{XXXXXX<meta http-equiv="Conte...}, map:map(/resour.../map:map)) [XSLT]

AlainCouthures commented 10 years ago

Hi Joe,

XSLTForms has an XSLT 1.0 stylesheet and MarkLogic developed its own XSLT 2.0 engine. This sounds like a compatibility issue.

Could you please try to patch xsltforms.xsl replacing "contains(.,'{')" with "contains(string(),'{')" at corresponding locations?

Thank you for your feedbacks!

-Alain

joecrean commented 10 years ago

Hi Alain,

that certainly got rid of the recurring exception however there still are other issues chief among which being that some pages are not rendering properly (as styling is not being applied) and also one of the simpler forms now results in an exception. See below - i obfuscated the hostnames. These problems occur in all browsers.

thanks Joe

reference error: encodeJS is not defined

followed by

XSLTForms Exception

Incorrect Javascript code generation:

xsltforms_initImpl@http://XXXX/app/query/load:80 xsltforms_init@http://XXXX/app/query/load:84 onload@http://XXXX/app/query/load:1

TypeError

e is undefined)

AlainCouthures commented 10 years ago

Sorry, I am afraid this is not directly due to XSLTForms latest release because "encodeJS" appears to be a Javascript file obfuscator which is not delivered/used within XSLTForms.

What do you think?

-Alain