W3C Forms teleconference September 28, 2011

* Present

Alain Couthures, AgenceXML
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Philip Fennell, MarkLogic
Steven Pemberton, CWI
Uli Lissé, DreamLabs
John Boyer, IBM
Erik Bruchez, Orbeon [joined late]

* Agenda

* XSLTForms Sliders

Steven Pemberton: It shouldn't be too difficult as there are libraries.
Alain Couthures: No, it shouldn't.

* Update to EMC implementation

https://community.emc.com/docs/DOC-7172

Steven Pemberton: EMC

* W3C Certificate of Completion

http://lists.w3.org/Archives/Public/public-forms/2011Sep/0026.html

Leigh Klotz: I saw W3C is running this.
Steven Pemberton: If we offered an online training course we could offer a certificate. It's a fairly normal thing.
Leigh Klotz: So this is being run by someone else?
Steven Pemberton: Even if it is, I'm sure we could offer a course.
Leigh Klotz: Michael Sperberg-McQueen and I'm sure IBM have training on XForms. Perhaps we should let W3C know so they can announce it.
Steven Pemberton: You can put it in submit-a-talk. If you give a talk, please fill it in. My experience has been that within an hour it's on the W3C home page.
Steven Pemberton: http://www.w3.org/2004/09/SubmitTalk

* Web Storage Review

http://lists.w3.org/Archives/Public/public-forms/2011Sep/0001.html

Alain Couthures: For the protocol used, it would be nice to use submission. The easiest way would be to use file:// or local-storage:// to use it more directly.
Steven Pemberton: Did you submit this comment?
Alain Couthures: Yes.
Steven Pemberton: So the suggestion is that we officially make such a URL scheme storage: for this API?
Alain Couthures: Yes.
Steven Pemberton: I think that is a good comment.
Leigh Klotz: Their example shows storage of data to and from a form control. We could suggest using an MVC XML approach as an non-normative example but I doubt they would respond.
Alain Couthures: There is a limit on the size of key/value pairs but it's not what it is.
Leigh Klotz: If people store JSON data or XML it's the same size roughly so we're in the same boat.
Steven Pemberton: We could just associate it with a URI scheme and need not have any support from their spec. I believe Mark Birbeck had big cookes.
Leigh Klotz: Giant Cookies.
John Boyer: We do the same thing, with a known file location. But people prefer to use regular cookies in their servlets and don't want to do it within teh form.
Leigh Klotz: There are advantages to local storage for REST-based applications because you don't have to worry about sharing the data server-side in load balancing.
Alain Couthures: And offline forms.
John Boyer: That's what I thought, but it's a "nice to have" for our customers, not critical, and we already save the entire form.
Alain Couthures: I have contact with people in India doing offline medical applications.
John Boyer: We use our own local storage.

* Shadow DOM

http://lists.w3.org/Archives/Public/public-forms/2011Sep/0006.html

Leigh Klotz: I asked Philippe Le Hégaret to see if W3C would get involved in this effort, currently lead only by WHAT-WG so we can use it.

* Advanced File IO

http://lists.w3.org/Archives/Public/public-forms/2011Sep/0023.html

John Boyer: I wonder if this was sent to the wrong group as he's talking about XSLT. We've had similar discussions about XForms submission mediatype serialization, and that's what the xforms-submit-serialize event is for, given some (not too bad) limitations. Our product allows you to use an xf:submission/@mediatype="our document MIME type" and it will behave as if there were a listener for the xforms-submit-serialize event to produce our entire containing document back to the server.
Steven Pemberton: What is the format? John; XFDL
Steven Pemberton: Is it XML?
John Boyer: Yes, but most people don't prefer to use the uncompressed XML. The precise layout information compresses very highly; however, this serialization format uses ZIP+Base64. So, this question asks for ODF, but it's a binary format. In our MIME type when we say application/vnd.fdl we say that the Encoding is Base64+GZIP, and this gets around the text problem without any challenges.
Steven Pemberton: It's similar to how we treat JSON. A structured document comes in, we spot it, and convert it to something like an XML document, and then serialize it back to how it was.
John Boyer: I have talked only about the whole containing document. JSON has the problem that you take it as input as well, but this whole-document situation doesn't have that problem. It's slightly simpler than the JSON case. The complicating nature is the binary format; and I suggest solving that with Base64.
Steven Pemberton: Perhaps I read it differently. I thought he was producing an ODF file from XForms in some way, in the instance.
John Boyer: He seems to be wondering if there is a way for XSLT to output. So I read this as asking the wrong group, but our various submission attributes were designed to be in line with an XSLT output.
Erik Bruchez: [joins]
Steven Pemberton: So do we reply it's the wrong group?
John Boyer: Yes as we're not XSLT, but if he wants to submit the format back to a server then we can suggest the base64 encoding. I can't imagine an ODF inside instance data. Most of the document is presentation and unstructured content and then there is a possibly an internal XForms model.
Steven Pemberton: It sounds like you are the ideal person to reply.

ACTION-1827 John Boyer to reply to http://lists.w3.org/Archives/Public/public-forms/2011Sep/0023.html

* Permutations

https://www.ibm.com/developerworks/mydeveloperworks/blogs/JohnBoyer/entry/randomizing_the_responses_to_a_survey_question_in_xforms29

John Boyer: My project went well, thanks in part to Nick's suggestion. It would be nice to be able to indicate this on a select1/@appearance. In our product's XForms schema I changed @appears to allow a space-separated list.
Steven Pemberton: I'm not convinced it's appearance; it looks so much like a function.
John Boyer: I agree with you for XPath 2.0 sequences. We went through a lot of work in XPath 1.0 so that nodesets are in document order. [See corrected remarks from John Boyer at http://lists.w3.org/Archives/Public/public-forms/2011Sep/0033.html]
Nick van: I'm not sure if I like the appearance thing. Do we really want to add an appearance if we think the function is more flexible? And for 1.0 it's a bit of a problem.
John Boyer: We have differing opinions in an area that doesn't matter. I use randomization as an example of how we might want to have extension keywords that decorate multiple appearance hints.
Steven Pemberton: So you want only the multiple?
John Boyer: Yes, it's just a list in our version.
Steven Pemberton: We agreed to that.
John Boyer: I don't know where the schema fo XForms 2.0 is.
Leigh Klotz:

John Boyer: There it is.
Nick van: So not adding that random appearance.
John Boyer: Right. In my example, if you make a choice the permutations come up again and the data level is selected.
Nick van: In this example where you want a random order, it is enough for appearance, but if you want sort order, you need access to instance data and it's not possible with appearance only.
Leigh Klotz: With XPath 1 you eventually run out of hacks. XSLTForms also uses XPath 1 and it works, but it's getting long in the tooth. Sorting predicates are going to need XPath 2.
Nick van: ...
John Boyer: Yes, in a repeat, it's clear a function won't work in XPath 1. The repeat-index indexing back in the data won't work with @appearance, or insert or delete.
John Boyer: My next project is sorting: I've discovered that the best sorting performance is on the O(N^2 log(N)), unless you use @iterate and efficient insert, you can get O(N log(N) log(log(N))). With @iterate you can get a simple, easily-understood O(N^2) sort.

ACTION-1828 John Boyer to allow space-separated @appearance in http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0_RNC_Schema http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0_RNC_Schema

* Knockout.js; XForms like framework for JSON for regular HTML

http://knockoutjs.com/

Philip Fennell: I'm passing this along from a colleague.
Leigh Klotz: It says "Declarative bindings, automatic UI refresh, dependency tracking, templating"

* valid()

Erik Bruchez: I changed the wording about when the function would throw an exception. We said that it "should" throw an exception in binding expressions. The text is there. We use binding exception on on id links and on binding expressions. I think it's the correct behavior and follows XForms 1.1 when there are expression issues, but the group could verify it. There is a note explaining when it is safe to use the function. I added a note saying why it is unsafe to use on bind, as we discussed. It would be good if someone could look at the text and confirm that it is good to go.
Erik Bruchez: I have a couple of questions. Leigh, you mentioned an invalid() function. Was there an action item to specify it?
Leigh Klotz: It would be for the excluded middle, as we have done with xforms-valid and xforms-invalid events, and for similarly with CSS. If we have a case where a node is neither valid nor invalid then we would need two functions, both of which would return true. You would know when you need it because the excluded middle would appear.
John Boyer: It did happen during the relevance discussion, so you are right, Erik. So if it's non-relevant you could get false on both. So we decided instead to use the $relevance parameter, more like submission.
Erik Bruchez: I'll look for cases.
Leigh Klotz: Let's just do it lazily; it will be obvious when we need it because we'll find that true and false are both wrong. For relevance, we did it a different way.
Erik Bruchez: OK.

Erik Bruchez: I have a second question; do we test leaf-nodes or trees? In Orbeon we have a flag. Do we need a way to test a whole subtree? There is one use case, which could be problematic: a leaf element with an input field bound. Right now it uses a subtree, and the attribute is invalid, and the function would take both into account. If we had named parameters, it would be a no-brainer, and we already have a boolean, it's not very elegant.
Leigh Klotz: .//*|@* would give you the tree. You can't use the first node rule.
Erik Bruchez: It might be a bit slow. In XPath 2 you could write .//(*|*/@*)/valid()
John Boyer: It sounds like the main problem is a complex-type with simple content. Such as a currency validation. We have to ask a specialized validity content to have the.
Leigh Klotz: I thought this was the problem I found with XForms Basic.
Erik Bruchez: <price type="bar">10.42</price> <bind ref="@type" constraint=". = (a, b)"/>
John Boyer: We did this to make XForms 1.1 work.
Steven Pemberton: What is our conclusion?
John Boyer: Invalid attribute on a complex element needs a different look. We don't have an answer yet.
Steven Pemberton: So Erik's action is closed.
Leigh Klotz: The use is limited by this problem with validity.
John Boyer: It would be nice for someone to have an action item to figure out how to amend the valid function.
Erik Bruchez: I can get started.

ACTION-1829 Erik Bruchez to start discussion on valid() with complex types.

* IRC Minutes

http://www.w3.org/2011/09/28-forms-minutes.html

* Meeting Ends