W3C Forms teleconference February 23, 2011

* Present

Alain Couthures, AgenceXML
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Philip Fennell, MarkLogic
Steven Pemberton, CWI/W3C (chair)
Uli Lissé, DreamLabs
Erik Bruchez, Orbeon
Dan MacCreary, Dan MacCreary Associates

* Agenda

http://lists.w3.org/Archives/Public/public-forms/2011Feb/0024.html

* Previous Minutes

* Schematron

Philip Fennell: Alain mentioned something and I'm interested in using Schematron to alert you when you use features not implemented in all implementations.
Steven Pemberton: Such as ref on label in XSLTForms?
Philip Fennell: Yes, either phases or separate schemas per implementations.
Steven Pemberton: Ideally we'd have that in our yet-to-appear validator.
Leigh Klotz: We have a validator schema already. We need a spec.
Steven Pemberton: Is there a rule that says we have to have a spec to have a validator.
Leigh Klotz: Maybe I'm confabulating but I think we do.
Steven Pemberton: I'd missed that. Would a note be enough, with our Relax NG?
Leigh Klotz: Maybe so?
Steven Pemberton: Is that an action item for me?

ACTION-1778 Steven Pemberton to check into resolving what we need to get our RNC schema published as part of Unicorn. [on Steven Pemberton - due 2011-03-02].

Philip Fennell: We have the grammar validation with RelaxNG. The NVDL work I did was problematic. The idrefs weren't working across islands.
Leigh Klotz: RelaxNG idref doesn't work well anyway.
Philip Fennell: We can use Schematron on the side to check for implementation differences.
Steven Pemberton: We can add schematron bits.
Leigh Klotz: The RelaxNG schema we have is based on Micah Dubinko's and it used XPath rules in XSLT plus RNG. http://xformsinstitute.com/validator/ It's a good source to mine for ideas and rules.

* Nokia XFoLite

http://lists.w3.org/Archives/Public/www-forms/2011Feb/0002.html https://projects.forum.nokia.com/XFormsJ2ME/wiki/WikiStart

Leigh Klotz: Nokia have an XForms implementation and they added something about two weeks ago.
Steven Pemberton: In June they announced it to www-forms.
Dan MacCreary: Is this a commercial product?
Steven Pemberton: It's an open source result from Nokia Research. What's new?
Leigh Klotz: Looks like it's just build instructions, so not new, but still active.

* XBL2

http://lists.w3.org/Archives/Public/public-forms/2011Jan/0030.html http://lists.w3.org/Archives/Public/public-forms/2011Jan/0031.html http://lists.w3.org/Archives/Public/public-forms/2011Feb/0023.html

Steven Pemberton: Hypertext Coordination Group is again this Friday. We had a discussion. It got a little bit heated, but it was difficult to work out what the problem was. The question was whether there would be a Core specification with branches (WebBL and XBL), one specification with two bits, or two different specifications. Unfortunately, one of the people who was expected to be there (from Nokia) wasn't there.
Leigh Klotz: Doug said that optional features weren't covered by royalty-free patent policy, but I'm not sure I agree with that.
Steven Pemberton: Yes, I don't think the W3C patent policy says anything like that. You can find optional features all the way through W3C specifications. That notwithstanding, it wasn't a very good discussion. Did you feel we got any further?
Leigh Klotz: I explained how we would like to have XBL at the upper levels support the full XML stack with XML namespaces for XForms elements, and have the same language, or a subset (from our point of view), inside desktop browsers, to provide concrete component definitions. Chris Lilley said it was a good summary.
Steven Pemberton: We'll have to bring it up again this week.

* AVT

http://lists.w3.org/Archives/Public/public-forms/2011Jan/0032.html

Leigh Klotz: Do we have an AVT Wiki page?
Steven Pemberton: No, we should. BetterForm now has avt.
Leigh Klotz: I believe Alain is working on AVT.
Alain Couthures: Are AVT possible for XForms elements? Then I would have to change a lot of things. At the beginning only on HTML elements, not everywhere like in Orbeon.
Steven Pemberton: So Orbeon allows it everywhere?
Leigh Klotz: Not in XPath expressions, but XSLTForms has a single-pass, so if you had appearance, it's a constant.
Alain Couthures: It's possible but more difficult. I can do so some such as on submission.
Steven Pemberton: When are they evaluated?
Alain Couthures: It's like XForms output. It's about attributes on text nodes; it's not that difficult on HTML elements, but it's quite difficult on XForms. The constant values have to be an XPath expression. It's easier to implement first for HTML elements. For each and every XForms element it has to be done.
Erik Bruchez: In our implementation we don't support AVT everywhere. For example, we don't support AVT on the appearance attribute, probably for reasons similar to Alain's. It's an implementation detail. We should not be stopped by requiring AVT support everywhere. We should support AVT where dynamic values make sense. That's most places where we specify a constant right now. If we find some places where it's too hard to force implementators (@appearance, textarea/@mediatype) then we don't have to. There are not that many places where AVTs are used. All expressions that are already XPath expressions should not be AVTs, for example, as you already have a dynamic expression. As far as evaluation is concerned, one is submission elements. There it is quite easy as we have a processing model that is clear about when things need to be ready: @method, for example, should be evaluated right then. We have many attributes like that on submission. Another is on some actions: it's easy there too, because you evaluate it when you run the action. For controls, I have a list: http://wiki.orbeon.com/forms/doc/developer-guide/xforms-attribute-value-templates#TOC-AVTs-on-XForms-elements1
Erik Bruchez: So if your attribute doesn't contain a curly bracket, or you have two brackets that's an escape. The harder cases are the one that concern Alain, for example switching between a plain-text and rich-text editor. That's harder but we don't have to do it at first.
Alain Couthures: In XSLTForms we have the same issue with xsi:type. The HTML elements have to be changed.
Erik Bruchez: We have the exact same thing. We have custom code to switch between representations on xf:input. You'd have to go further. Textarea would be another one. If you happen to support another one, it would have to switch. One approach is to use XBL. The idea is that the template for control is an XBL, so you have XBL for input plain, date input, etc. If you have a mechanism that allows you to unbind and rebind XBL, then you can have a generic mechanism to change.
Leigh Klotz: That's how Mozilla XForms works; they surface the datatype of the bound node on the control as a pseudo-attribute and change it and the appearance.
Erik Bruchez: Exactly.
Leigh Klotz: It will be very interesting to use XBL2 or WebBL in the desktop browser.
Erik Bruchez: In a few years. For now you have to do the hard work.
Leigh Klotz: You've done it now. And others can know that they won't have as much work in the future. So we can get it in the spec now.
Steven Pemberton: Who gets to own it
Leigh Klotz: http://www.w3.org/MarkUp/Forms/wiki/AVT
Erik Bruchez: If nobody volunteers, I can try to own it.

ACTION-1779 Erik Bruchez to add content to http://www.w3.org/MarkUp/Forms/wiki/AVT

* seconds-from-dateTime

Erik Bruchez: XPath 2.0 returns the seconds component from a date. Ours returns seconds since the epoch. I did a quick note on the wiki about this in http://www.w3.org/MarkUp/Forms/wiki/XPath_2.0
Nick van: We have to decide.
Erik Bruchez: In XPath 2.0 you have minutes-from-dateTime, etc. It's very confusing. It's an issue with multiple function libraries and the potential for conflict. Do you use namespaces?
Nick van: All our XForms functions go in the XForms namespace in XPath 2. If you put the functions in the default namespace it's a problem. But I'm not sure it's a good idea to have two functions with the same name in different namespaces doing different things.
Steven Pemberton: No, I don't think so.
Erik Bruchez: Ours was there from XForms 1.0. So we can't say we were wrong. Both functions have been around for a very long time.
Nick van: Can't we deprecate seconds-from-dateTime and rename it?
Steven Pemberton: My gut feeling is that we should use the XPath 2.0 version, as it's the common technology, and rename ours to something else.
Nick van: Definitely, as they have minutes-from-dateTime.
Leigh Klotz: Do they have a seconds-since-epoch function?
Erik Bruchez: No, but you can subtract the date. To get the number of seconds since any date you subtract the date and you get seconds. If that's January 1, 1970 you get a duration, from which you extract seconds.
Nick van: You have to call minutes-from-duration, hours-from-duration, etc. And then multiply them.
Steven Pemberton: That doesn't work because of months.
Erik Bruchez: You subtract and get the duration and then I think they have a function....there is seconds-from-duration.
Nick van: That returns only the seconds part.
Leigh Klotz: Time to ask Michael Kay.
Erik Bruchez: I'm not sure who likes these functions. He asked for simpler functions but that didn't work out.
Leigh Klotz: I believe Micah Dubinko put it in as the only way to do date comparisons as all we had was strings.
Steven Pemberton: So in XPath 2.0 you can compare dates, so the use case disappears. I propose we say that we use the XPath 2 version and provide advice to users to get the same effect using the XPath 2 functions.
Leigh Klotz: We don't have a way to get the number of seconds. We do have a way to do comparison of dates.
Steven Pemberton: So do we think it's necessary? Is there anybody who thinks we should have a function that produces the number of seconds since duration? No, then we drop it.

Resolution 2011-02-23.1: We drop seconds-from-dateTime which returns epoch in favor of XPath 2.0 function, and encourage use of XPath 2.0 date comparison which was the motivating use case for the XForms 1.0 function.

* IRC Minutes

http://www.w3.org/2011/02/23-forms-minutes.html

* Meeting Ends