xsltforms-support Mailing List for XSLTForms (Page 25)
Brought to you by:
alain-couthures
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(6) |
Jun
(9) |
Jul
(16) |
Aug
(5) |
Sep
(43) |
Oct
(36) |
Nov
(58) |
Dec
(43) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(79) |
Feb
(81) |
Mar
(107) |
Apr
(93) |
May
(85) |
Jun
(54) |
Jul
(64) |
Aug
(54) |
Sep
(45) |
Oct
(53) |
Nov
(34) |
Dec
(77) |
2011 |
Jan
(56) |
Feb
(53) |
Mar
(52) |
Apr
(66) |
May
(44) |
Jun
(16) |
Jul
(28) |
Aug
(5) |
Sep
(15) |
Oct
(21) |
Nov
(51) |
Dec
(46) |
2012 |
Jan
(16) |
Feb
(38) |
Mar
(47) |
Apr
(45) |
May
(41) |
Jun
(41) |
Jul
(72) |
Aug
(17) |
Sep
(10) |
Oct
(16) |
Nov
(29) |
Dec
(30) |
2013 |
Jan
(25) |
Feb
(13) |
Mar
(20) |
Apr
(25) |
May
(34) |
Jun
(8) |
Jul
(12) |
Aug
(9) |
Sep
(21) |
Oct
(19) |
Nov
(6) |
Dec
(2) |
2014 |
Jan
(14) |
Feb
(8) |
Mar
(7) |
Apr
(13) |
May
(33) |
Jun
(13) |
Jul
(6) |
Aug
(5) |
Sep
(5) |
Oct
(34) |
Nov
(7) |
Dec
|
2015 |
Jan
(1) |
Feb
(6) |
Mar
(17) |
Apr
(12) |
May
(10) |
Jun
(18) |
Jul
(31) |
Aug
(9) |
Sep
(3) |
Oct
(6) |
Nov
(19) |
Dec
(1) |
2016 |
Jan
(18) |
Feb
(4) |
Mar
(13) |
Apr
(19) |
May
|
Jun
(17) |
Jul
(7) |
Aug
|
Sep
(3) |
Oct
(6) |
Nov
(3) |
Dec
|
2017 |
Jan
(5) |
Feb
(17) |
Mar
(4) |
Apr
(8) |
May
(3) |
Jun
|
Jul
(8) |
Aug
(2) |
Sep
|
Oct
(5) |
Nov
(6) |
Dec
(4) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
(1) |
2019 |
Jan
|
Feb
|
Mar
(4) |
Apr
(2) |
May
(4) |
Jun
|
Jul
|
Aug
(2) |
Sep
(7) |
Oct
|
Nov
|
Dec
|
2020 |
Jan
(13) |
Feb
(17) |
Mar
(8) |
Apr
(11) |
May
(15) |
Jun
(11) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
2021 |
Jan
(9) |
Feb
(26) |
Mar
(17) |
Apr
|
May
(7) |
Jun
(18) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(10) |
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(2) |
Sep
(3) |
Oct
(2) |
Nov
(10) |
Dec
(1) |
2023 |
Jan
(10) |
Feb
|
Mar
(7) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(8) |
Oct
(11) |
Nov
(8) |
Dec
(5) |
2024 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(4) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Stephen C. <ste...@gm...> - 2014-10-13 20:42:12
|
Having twice tried to promote XForms in my workplace and not succeeded, for me XSLTForms has failed in the 'marketplace of ideas'. But the IT road-side is littered with such worthwhile efforts that lie discarded. Unless there is a job or dollars in it most people are not interested. Have look at job adds looking for AngularJS vs XForms experience. XForms support in browsers is the subject of discussion though I think. If Alain had not developed XSLTForms, XForms as it was envisaged, client-side (RESTful), would be quite dead. But things do sometimes 'rise from the dead' :) On Tue, Oct 14, 2014 at 12:21 AM, marcelo alfaro <cma...@gm...> wrote: > Hi all, I would like to express what I think about this... For me XForms > is an incredible and powerful technology. I love it and I will keep using > it as long as there are a community like this and, of course, the tools to > get the job done. In this respect, XSLTForms is all I need to build > powerful interfaces that are easy to code and maintain. That's it. > I am very grateful to Alain and all the people that make this possible. > So, Is XForms popular? No, Is XForms a failure? Not at all. This are not > the same thing. > Misquoting, I would say that, the reports of XForms's death are greatly > exaggerated ;) > > cheers > marcelo > > > > > > On Sun, Oct 12, 2014 at 4:52 PM, Stephen Cameron < > ste...@gm...> wrote: > >> Hi Chris, >> >> XSmiles is a Java project and just maybe that is a problem, no one is >> interested in building (on) a browser using Java. >> >> XQuery and XSLT do have some jobs market value still, but mainly in >> integration work. That is a niche and in large part mostly filled by Saxon >> I suspect. >> >> The browser has become an application development platform, but the >> approach used to do that is all Javascript based, XSLTForms itself is >> Javascript in large part. and uses XSLT as a 'translator' to Javascript. >> >> So, is there a place for such a browser as XSmiles but all C++? It could >> be both a browser and a generic XML technologies library. I have a project >> that I would love to do with such a beast, but maybe I am just one of those >> "creative non-mainstream people (who) like to push boundaries" that you >> mention, with no thought of the practicalities of cost and marketability. >> >> Steve >> >> On Mon, Oct 13, 2014 at 12:45 AM, <bc...@sh...> >> wrote: >> >>> On Sun, 12 Oct 2014 11:07:41 +0200 >>> Alain Couthures <ala...@ag...> wrote: >>> >>> > All, >>> > >>> > Having a look at AB/2014-2015 Priorities/w3c work success >>> > (https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I >>> > can read that XForms is one of the "failures to learn from". >>> > >>> > Surely, there is a lot to be said about XForms as a failure. In this >>> > list of "failures", I would personally add XSLT and XQuery for very >>> > similar reasons, and surely SVG some years ago, if they all had to be >>> > considered as effective Web, or client-side, technologies. >>> > >>> > What do you think? Shouldn't we write what has to be written? >>> > >>> > Thanks! >>> > >>> > -Alain >>> >>> Hello Alain >>> >>> I am not an expert in the field, but I would not call XForms a failure. >>> Though I suppose it does depend on what the measure is. >>> >>> If I were looking for something that would have made it come together >>> better, it would have been a tool, a main tool, a browser or something, >>> that brought all the ideas together in a demonstrable and useful >>> product. >>> >>> Having said that, it is a shame it has all [arguably] struggled along >>> for reasons which I suspect are down to other commercial vested >>> interests by big players and their take-up or lack of, any proposed >>> standards adoption. >>> >>> I still believe the XML based 'tools' (XForms, and associated concepts >>> e.g. XRX) are extremely important and its too easy to cast them off. >>> >>> This comment from a reply to your post "...the W3C...should just >>> make its own browser with ALL its XML standards implemented." (Stephen >>> Cameron) is not a shout without serious merit in my opinion too. >>> >>> Not wishing to distract from supporting the previous idea, was not >>> XSmiles an attempt to have a go at doing the XML standards compliant >>> browser. >>> >>> Whatever, I still try to use XForms and it will only fail for me if the >>> clever and supportive open-source community minds keeping tools going >>> in some form or another, actually give up. To them, including you for >>> XSLTForms, I am grateful! >>> >>> I wish there was some push by W3C to resurrect (if some feel it has had >>> its day) and bring it all together in a serious meaningful way. There >>> would always be a market I'm sure.....creative non-mainstream people >>> like to push boundaries :-). >>> >>> Regards >>> Chris H. >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer >>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports >>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper >>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer >>> http://p.sf.net/sfu/Zoho >>> _______________________________________________ >>> Xsltforms-support mailing list >>> Xsl...@li... >>> https://lists.sourceforge.net/lists/listinfo/xsltforms-support >>> >> >> >> >> ------------------------------------------------------------------------------ >> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer >> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports >> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper >> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer >> http://p.sf.net/sfu/Zoho >> _______________________________________________ >> Xsltforms-support mailing list >> Xsl...@li... >> https://lists.sourceforge.net/lists/listinfo/xsltforms-support >> >> > > > -- > +569 7 887 2890 > +562 2 378 1264 > +562 2 227 3403 > > |
From: marcelo a. <cma...@gm...> - 2014-10-13 13:22:22
|
Hi all, I would like to express what I think about this... For me XForms is an incredible and powerful technology. I love it and I will keep using it as long as there are a community like this and, of course, the tools to get the job done. In this respect, XSLTForms is all I need to build powerful interfaces that are easy to code and maintain. That's it. I am very grateful to Alain and all the people that make this possible. So, Is XForms popular? No, Is XForms a failure? Not at all. This are not the same thing. Misquoting, I would say that, the reports of XForms's death are greatly exaggerated ;) cheers marcelo On Sun, Oct 12, 2014 at 4:52 PM, Stephen Cameron <ste...@gm... > wrote: > Hi Chris, > > XSmiles is a Java project and just maybe that is a problem, no one is > interested in building (on) a browser using Java. > > XQuery and XSLT do have some jobs market value still, but mainly in > integration work. That is a niche and in large part mostly filled by Saxon > I suspect. > > The browser has become an application development platform, but the > approach used to do that is all Javascript based, XSLTForms itself is > Javascript in large part. and uses XSLT as a 'translator' to Javascript. > > So, is there a place for such a browser as XSmiles but all C++? It could > be both a browser and a generic XML technologies library. I have a project > that I would love to do with such a beast, but maybe I am just one of those > "creative non-mainstream people (who) like to push boundaries" that you > mention, with no thought of the practicalities of cost and marketability. > > Steve > > On Mon, Oct 13, 2014 at 12:45 AM, <bc...@sh...> > wrote: > >> On Sun, 12 Oct 2014 11:07:41 +0200 >> Alain Couthures <ala...@ag...> wrote: >> >> > All, >> > >> > Having a look at AB/2014-2015 Priorities/w3c work success >> > (https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I >> > can read that XForms is one of the "failures to learn from". >> > >> > Surely, there is a lot to be said about XForms as a failure. In this >> > list of "failures", I would personally add XSLT and XQuery for very >> > similar reasons, and surely SVG some years ago, if they all had to be >> > considered as effective Web, or client-side, technologies. >> > >> > What do you think? Shouldn't we write what has to be written? >> > >> > Thanks! >> > >> > -Alain >> >> Hello Alain >> >> I am not an expert in the field, but I would not call XForms a failure. >> Though I suppose it does depend on what the measure is. >> >> If I were looking for something that would have made it come together >> better, it would have been a tool, a main tool, a browser or something, >> that brought all the ideas together in a demonstrable and useful >> product. >> >> Having said that, it is a shame it has all [arguably] struggled along >> for reasons which I suspect are down to other commercial vested >> interests by big players and their take-up or lack of, any proposed >> standards adoption. >> >> I still believe the XML based 'tools' (XForms, and associated concepts >> e.g. XRX) are extremely important and its too easy to cast them off. >> >> This comment from a reply to your post "...the W3C...should just >> make its own browser with ALL its XML standards implemented." (Stephen >> Cameron) is not a shout without serious merit in my opinion too. >> >> Not wishing to distract from supporting the previous idea, was not >> XSmiles an attempt to have a go at doing the XML standards compliant >> browser. >> >> Whatever, I still try to use XForms and it will only fail for me if the >> clever and supportive open-source community minds keeping tools going >> in some form or another, actually give up. To them, including you for >> XSLTForms, I am grateful! >> >> I wish there was some push by W3C to resurrect (if some feel it has had >> its day) and bring it all together in a serious meaningful way. There >> would always be a market I'm sure.....creative non-mainstream people >> like to push boundaries :-). >> >> Regards >> Chris H. >> >> >> >> >> ------------------------------------------------------------------------------ >> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer >> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports >> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper >> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer >> http://p.sf.net/sfu/Zoho >> _______________________________________________ >> Xsltforms-support mailing list >> Xsl...@li... >> https://lists.sourceforge.net/lists/listinfo/xsltforms-support >> > > > > ------------------------------------------------------------------------------ > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer > http://p.sf.net/sfu/Zoho > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > > -- +569 7 887 2890 +562 2 378 1264 +562 2 227 3403 |
From: Stephen C. <ste...@gm...> - 2014-10-12 19:53:01
|
Hi Chris, XSmiles is a Java project and just maybe that is a problem, no one is interested in building (on) a browser using Java. XQuery and XSLT do have some jobs market value still, but mainly in integration work. That is a niche and in large part mostly filled by Saxon I suspect. The browser has become an application development platform, but the approach used to do that is all Javascript based, XSLTForms itself is Javascript in large part. and uses XSLT as a 'translator' to Javascript. So, is there a place for such a browser as XSmiles but all C++? It could be both a browser and a generic XML technologies library. I have a project that I would love to do with such a beast, but maybe I am just one of those "creative non-mainstream people (who) like to push boundaries" that you mention, with no thought of the practicalities of cost and marketability. Steve On Mon, Oct 13, 2014 at 12:45 AM, <bc...@sh...> wrote: > On Sun, 12 Oct 2014 11:07:41 +0200 > Alain Couthures <ala...@ag...> wrote: > > > All, > > > > Having a look at AB/2014-2015 Priorities/w3c work success > > (https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I > > can read that XForms is one of the "failures to learn from". > > > > Surely, there is a lot to be said about XForms as a failure. In this > > list of "failures", I would personally add XSLT and XQuery for very > > similar reasons, and surely SVG some years ago, if they all had to be > > considered as effective Web, or client-side, technologies. > > > > What do you think? Shouldn't we write what has to be written? > > > > Thanks! > > > > -Alain > > Hello Alain > > I am not an expert in the field, but I would not call XForms a failure. > Though I suppose it does depend on what the measure is. > > If I were looking for something that would have made it come together > better, it would have been a tool, a main tool, a browser or something, > that brought all the ideas together in a demonstrable and useful > product. > > Having said that, it is a shame it has all [arguably] struggled along > for reasons which I suspect are down to other commercial vested > interests by big players and their take-up or lack of, any proposed > standards adoption. > > I still believe the XML based 'tools' (XForms, and associated concepts > e.g. XRX) are extremely important and its too easy to cast them off. > > This comment from a reply to your post "...the W3C...should just > make its own browser with ALL its XML standards implemented." (Stephen > Cameron) is not a shout without serious merit in my opinion too. > > Not wishing to distract from supporting the previous idea, was not > XSmiles an attempt to have a go at doing the XML standards compliant > browser. > > Whatever, I still try to use XForms and it will only fail for me if the > clever and supportive open-source community minds keeping tools going > in some form or another, actually give up. To them, including you for > XSLTForms, I am grateful! > > I wish there was some push by W3C to resurrect (if some feel it has had > its day) and bring it all together in a serious meaningful way. There > would always be a market I'm sure.....creative non-mainstream people > like to push boundaries :-). > > Regards > Chris H. > > > > > ------------------------------------------------------------------------------ > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer > http://p.sf.net/sfu/Zoho > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > |
From: <bc...@sh...> - 2014-10-12 14:00:28
|
On Sun, 12 Oct 2014 11:07:41 +0200 Alain Couthures <ala...@ag...> wrote: > All, > > Having a look at AB/2014-2015 Priorities/w3c work success > (https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I > can read that XForms is one of the "failures to learn from". > > Surely, there is a lot to be said about XForms as a failure. In this > list of "failures", I would personally add XSLT and XQuery for very > similar reasons, and surely SVG some years ago, if they all had to be > considered as effective Web, or client-side, technologies. > > What do you think? Shouldn't we write what has to be written? > > Thanks! > > -Alain Hello Alain I am not an expert in the field, but I would not call XForms a failure. Though I suppose it does depend on what the measure is. If I were looking for something that would have made it come together better, it would have been a tool, a main tool, a browser or something, that brought all the ideas together in a demonstrable and useful product. Having said that, it is a shame it has all [arguably] struggled along for reasons which I suspect are down to other commercial vested interests by big players and their take-up or lack of, any proposed standards adoption. I still believe the XML based 'tools' (XForms, and associated concepts e.g. XRX) are extremely important and its too easy to cast them off. This comment from a reply to your post "...the W3C...should just make its own browser with ALL its XML standards implemented." (Stephen Cameron) is not a shout without serious merit in my opinion too. Not wishing to distract from supporting the previous idea, was not XSmiles an attempt to have a go at doing the XML standards compliant browser. Whatever, I still try to use XForms and it will only fail for me if the clever and supportive open-source community minds keeping tools going in some form or another, actually give up. To them, including you for XSLTForms, I am grateful! I wish there was some push by W3C to resurrect (if some feel it has had its day) and bring it all together in a serious meaningful way. There would always be a market I'm sure.....creative non-mainstream people like to push boundaries :-). Regards Chris H. |
From: Stephen C. <ste...@gm...> - 2014-10-12 11:43:41
|
Hi Alain, It would be interesting to hear people's views on the lack of 'success' of XForms, from a historical perspective, from the people who put the effort in to create the recommendation particularly. Was the problem for XForms simply that two commercial giants had differing approaches to the same problem of declarative forms? Infopath from Microsoft and XForms from (via) IBM? More recently Adobe has created another forms solution too. IBM put effort into browser based XForms as Ubiquity but that seemed to gain little attention. There was another effort too in FormFaces. Once Microsoft had a separate product line in Infopath there was little incentive for them to add MVC style forms to Internet Explorer. Personally it seems to me that the original spirit of browsers and of the web in general for that matter is being lost to commercial interests. On that basis it seems to me the W3C as an ultruistic organisation should just make its own browser with ALL its XML standards implemented. It would find a user-base I am sure, an Apache Licence seems fitting model. Steve Cameron On Sun, Oct 12, 2014 at 8:07 PM, Alain Couthures < ala...@ag...> wrote: > All, > > Having a look at AB/2014-2015 Priorities/w3c work success ( > https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I can > read that XForms is one of the "failures to learn from". > > Surely, there is a lot to be said about XForms as a failure. In this list > of "failures", I would personally add XSLT and XQuery for very similar > reasons, and surely SVG some years ago, if they all had to be considered as > effective Web, or client-side, technologies. > > What do you think? Shouldn't we write what has to be written? > > Thanks! > > -Alain > > > ------------------------------------------------------------------------------ > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer > http://p.sf.net/sfu/Zoho > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > > |
From: Alain C. <ala...@ag...> - 2014-10-12 09:08:19
|
All, Having a look at AB/2014-2015 Priorities/w3c work success (https://www.w3.org/wiki/AB/2014-2015_Priorities/w3c_work_success), I can read that XForms is one of the "failures to learn from". Surely, there is a lot to be said about XForms as a failure. In this list of "failures", I would personally add XSLT and XQuery for very similar reasons, and surely SVG some years ago, if they all had to be considered as effective Web, or client-side, technologies. What do you think? Shouldn't we write what has to be written? Thanks! -Alain |
From: Dan M. <dan...@gm...> - 2014-09-29 15:53:07
|
Although Alain is working on a new way to view images that are dynamically selected, as a workaround I did figure out how to open a new "preview" alert panel using the show new option of a submission: <xf:submission id="get-image-submission" method="get" replace="all" show="new"> <xf:resource value="concat('../views/view-image.xq?file=', instance('save-data')/filename)"/> </xf:submission> You just need to store the filename you just selected in an upload control in the "filename" element in the example above. Note that for this hack to work you MUST configure your browser to allow popups. I will post a full example in the XForms wikibook after it is finished. - Dan -- Dan McCreary http://danmccreary.com Co-author: Making Sense of NoSQL <http://manning.com/mccreary> office: (952) 931-9198 cell: (612) 986-1552 skype: dmccreary47 |
From: Alain C. <ala...@ag...> - 2014-09-26 16:16:24
|
Hi Dan, xf:include/@src is interpreted at load time, like some preprocessor instruction, so it is not possible to use it for this use case. Is xf:upload used to upload the SVG image? If so, I have just experimented adding support for "string" type! My test case is: <html xmlns:xforms="http://www.w3.org/2002/xforms" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>SVG Upload+Preview</title> <xforms:model> <xforms:instance xmlns=""> <data> <content/> </data> </xforms:instance> </xforms:model> </head> <body> <h1>Uploads and types</h1> <p> <xforms:upload ref="content" incremental="true"> <xforms:label>Upload: </xforms:label> </xforms:upload> <br/> <xforms:output value="content" mediatype="application/xhtml+xml"> <xforms:label>Content: </xforms:label> </xforms:output> </p> </body> </html> This is not committed yet. Is it what you are looking for? --Alain Le 26/09/2014 16:24, Dan McCreary a écrit : > Hi folks, > > I have a form that the user is uploading a SVG image and I would like > to show a preview of it after the file has been selected. > > I have seen that the <xf:include src=""> element allows us to place > the SVG image in the form like this: > > <xf:include src="images/blue-circle.svg"/> > > Here is the example on github: > > https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/samples/flags.xhtml > > Is there a way to dynamically load the image? I tried: > > <xf:include src="images/{$filename}"/> > > but that did not work. > > Perhaps some combination of an XForms on-change event and xf:load? > > Thanks! - Dan > > -- > Dan McCreary > http://danmccreary.com > Co-author: Making Sense of NoSQL <http://manning.com/mccreary> > office: (952) 931-9198 > cell: (612) 986-1552 > skype: dmccreary47 > |
From: Dan M. <dan...@gm...> - 2014-09-26 14:24:14
|
Hi folks, I have a form that the user is uploading a SVG image and I would like to show a preview of it after the file has been selected. I have seen that the <xf:include src=""> element allows us to place the SVG image in the form like this: <xf:include src="images/blue-circle.svg"/> Here is the example on github: https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/samples/flags.xhtml Is there a way to dynamically load the image? I tried: <xf:include src="images/{$filename}"/> but that did not work. Perhaps some combination of an XForms on-change event and xf:load? Thanks! - Dan -- Dan McCreary http://danmccreary.com Co-author: Making Sense of NoSQL <http://manning.com/mccreary> office: (952) 931-9198 cell: (612) 986-1552 skype: dmccreary47 |
From: Alain C. <ala...@ag...> - 2014-09-12 16:42:59
|
Hi Mats! Variable subform should never be null so it is an issue in Javascript generation. Could you please send me a minimal test case? Thanks! --Alain Le 10/09/2014 17:42, Mats Eklund a écrit : > Hi Alan, > > When adding an xf:dispatch element to my form, I get an error message during runtime "Error dispatching event 'my-custom-event' : TypeError Unable to get value of the property 'listeners': object is null or undefined". I was able to fix it by putting a condition around last line in the body of the definition of the function 'XsltForms_listener(...)' in xsltforms.js (variable subform is null). > > Please consider adding this to official code! > > Kind regards, > Mats > > > > ------------------------------------------------------------------------------ > Want excitement? > Manually upgrade your production database. > When you want reliability, choose Perforce > Perforce version control. Predictably reliable. > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > |
From: Mats E. <mat...@ya...> - 2014-09-10 15:42:20
|
Hi Alan, When adding an xf:dispatch element to my form, I get an error message during runtime "Error dispatching event 'my-custom-event' : TypeError Unable to get value of the property 'listeners': object is null or undefined". I was able to fix it by putting a condition around last line in the body of the definition of the function 'XsltForms_listener(...)' in xsltforms.js (variable subform is null). Please consider adding this to official code! Kind regards, Mats |
From: Königshofen, T. <Til...@rw...> - 2014-08-21 07:16:11
|
Hello Alain, thank you for your response. I tried using "file://" before and it worked. But in this case the form had to work in an environment where the Java-Plugin is not available. Kind regards Till ________________________________ Von: ala...@ag... [ala...@ag...] Gesendet: Mittwoch, 20. August 2014 22:06 An: Königshofen, Till; xsl...@li... Betreff: Re: [Xsltforms-support] Fill instance from local XML file with Blob URL Hello, Thank you for your contribution and I will update xsltforms.js accordingly. I wonder if using a get submission with just "file://" would not do the same with old browsers not supporting Blob. Did you try this before? Regards, --Alain > Le 9 août 2014 à 12:17, Till Königshofen <til...@rw...> a écrit : > > > Hello, > > I was looking for a way to load XML files from the local file system > into an XForms instance without sending them to a server first. > > I defined a function which retrieves a Blob URL > (http://www.w3.org/TR/FileAPI/#url) from a file selected with a normal > <input id="upload" type="file"/> element: > > <script> > getBlobURL = function() { > return URL.createObjectURL(document.getElementById('upload').files[0]); > } > </script> > > The submission element is defined as follows: > > <xf:submission id="load" replace="instance" instance="data" method="get" > serialization="none"> > <xf:resource value="javascript:getBlobURL()"/> > </xf:submission> > > To get this to work, I changed line 194 in xsltforms.js (build 604) to > > if (uri.match(/^[a-zA-Z0-9+\.\-]+:\/\//) || uri.match(/^blob:/)) { > > because otherwise the Blob URL gets "prefixed" with the current URL > loaded in the browser. > > The complete example is attached. > > Regards > Till > ------------------------------------------------------------------------------ > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support |
From: <ala...@ag...> - 2014-08-20 20:19:44
|
Hello, Thank you for your contribution and I will update xsltforms.js accordingly. I wonder if using a get submission with just "file://" would not do the same with old browsers not supporting Blob. Did you try this before? Regards, --Alain > Le 9 août 2014 à 12:17, Till Königshofen <til...@rw...> a > écrit : > > > Hello, > > I was looking for a way to load XML files from the local file system > into an XForms instance without sending them to a server first. > > I defined a function which retrieves a Blob URL > (http://www.w3.org/TR/FileAPI/#url) from a file selected with a normal > <input id="upload" type="file"/> element: > > <script> > getBlobURL = function() { > return URL.createObjectURL(document.getElementById('upload').files[0]); > } > </script> > > The submission element is defined as follows: > > <xf:submission id="load" replace="instance" instance="data" method="get" > serialization="none"> > <xf:resource value="javascript:getBlobURL()"/> > </xf:submission> > > To get this to work, I changed line 194 in xsltforms.js (build 604) to > > if (uri.match(/^[a-zA-Z0-9+\.\-]+:\/\//) || uri.match(/^blob:/)) { > > because otherwise the Blob URL gets "prefixed" with the current URL > loaded in the browser. > > The complete example is attached. > > Regards > Till > ------------------------------------------------------------------------------ > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support |
From: <ala...@ag...> - 2014-08-20 20:13:29
|
Hello Mark! Sorry for the delay. As specified at http://www.w3.org/TR/2009/REC-xforms-20091020/#submit-get, the default instance is always serialized as application/x-www-form-urlencoded unless the serialization attribute is set to "none". Thank you for your feedback! --Alain > Le 13 août 2014 à 17:05, Mark Lawson <tin...@gm...> a écrit : > > > Hi, > > I’ve got an issue with calculated submissions using <xf:resource/> in 1.0RC2 > > I’ve got a control instance with a case element. This gets set in a select1 to > what case I want. > I’ve a submission to get this case and put the results in the case_record > instance: > > > <!— Instance to hold the case —> > <xf:instance id="case_record" xmlns=""> > <data></data> > </xf:instance> > > <!— Instance to control bits of the form —> > <xf:instance id=“control" xmlns=""> > <data> > <case>A100000</case> > <qstatus>OK</qstatus> > </data> > </xf:instance> > > <xf:submission id="getcase" > method="get" replace="instance" instance="case_record" > omit-xml-declaration="yes" > > <xf:resource > value="concat('v1/documents?uri=/cases/',instance(‘control')/case,'/case.xml')"/> > </xf:submission> > > If I run this it works the first time, however the second time, it sends the > calculated uri, *plus* every element now in the case_record (actually what > ever is the first instance in the form). I can get around that, by creating a > dummy instance at the top of my form that’s empty, i.e. > <xf:instance><data/></xf:instance> but that seems a little messy. > > I’ve also found that adding an action attribute with the base of my uri works > as well: > > <xf:submission id="getcase" action="v1/documents" > method="get" replace="instance" instance="case_record" > omit-xml-declaration="yes" > > <xf:resource > value="concat('v1/documents?uri=/cases/',instance(‘control')/case,'/case.xml')"/> > </xf:submission> > > My question should I be able to create a submission with just a <xf:resource> > in it, without a ref/action/resource attribute? > > Thanks, > > Mark Lawson > Senior Technical Architect > Staffordshire and West Midlands > Community Rehabilitation Company > mar...@sw... > [sent from home email] > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support |
From: Mark L. <tin...@gm...> - 2014-08-13 15:06:05
|
Hi, I’ve got an issue with calculated submissions using <xf:resource/> in 1.0RC2 I’ve got a control instance with a case element. This gets set in a select1 to what case I want. I’ve a submission to get this case and put the results in the case_record instance: <!— Instance to hold the case —> <xf:instance id="case_record" xmlns=""> <data></data> </xf:instance> <!— Instance to control bits of the form —> <xf:instance id=“control" xmlns=""> <data> <case>A100000</case> <qstatus>OK</qstatus> </data> </xf:instance> <xf:submission id="getcase" method="get" replace="instance" instance="case_record" omit-xml-declaration="yes" > <xf:resource value="concat('v1/documents?uri=/cases/',instance(‘control')/case,'/case.xml')"/> </xf:submission> If I run this it works the first time, however the second time, it sends the calculated uri, *plus* every element now in the case_record (actually what ever is the first instance in the form). I can get around that, by creating a dummy instance at the top of my form that’s empty, i.e. <xf:instance><data/></xf:instance> but that seems a little messy. I’ve also found that adding an action attribute with the base of my uri works as well: <xf:submission id="getcase" action="v1/documents" method="get" replace="instance" instance="case_record" omit-xml-declaration="yes" > <xf:resource value="concat('v1/documents?uri=/cases/',instance(‘control')/case,'/case.xml')"/> </xf:submission> My question should I be able to create a submission with just a <xf:resource> in it, without a ref/action/resource attribute? Thanks, Mark Lawson Senior Technical Architect Staffordshire and West Midlands Community Rehabilitation Company mar...@sw... [sent from home email] |
From: Till K. <til...@rw...> - 2014-08-09 10:17:48
|
Hello, I was looking for a way to load XML files from the local file system into an XForms instance without sending them to a server first. I defined a function which retrieves a Blob URL (http://www.w3.org/TR/FileAPI/#url) from a file selected with a normal <input id="upload" type="file"/> element: <script> getBlobURL = function() { return URL.createObjectURL(document.getElementById('upload').files[0]); } </script> The submission element is defined as follows: <xf:submission id="load" replace="instance" instance="data" method="get" serialization="none"> <xf:resource value="javascript:getBlobURL()"/> </xf:submission> To get this to work, I changed line 194 in xsltforms.js (build 604) to if (uri.match(/^[a-zA-Z0-9+\.\-]+:\/\//) || uri.match(/^blob:/)) { because otherwise the Blob URL gets "prefixed" with the current URL loaded in the browser. The complete example is attached. Regards Till |
From: Stephen C. <ste...@gm...> - 2014-07-31 22:24:54
|
Hello Eduard, I have an Servlet Filter that does the transformation and caches the XML output. Neither the client-side XSLT transformation or the size of xsltorms.js seems to be a significant loading speed issue in modern browsers, particularly that once the transform is done then everything is happening client-side, so it is a truely RESTful solution and gives the user great responsiveness. The main problem is for phones that don't support XSLT in their browser, also that its just un-necessary to have to repeat the XSLT transform each time a browser loads the same XForms form. If you are using eXist-db (in Tomcat) there are better solutions, I've now found it has a cache module, but to just get an XSLT transform is a one liner apparently. If this Filter is of interest, contact me off list and I will provide it. I did send the code to the list previously, but I have some small improvements to suggest. Steve C On Fri, Aug 1, 2014 at 6:15 AM, William Velasquez < wve...@vi...> wrote: > Hi Eduard, > > > > If you want to speed-up the transformation process, you could manually > transform your XForms files using xsltforms.xsl and store the results as > static files on server, and keep the xsltforms folder available under the > folder you store the static files. > > > > You can do it with almost any XSLT processor, but Saxon is recommendable. > And works for any webserver capable of serving static files. > > > > This could be useful if your XForms don’t change too often and are not > dynamically generated. > > > > Hope this helps, > > > > - Bill > > > > > > *De:* Eduard Tarassov [mailto:edu...@gm...] > *Enviado el:* jueves, 31 de julio de 2014 7:45 a. m. > *Para:* xsl...@li... > *Asunto:* [Xsltforms-support] XSLTForms on Tomcat > > > > Hello Sir/Madam, > > > > I really like your project. It is impressive. But, unfortunately, so far I > am having some problems. I have perfectly launched your client side xforms > to xml transformations, but also I want to make the same on the server-side > level. Especially on the Tomcat. > > Is it possible to run XSLT transformation from XFORMS by using just Jersey > class and Tomcat server in Eclipse? > > I did that perfectly with xml to xul transformation, but your javascript > file to operate on transform is so huge (as well as xsl file). Is it really > the only way to complete client-side XSLT transformation with XFORMS? Or > there is also a way to build it with java? > > I've seen your suggestions about using the ASP.net, HTTP server or eXist > db. But I think they do not suit me. > > > > Thank you very much for your help. I will very appreciate you! > > > > With best regards, > > Eduard Tarassov > > > ------------------------------------------------------------------------------ > Infragistics Professional > Build stunning WinForms apps today! > Reboot your WinForms applications with our WinForms controls. > Build a bridge from your legacy apps to the future. > > http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > > |
From: William V. <wve...@vi...> - 2014-07-31 20:15:33
|
Hi Eduard, If you want to speed-up the transformation process, you could manually transform your XForms files using xsltforms.xsl and store the results as static files on server, and keep the xsltforms folder available under the folder you store the static files. You can do it with almost any XSLT processor, but Saxon is recommendable. And works for any webserver capable of serving static files. This could be useful if your XForms don’t change too often and are not dynamically generated. Hope this helps, - Bill De: Eduard Tarassov [mailto:edu...@gm...] Enviado el: jueves, 31 de julio de 2014 7:45 a. m. Para: xsl...@li... Asunto: [Xsltforms-support] XSLTForms on Tomcat Hello Sir/Madam, I really like your project. It is impressive. But, unfortunately, so far I am having some problems. I have perfectly launched your client side xforms to xml transformations, but also I want to make the same on the server-side level. Especially on the Tomcat. Is it possible to run XSLT transformation from XFORMS by using just Jersey class and Tomcat server in Eclipse? I did that perfectly with xml to xul transformation, but your javascript file to operate on transform is so huge (as well as xsl file). Is it really the only way to complete client-side XSLT transformation with XFORMS? Or there is also a way to build it with java? I've seen your suggestions about using the ASP.net, HTTP server or eXist db. But I think they do not suit me. Thank you very much for your help. I will very appreciate you! With best regards, Eduard Tarassov |
From: Eduard T. <edu...@gm...> - 2014-07-31 12:45:04
|
Hello Sir/Madam, I really like your project. It is impressive. But, unfortunately, so far I am having some problems. I have perfectly launched your client side xforms to xml transformations, but also I want to make the same on the server-side level. Especially on the Tomcat. Is it possible to run XSLT transformation from XFORMS by using just Jersey class and Tomcat server in Eclipse? I did that perfectly with xml to xul transformation, but your javascript file to operate on transform is so huge (as well as xsl file). Is it really the only way to complete client-side XSLT transformation with XFORMS? Or there is also a way to build it with java? I've seen your suggestions about using the ASP.net, HTTP server or eXist db. But I think they do not suit me. Thank you very much for your help. I will very appreciate you! With best regards, Eduard Tarassov |
From: Dan M. <dan...@gm...> - 2014-07-02 17:59:06
|
> It’s sad to see that a very common and simple task like this, to be so complex to implement. It is only a few lines of XQuery in eXist. On Wed, Jul 2, 2014 at 11:09 AM, William Velasquez < wve...@vi...> wrote: > It’s sad to see that a very common and simple task like this, to be so > complex to implement. > > > > Maybe REST is popular these days, but server implementations are still far > from being easy for us, not only on Java. > > > > *De:* Stephen Cameron [mailto:ste...@gm...] > *Enviado el:* miércoles, 02 de julio de 2014 2:16 a. m. > *Para:* XSLTForms xsltforms > *Asunto:* [Xsltforms-support] XSLTForms Caching Servlet Filter > > > > I imagine there might be some other interested in this perhaps. Here is a > first cut. > > It needs the format=html query parameter to give you the cached translated > form. > > So, a URL will be something like > > http://thedomain.org/appcontext/forms/form.xml > > or > > http://thedomain.org/appcontext/forms/form.xml?format=html > > The later being what I wanted to avoid for obvious reasons, but I cannot > get around it and have the behaviour that I'm seeking. > > The web.xml follows the Java code. The SimpleRESTServlet can be replaced > with whatever you use to persist the raw XML forms. > > It needs more work, use at own risk, comments welcomed. > > Steve Cameron > > > > > package net.sourceforge.schema2xforms; > > import java.io.ByteArrayOutputStream; > import java.io.CharArrayWriter; > import java.io.File; > import java.io.IOException; > import java.io.PrintWriter; > import java.io.StringReader; > import java.util.Enumeration; > > import javax.servlet.Filter; > import javax.servlet.FilterChain; > import javax.servlet.FilterConfig; > import javax.servlet.ServletException; > import javax.servlet.ServletOutputStream; > import javax.servlet.ServletRequest; > import javax.servlet.ServletResponse; > import javax.servlet.ServletResponseWrapper; > import javax.servlet.UnavailableException; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > import javax.servlet.http.HttpServletResponseWrapper; > import javax.xml.transform.ErrorListener; > import javax.xml.transform.Source; > import javax.xml.transform.Templates; > import javax.xml.transform.Transformer; > import javax.xml.transform.TransformerConfigurationException; > import javax.xml.transform.TransformerException; > import javax.xml.transform.TransformerFactory; > import javax.xml.transform.stream.StreamResult; > import javax.xml.transform.stream.StreamSource; > > public final class XSLTFormsTransformerCachingServletFilter implements > Filter { > > private FilterConfig filterConfig = null; > private Templates templates; > private static FormCache cache = new FormCache(); > > public void init(FilterConfig config) throws UnavailableException, > ServletException { > this.filterConfig = config; > String factory = config > > .getInitParameter("javax.xml.transform.TransformerFactory"); > System.out.println(factory); > if (factory != null) { > System.setProperty("javax.xml.transform.TransformerFactory", > factory); > } > Enumeration<String> initParams = config.getInitParameterNames(); > for (int i = 0; initParams.hasMoreElements(); i++) { > System.out.println("param " + i + ": " + > initParams.nextElement()); > } > if (config.getInitParameter("xsltforms_dir") == null) { > throw new UnavailableException("xsltforms_dir init-param not > found"); > } > if (config.getInitParameter("xsltforms_baseurl") == null) { > throw new UnavailableException( > "xsltforms_baseurl init-param not found"); > } > // create the XSLTforms Transformer > TransformerFactory transFactory = TransformerFactory.newInstance(); > String xmlStylesheet = null; > try { > String path = config.getServletContext() > .getRealPath( > config.getInitParameter("xsltforms_dir") > + "/xsltforms.xsl"); > File stylesheet = new File(path); > if (!stylesheet.exists()) { > throw new UnavailableException( > "XSLTForms stylesheet not found at: " + path); > } > this.templates = transFactory.newTemplates(new StreamSource( > stylesheet)); > } catch (TransformerConfigurationException tce) { > tce.printStackTrace(); > throw new UnavailableException("Unable to compile stylesheet"); > } > } > > public void destroy() { > this.filterConfig = null; > this.templates = null; > } > > public void doFilter(ServletRequest request, ServletResponse response, > FilterChain chain) throws IOException, ServletException { > String formName = ((HttpServletRequest) request).getRequestURI(); > formName = formName.substring(formName.lastIndexOf("/") + 1); > String format = ((HttpServletRequest) > request).getParameter("format"); > if (format == null) > format = "raw"; > System.out.println("form=" + formName); > System.out.println("format=" + format); > if (format != null && !format.matches("((raw)|(html))")) { > throw new ServletException( > "expecting format parameter to be raw or html"); > } else { > String method = ((HttpServletRequest) request).getMethod(); > if (method.matches("(?i:(PUT)|(POST)|(DELETE))")) { > // invalidate the cached version > cache.remove(formName); > chain.doFilter(request, response); > } else if (method.matches("(?i:(GET))")) { > // check if the raw xml is required > if (format == "raw") { > // pass on the request > response.setContentType("text/xml"); > chain.doFilter(request, response); > } else { > // check if there is a cached version > if (cache.containsKey(formName)) { > String formHTML = cache.get(formName); > response.setContentType("text/html"); > response.setContentLength(formHTML.length()); > response.getWriter().write(formHTML); > } else { > BufferedHttpServletResponseWrapper responseWrapper > = new BufferedHttpServletResponseWrapper( > (HttpServletResponse) response); > chain.doFilter(request, responseWrapper); > byte[] bytes = responseWrapper.toByteArray(); > //System.out.println("RESPONSE -> " + new > String(bytes)); > // do the transform > try { > Transformer trans = templates.newTransformer(); > ErrorListener listener = new > ErrorListenerImpl(); > trans.setErrorListener(listener); > trans.setParameter("baseuri", filterConfig > > .getInitParameter("xsltforms_baseurl")); > CharArrayWriter caw = new CharArrayWriter(); > trans.transform(new StreamSource(new > StringReader( > new String(bytes))), new > StreamResult(caw)); > String formHTML = caw.toString(); > response.setContentType("text/html"); > response.setContentLength(formHTML.length()); > > response.getOutputStream().write(formHTML.getBytes("UTF-8")); > cache.put(formName, formHTML); > } catch (TransformerException e) { > throw new ServletException(e); > } > } > } > } else { // not GET|POST|PUT|DELETE HTTP method > chain.doFilter(request, response); > } > } > } > > private static class ByteArrayServletStream extends > ServletOutputStream { > > ByteArrayOutputStream baos; > > ByteArrayServletStream(ByteArrayOutputStream baos) { > this.baos = baos; > } > > public void write(int param) throws IOException { > baos.write(param); > } > } > > private class BufferedHttpServletResponseWrapper extends > HttpServletResponseWrapper { > > private ByteArrayOutputStream baos = new ByteArrayOutputStream(); > > private PrintWriter pw = new PrintWriter(baos); > > private ServletOutputStream sos = new ByteArrayServletStream(baos); > > private boolean isWriter = false; > private boolean isStream = false; > > public BufferedHttpServletResponseWrapper(HttpServletResponse > response) { > super(response); > } > > @Override > public String toString() { > if (isWriter) { > return pw.toString(); > } else if (isStream) { > return sos.toString(); > } else { > return ""; > } > } > > @Override > public PrintWriter getWriter() { > isWriter = true; > return pw; > } > > @Override > public ServletOutputStream getOutputStream() throws IOException { > isStream = true; > return sos; > } > > byte[] toByteArray() { > return baos.toByteArray(); > } > } > } > > <?xml version="1.0" encoding="UTF-8"?> > <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=" > http://java.sun.com/xml/ns/javaee" xmlns:web=" > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" > version="3.0"> > > <display-name>XForms</display-name> > > <context-param> > <param-name>javax.xml.transform.TransformerFactory</param-name> > <param-value>net.sf.saxon.TransformerFactoryImpl</param-value> > </context-param> > > <servlet> > <servlet-name>XSLTFormsServlet</servlet-name> > > <servlet-class>net.sourceforge.schema2xforms.XSLTFormsTransformerServlet</servlet-class> > <init-param> > <description></description> > <param-name>xsltforms_dir</param-name> > <param-value>/xsltforms</param-value> > </init-param> > <init-param> > <description></description> > <param-name>xsltforms_baseurl</param-name> > <param-value>http://localhost:8080/XForms/xsltforms/ > </param-value> > </init-param> > <load-on-startup>1</load-on-startup> > </servlet> > > <servlet> > <servlet-name>SimpleRESTServlet</servlet-name> > > <servlet-class>net.sourceforge.schema2xforms.SimpleRESTServlet</servlet-class> > <load-on-startup>1</load-on-startup> > </servlet> > > <filter> > <filter-name>XSLTFormsCachingFilter</filter-name> > > <filter-class>net.sourceforge.schema2xforms.XSLTFormsTransformerCachingServletFilter</filter-class> > <init-param> > <param-name>xsltforms_dir</param-name> > <param-value>/xsltforms</param-value> > </init-param> > <init-param> > <param-name>xsltforms_baseurl</param-name> > <param-value>http://localhost:8080/XForms/xsltforms/ > </param-value> > </init-param> > </filter> > > <filter-mapping> > <filter-name>XSLTFormsCachingFilter</filter-name> > <url-pattern>/forms/*</url-pattern> > </filter-mapping> > > <servlet-mapping> > <servlet-name>SimpleRESTServlet</servlet-name> > <url-pattern>/forms/*</url-pattern> > </servlet-mapping> > > </web-app> > > > ------------------------------------------------------------------------------ > Open source business process management suite built on Java and Eclipse > Turn processes into business applications with Bonita BPM Community Edition > Quickly connect people, data, and systems into organized workflows > Winner of BOSSIE, CODIE, OW2 and Gartner awards > http://p.sf.net/sfu/Bonitasoft > _______________________________________________ > Xsltforms-support mailing list > Xsl...@li... > https://lists.sourceforge.net/lists/listinfo/xsltforms-support > > -- Dan McCreary http://danmccreary.com Co-author: Making Sense of NoSQL <http://manning.com/mccreary> office: (952) 931-9198 cell: (612) 986-1552 skype: dmccreary47 |
From: William V. <wve...@vi...> - 2014-07-02 16:25:51
|
It’s sad to see that a very common and simple task like this, to be so complex to implement. Maybe REST is popular these days, but server implementations are still far from being easy for us, not only on Java. De: Stephen Cameron [mailto:ste...@gm...] Enviado el: miércoles, 02 de julio de 2014 2:16 a. m. Para: XSLTForms xsltforms Asunto: [Xsltforms-support] XSLTForms Caching Servlet Filter I imagine there might be some other interested in this perhaps. Here is a first cut. It needs the format=html query parameter to give you the cached translated form. So, a URL will be something like http://thedomain.org/appcontext/forms/form.xml or http://thedomain.org/appcontext/forms/form.xml?format=html The later being what I wanted to avoid for obvious reasons, but I cannot get around it and have the behaviour that I'm seeking. The web.xml follows the Java code. The SimpleRESTServlet can be replaced with whatever you use to persist the raw XML forms. It needs more work, use at own risk, comments welcomed. Steve Cameron package net.sourceforge.schema2xforms; import java.io.ByteArrayOutputStream; import java.io.CharArrayWriter; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringReader; import java.util.Enumeration; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletResponseWrapper; import javax.servlet.UnavailableException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; import javax.xml.transform.ErrorListener; import javax.xml.transform.Source; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; public final class XSLTFormsTransformerCachingServletFilter implements Filter { private FilterConfig filterConfig = null; private Templates templates; private static FormCache cache = new FormCache(); public void init(FilterConfig config) throws UnavailableException, ServletException { this.filterConfig = config; String factory = config .getInitParameter("javax.xml.transform.TransformerFactory"); System.out.println(factory); if (factory != null) { System.setProperty("javax.xml.transform.TransformerFactory", factory); } Enumeration<String> initParams = config.getInitParameterNames(); for (int i = 0; initParams.hasMoreElements(); i++) { System.out.println("param " + i + ": " + initParams.nextElement()); } if (config.getInitParameter("xsltforms_dir") == null) { throw new UnavailableException("xsltforms_dir init-param not found"); } if (config.getInitParameter("xsltforms_baseurl") == null) { throw new UnavailableException( "xsltforms_baseurl init-param not found"); } // create the XSLTforms Transformer TransformerFactory transFactory = TransformerFactory.newInstance(); String xmlStylesheet = null; try { String path = config.getServletContext() .getRealPath( config.getInitParameter("xsltforms_dir") + "/xsltforms.xsl"); File stylesheet = new File(path); if (!stylesheet.exists()) { throw new UnavailableException( "XSLTForms stylesheet not found at: " + path); } this.templates = transFactory.newTemplates(new StreamSource( stylesheet)); } catch (TransformerConfigurationException tce) { tce.printStackTrace(); throw new UnavailableException("Unable to compile stylesheet"); } } public void destroy() { this.filterConfig = null; this.templates = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String formName = ((HttpServletRequest) request).getRequestURI(); formName = formName.substring(formName.lastIndexOf("/") + 1); String format = ((HttpServletRequest) request).getParameter("format"); if (format == null) format = "raw"; System.out.println("form=" + formName); System.out.println("format=" + format); if (format != null && !format.matches("((raw)|(html))")) { throw new ServletException( "expecting format parameter to be raw or html"); } else { String method = ((HttpServletRequest) request).getMethod(); if (method.matches("(?i:(PUT)|(POST)|(DELETE))")) { // invalidate the cached version cache.remove(formName); chain.doFilter(request, response); } else if (method.matches("(?i:(GET))")) { // check if the raw xml is required if (format == "raw") { // pass on the request response.setContentType("text/xml"); chain.doFilter(request, response); } else { // check if there is a cached version if (cache.containsKey(formName)) { String formHTML = cache.get(formName); response.setContentType("text/html"); response.setContentLength(formHTML.length()); response.getWriter().write(formHTML); } else { BufferedHttpServletResponseWrapper responseWrapper = new BufferedHttpServletResponseWrapper( (HttpServletResponse) response); chain.doFilter(request, responseWrapper); byte[] bytes = responseWrapper.toByteArray(); //System.out.println("RESPONSE -> " + new String(bytes)); // do the transform try { Transformer trans = templates.newTransformer(); ErrorListener listener = new ErrorListenerImpl(); trans.setErrorListener(listener); trans.setParameter("baseuri", filterConfig .getInitParameter("xsltforms_baseurl")); CharArrayWriter caw = new CharArrayWriter(); trans.transform(new StreamSource(new StringReader( new String(bytes))), new StreamResult(caw)); String formHTML = caw.toString(); response.setContentType("text/html"); response.setContentLength(formHTML.length()); response.getOutputStream().write(formHTML.getBytes("UTF-8")); cache.put(formName, formHTML); } catch (TransformerException e) { throw new ServletException(e); } } } } else { // not GET|POST|PUT|DELETE HTTP method chain.doFilter(request, response); } } } private static class ByteArrayServletStream extends ServletOutputStream { ByteArrayOutputStream baos; ByteArrayServletStream(ByteArrayOutputStream baos) { this.baos = baos; } public void write(int param) throws IOException { baos.write(param); } } private class BufferedHttpServletResponseWrapper extends HttpServletResponseWrapper { private ByteArrayOutputStream baos = new ByteArrayOutputStream(); private PrintWriter pw = new PrintWriter(baos); private ServletOutputStream sos = new ByteArrayServletStream(baos); private boolean isWriter = false; private boolean isStream = false; public BufferedHttpServletResponseWrapper(HttpServletResponse response) { super(response); } @Override public String toString() { if (isWriter) { return pw.toString(); } else if (isStream) { return sos.toString(); } else { return ""; } } @Override public PrintWriter getWriter() { isWriter = true; return pw; } @Override public ServletOutputStream getOutputStream() throws IOException { isStream = true; return sos; } byte[] toByteArray() { return baos.toByteArray(); } } } <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>XForms</display-name> <context-param> <param-name>javax.xml.transform.TransformerFactory</param-name> <param-value>net.sf.saxon.TransformerFactoryImpl</param-value> </context-param> <servlet> <servlet-name>XSLTFormsServlet</servlet-name> <servlet-class>net.sourceforge.schema2xforms.XSLTFormsTransformerServlet</servlet-class> <init-param> <description></description> <param-name>xsltforms_dir</param-name> <param-value>/xsltforms</param-value> </init-param> <init-param> <description></description> <param-name>xsltforms_baseurl</param-name> <param-value>http://localhost:8080/XForms/xsltforms/</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>SimpleRESTServlet</servlet-name> <servlet-class>net.sourceforge.schema2xforms.SimpleRESTServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>XSLTFormsCachingFilter</filter-name> <filter-class>net.sourceforge.schema2xforms.XSLTFormsTransformerCachingServletFilter</filter-class> <init-param> <param-name>xsltforms_dir</param-name> <param-value>/xsltforms</param-value> </init-param> <init-param> <param-name>xsltforms_baseurl</param-name> <param-value>http://localhost:8080/XForms/xsltforms/</param-value> </init-param> </filter> <filter-mapping> <filter-name>XSLTFormsCachingFilter</filter-name> <url-pattern>/forms/*</url-pattern> </filter-mapping> <servlet-mapping> <servlet-name>SimpleRESTServlet</servlet-name> <url-pattern>/forms/*</url-pattern> </servlet-mapping> </web-app> |
From: Stephen C. <ste...@gm...> - 2014-07-02 07:16:14
|
I imagine there might be some other interested in this perhaps. Here is a first cut. It needs the format=html query parameter to give you the cached translated form. So, a URL will be something like http://thedomain.org/appcontext/forms/form.xml or http://thedomain.org/appcontext/forms/form.xml?format=html The later being what I wanted to avoid for obvious reasons, but I cannot get around it and have the behaviour that I'm seeking. The web.xml follows the Java code. The SimpleRESTServlet can be replaced with whatever you use to persist the raw XML forms. It needs more work, use at own risk, comments welcomed. Steve Cameron package net.sourceforge.schema2xforms; import java.io.ByteArrayOutputStream; import java.io.CharArrayWriter; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringReader; import java.util.Enumeration; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletResponseWrapper; import javax.servlet.UnavailableException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; import javax.xml.transform.ErrorListener; import javax.xml.transform.Source; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; public final class XSLTFormsTransformerCachingServletFilter implements Filter { private FilterConfig filterConfig = null; private Templates templates; private static FormCache cache = new FormCache(); public void init(FilterConfig config) throws UnavailableException, ServletException { this.filterConfig = config; String factory = config .getInitParameter("javax.xml.transform.TransformerFactory"); System.out.println(factory); if (factory != null) { System.setProperty("javax.xml.transform.TransformerFactory", factory); } Enumeration<String> initParams = config.getInitParameterNames(); for (int i = 0; initParams.hasMoreElements(); i++) { System.out.println("param " + i + ": " + initParams.nextElement()); } if (config.getInitParameter("xsltforms_dir") == null) { throw new UnavailableException("xsltforms_dir init-param not found"); } if (config.getInitParameter("xsltforms_baseurl") == null) { throw new UnavailableException( "xsltforms_baseurl init-param not found"); } // create the XSLTforms Transformer TransformerFactory transFactory = TransformerFactory.newInstance(); String xmlStylesheet = null; try { String path = config.getServletContext() .getRealPath( config.getInitParameter("xsltforms_dir") + "/xsltforms.xsl"); File stylesheet = new File(path); if (!stylesheet.exists()) { throw new UnavailableException( "XSLTForms stylesheet not found at: " + path); } this.templates = transFactory.newTemplates(new StreamSource( stylesheet)); } catch (TransformerConfigurationException tce) { tce.printStackTrace(); throw new UnavailableException("Unable to compile stylesheet"); } } public void destroy() { this.filterConfig = null; this.templates = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String formName = ((HttpServletRequest) request).getRequestURI(); formName = formName.substring(formName.lastIndexOf("/") + 1); String format = ((HttpServletRequest) request).getParameter("format"); if (format == null) format = "raw"; System.out.println("form=" + formName); System.out.println("format=" + format); if (format != null && !format.matches("((raw)|(html))")) { throw new ServletException( "expecting format parameter to be raw or html"); } else { String method = ((HttpServletRequest) request).getMethod(); if (method.matches("(?i:(PUT)|(POST)|(DELETE))")) { // invalidate the cached version cache.remove(formName); chain.doFilter(request, response); } else if (method.matches("(?i:(GET))")) { // check if the raw xml is required if (format == "raw") { // pass on the request response.setContentType("text/xml"); chain.doFilter(request, response); } else { // check if there is a cached version if (cache.containsKey(formName)) { String formHTML = cache.get(formName); response.setContentType("text/html"); response.setContentLength(formHTML.length()); response.getWriter().write(formHTML); } else { BufferedHttpServletResponseWrapper responseWrapper = new BufferedHttpServletResponseWrapper( (HttpServletResponse) response); chain.doFilter(request, responseWrapper); byte[] bytes = responseWrapper.toByteArray(); //System.out.println("RESPONSE -> " + new String(bytes)); // do the transform try { Transformer trans = templates.newTransformer(); ErrorListener listener = new ErrorListenerImpl(); trans.setErrorListener(listener); trans.setParameter("baseuri", filterConfig .getInitParameter("xsltforms_baseurl")); CharArrayWriter caw = new CharArrayWriter(); trans.transform(new StreamSource(new StringReader( new String(bytes))), new StreamResult(caw)); String formHTML = caw.toString(); response.setContentType("text/html"); response.setContentLength(formHTML.length()); response.getOutputStream().write(formHTML.getBytes("UTF-8")); cache.put(formName, formHTML); } catch (TransformerException e) { throw new ServletException(e); } } } } else { // not GET|POST|PUT|DELETE HTTP method chain.doFilter(request, response); } } } private static class ByteArrayServletStream extends ServletOutputStream { ByteArrayOutputStream baos; ByteArrayServletStream(ByteArrayOutputStream baos) { this.baos = baos; } public void write(int param) throws IOException { baos.write(param); } } private class BufferedHttpServletResponseWrapper extends HttpServletResponseWrapper { private ByteArrayOutputStream baos = new ByteArrayOutputStream(); private PrintWriter pw = new PrintWriter(baos); private ServletOutputStream sos = new ByteArrayServletStream(baos); private boolean isWriter = false; private boolean isStream = false; public BufferedHttpServletResponseWrapper(HttpServletResponse response) { super(response); } @Override public String toString() { if (isWriter) { return pw.toString(); } else if (isStream) { return sos.toString(); } else { return ""; } } @Override public PrintWriter getWriter() { isWriter = true; return pw; } @Override public ServletOutputStream getOutputStream() throws IOException { isStream = true; return sos; } byte[] toByteArray() { return baos.toByteArray(); } } } <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=" http://java.sun.com/xml/ns/javaee" xmlns:web=" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>XForms</display-name> <context-param> <param-name>javax.xml.transform.TransformerFactory</param-name> <param-value>net.sf.saxon.TransformerFactoryImpl</param-value> </context-param> <servlet> <servlet-name>XSLTFormsServlet</servlet-name> <servlet-class>net.sourceforge.schema2xforms.XSLTFormsTransformerServlet</servlet-class> <init-param> <description></description> <param-name>xsltforms_dir</param-name> <param-value>/xsltforms</param-value> </init-param> <init-param> <description></description> <param-name>xsltforms_baseurl</param-name> <param-value>http://localhost:8080/XForms/xsltforms/ </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>SimpleRESTServlet</servlet-name> <servlet-class>net.sourceforge.schema2xforms.SimpleRESTServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>XSLTFormsCachingFilter</filter-name> <filter-class>net.sourceforge.schema2xforms.XSLTFormsTransformerCachingServletFilter</filter-class> <init-param> <param-name>xsltforms_dir</param-name> <param-value>/xsltforms</param-value> </init-param> <init-param> <param-name>xsltforms_baseurl</param-name> <param-value>http://localhost:8080/XForms/xsltforms/ </param-value> </init-param> </filter> <filter-mapping> <filter-name>XSLTFormsCachingFilter</filter-name> <url-pattern>/forms/*</url-pattern> </filter-mapping> <servlet-mapping> <servlet-name>SimpleRESTServlet</servlet-name> <url-pattern>/forms/*</url-pattern> </servlet-mapping> </web-app> |
From: Stephen C. <ste...@gm...> - 2014-06-30 14:25:02
|
I am interested to know if anyone has had a similar idea and successfully found a way to build this. I have gotten most of the way to what I imagined but have found a flaw in my plan. Basically in a HTTP GET, depending on whether the request url ends in .xml or .html, the filter returns either the raw form or the translated version after applying xsltforms.xsl to the raw form. It also caches the translated .html version and returns that for subsequent requests. If a PUT, POST or DELETE comes through for the raw .xml version then the cached .html version needs to be expired. A filter seems to be the best option as the actual source or sink for the raw form can be any servlet. There are examples of caching filters so it would seem to be a simple enough thing to build. However, not so simple, as the filter needs to 'reroute' an URL ending in .html to one ending .xml before calling doFilter() (so passing the request up the filter chain) to get hold of an input for the xsltforms.xsl transform. Sadly it seems this is not actually possible. Obviously for it to work in a RESTful manner and transparently, both requests for raw and transformed form versions have to pass through the same filter. So, just in the hope that someone might have been here before and knows a work-around. If not I'll have do it via a servlet as I originally intended. Thanks Steve Cameron |
From: <ala...@ag...> - 2014-06-09 03:47:41
|
Hi Steve, > I have an XForm that is internationalised (ized), and it seems now via use > of the profiler that alot of the slowness in my form might be attributable to > that fact. So I am interested to find a better way if possible to achieve the > same goal as what I currently have. > I see that @ref is now supported on <xf:label> elements, so that is > something to try: > > http://www.agencexml.com/xforms-tests/testsuite/XForms1.1/Edition1/Chapt08/8.2/8.2.1/8.2.1.a.xhtml > What I have a present is a second model for my label strings and this has > a single instance with data of the following structure: > > <?xml version="1.0" encoding="UTF-8"?> > <labels lang="en"> > <languages> > <language lang="en">English</language> > <language lang="es">Español</language> > <language lang="fr">Français</language> > </languages> > <label-set id="header-title"> > <label lang="en">Forms-Wizard Designer (alpha)</label> > <label lang="es">Forms-Wizard Designer (alpha)</label> > <label lang="fr">Forms-Wizard Designer (alpha)</label> > </label-set> > > The label-set strings are used in the following way in the form: > > <xf:input ref="@name"> > <xf:label> > <xf:output model="model2" > ref="label-set[@id='name']/label[@lang=../../@lang]" /> > </xf:label> > > I presume that there is another control such as a select1 to change /labels/@lang value, is that right? The caveat with that is that the corresponding instance cannot be stamped as a read-only one and XSLTForms will check its contents for validation each time it will consider it necessary. XPath evaluation for expressions such as "elt[@attr = 'value']" requires, first, to retrieve all elements named "elt" then to apply a filter to each one. It sounds like a relational approach with a key. This is not the most optimized XML structure for XPath. It would be more efficient to define a sort of map with attributes (elements would be nicer for rich text values but a bit slower). In your example, something like this: <labels lang="en"> <label-set lang="en" header-title="Forms-Wizard Designer (alpha)">English</label-set> <label-set lang="es" header-title="Forms-Wizard Designer (alpha)">Español</label-set> <label-set lang="fr" header-title="Forms-Wizard Designer (alpha)">Français</label-set> and ref="label-set[@lang=../@lang]/@header-title" You could, even, add an action to copy the corresponding label-set into a work instance each time the select1 control has its value changed (not very often, I presume). It will, then, remove the lang predicate! With XForms 2.0, using a variable will be even better. BTW, there is also the itext ODK extension (http://www.agencexml.com/xsltforms/address.xml) but it does not specify how to change from one language to another so it is just getting the browser current language. I am convinced that XPath 3.1 maps will be useful for performance and JSON/XML convergence. I am already experimenting them in my own DOM implementation in Javascript to be used as a replacement for DOM4! > Apparently these label <xf:output> references get re-evaluated each time > there is a recalculation of the form. I did imagine (naively) that this would > not happen if they where placed into a second model, but that doesn't seem to > be what is happening in practice. > Dependencies should say that this is not required but I would have to check this more deeply... > > Also, I should be able to make that @xml:id to get a quicker scan of the > labels model I suppose, but does XSLTForms support @id attributes as unique > identifiers in data models? > Yes, id() function calls mixed with @xml:id usage should improve this. Thank you for your feedback! --Alain |
From: Mats E. <mat...@ya...> - 2014-06-07 20:45:05
|
Hi Alain, The submission in my case is to an "https://" address. So with a slight modification your suggested changes should work for my case too! Thanks!! Kind regards, Mats ________________________________ From: Alain Couthures <ala...@ag...> To: Mats Eklund <mat...@ya...>; "xsl...@li..." <xsl...@li...> Sent: Saturday, June 7, 2014 7:16 AM Subject: Re: [Xsltforms-support] Forms loaded from local filesystem Hi Mats, XSLTForms is currently considering that submissions from a local form are always for the local disk but, in your case, the corresponding resource should be starting with "http://", is that right? Could you please test replacing: at 7813, window.location.href.substr(0, 7) === "file://" with (window.location.href.substr(0, 7) === "file://" && action.substr(0, 7) !== "http://") at 7942, (window.location.href.substr(0, 7) === "file://" && method !== "get") with (window.location.href.substr(0, 7) === "file://" && action.substr(0, 7) !== "http://" && method !== "get") Thank you for your feedback! --Alain Le 01/06/2014 22:20, Mats Eklund a écrit : Hi, > > >I have noticed that XSLTForms does not seem to support the scenario of xforms submission to a web server when the form or instance document is loaded from local file system (file://). > > >I believe this is so since normally such submissions are disallowed in accordance with the browser's implementation of the Same-Origin Policy. > > >However, since there are methods for disabling the Same-Origin Policy (e.g. using Cross-Origin Resource Sharing (CORS) on the destination server or by disabling Same-Origin Policy in the browser (can be done in Chrome for example)), it would be nice if XSLTForms could support the mentioned scenario. > > >For my own purposes, I got the scenario to work by making changes to xsltforms.js (Rev 595): > > >7942: modified test in IF statement to never return true (allows for normal processing of xf:submission even if form loaded from file system) >7813: modified test in IF statement to never return true (prevents an unnecessary java applet from being loaded) > > >These are however only quick and dirty fixes. It would be nice if XSLTForms could support this scenario! > > >Kind regards, >Mats > |