W3C Forms teleconference October 29, 2008

* Present

Charlie Wiecha, IBM
Erik Bruchez, Orbeon
John Boyer, IBM (Chair)
Kenneth Sklander, PicoForms
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Roger Pérez, SATEC
Uli Lissé, Dreamlabs
Keith Wells, IBM
Paul Butcher, WebBackplane [joined late]

* Agenda


* Rich Web Application Backplane

Charlie Wiecha: I'd like to de-brief on Wednesday in general, both TPAC and Plenary. On the Backplane, TV Raman I met with the Multi-Modal group. We started with the Ubiquity implementation. There was some discussion for JavaScript tag libraries for Voice XML; speech and search are native, but the semantics of the markup could be factored away. There were interested in this this approach, and have had similar platform issues.
Charlie Wiecha: Then we did demos of the data model from the backplane group, for cross-component coordination. We showed a mortgage-wizard spreadsheet in ODF rendered using a Dojo grid control. The spreadsheet total is the passed to XForms via a JavaScript setvalue function from the ODF side. The form refreshes and recalculates implicitly. They didn't see why that was multimodal, but I explained it was cross-component, which is the same.
Charlie Wiecha: Then we showed it with a Voice XML form using DOMFocusIn using Chris Cross's voice prompt extension for fields. It doesn't do the wizard from ODF but it's a modality assist. That also does a setvalue back into the data model, which does an update. Unlike earlier multi-modal proposals (such as X+V) which were control-to-control wiring and local interaction, this goes to the data model and synchronizes value-spaces. They liked the deeper-level connection.
Charlie Wiecha: Rahul from our team then talked about using the data model in Voice XML 3.0. There is nobody from Voice or Multi-Modal on the XG yet.

* Layered UI

Charlie Wiecha: Dave Raggett has an XG called the Layered UI. At the low level it fits with XForms. There has been academic work in the past decade on layers above it, task modelling and business processes. I gave a presentation on how to connect their academic work to XForms. One presentation they did was connected. I don't think W3C is a good place to do modelling layer specifications, though, and I said that.
John Boyer: Modelling only is not something that the W3C is very receptive to.
Charlie Wiecha: I think it's an uphill battle for Dave. There's a big gap around rich internet apps. I don't think he's ready to tackle the area around it.
John Boyer: They need to have the mental model available so they can do it at runtime.
Leigh Klotz: I'm interested in a related topic, which is to replace the XSLT level of Chiba with Freemarker or PHP and allow web designers to design the whole system in the markup, including XBL-like behavior and decoration of elements based on type and appearance, with the XForms model driving the data and the existing underlying machinery handling the dynamic updates. The same XForms markup could be static, or dynamic, and could bottom out in glass or in server-side templates (which could be recursively be more templates or more XForms, or just glass). This may have been what Joern Turner had in mind years ago, and I'm just catching up. But I think that XSLT isn't the right language for designers; we're ignoring this design-time process you mention, and bringing something more fluid and understandable such as Freemarker might help. Ubiquity draws the line and keeps it all on the client; I'm proposing a different approach to consider the templating process and integrate with it, allowing the same expressions to be used in both static and dynamic expressions.
Charlie Wiecha: It's an interesting idea that ties to Wednesday's discussion.

Charlie Wiecha: We had lots of informal discussions and it was exciting.
John Boyer: I'm sorry I couldn't be there.
Charlie Wiecha: We talked about the end-run strategy. TBL and Chris Lily jumped to the microphone and asked if this would be a great way to get out of the stagnation we're in. There were some questions about namespaces, but that didn't go anywhere. The pushback was just that once we get MathML and SVG done we have no more need of markup. I pointed out that ODF and other languages were quite interesting. I think we made the point there are other vocabularies and we don't want to go through a single choke-point. The discussion was mostly about using Ubiquity as a tag library. The session went through the break and used some of W3C foundation time from Steve Bratt, so we got another half-hour because the discussion was going around script libraries as a continuum between base browser and markup. Chris went around and told the browser vendors to make a commitment to support this kind of extension technology, and XBL. They all said it was on their agenda.
John Boyer: That's great. So a specific message to Steve Bratt and TBL, for our rechartering.
Charlie Wiecha: If we can get someone (perhaps Chris) to own the tag library extensibility, that would be great.


Nick van: I had a meeting with one of the chairs, and he felt we needed to work find a way to work together. I sent email to follow up but haven't gotten anything back yet.
John Boyer: Worst-case is that we finishing it alone as a first public WD. If we then build it in Ubiquity, we can (as Leigh said) get support of multiple implementations of a browser-by-browser basis with Forms-A, such as in Internet Explorer. We don't just be talking about it; we'll be doing it across browsers. We can then set a timeframe for the cross-WG interaction, but eventually go to last call. If we then get it past CR, then we're have interoperating implementations.
Charlie Wiecha: Is it one implementation?
John Boyer: Leigh's point, and I think he's right, is that there are separate codestreams that get integrated to run in the various browsers.
Leigh Klotz: Write once, run anywhere? Anyway, I think getting the disablers removed the value we could get, by getting Chris to go back to the browser vendors to get them to leave XML (both data islands and host markup) alone.
Charlie Wiecha: It would be good to inventory these.

John Boyer: Another good thing to do would be the take the "X" out, next year, and deal with JSON for example.
Charlie Wiecha: One of the XG folks I mentioned claims to be doing that.
John Boyer: That would be good to get done.
Charlie Wiecha: A fair chunk of FormsA is already in. I keep sending links.

John Boyer: It can be a good response to Ian's message. Instead of asking for declarative features, just describe the value. Otherwise, people get asked if they want a "gazorninplat" and will say no. Consider the purchase order: ask one question such as, do you want it to be this easy to add a row to a table, or to provide an ever-present sum? A big part of Ian's response was that he was looking at Dave Raggett's proposal, where the calculate attribute runs JavaScript, where you can't figure out the dependencies, or if you don't, "there's no language worth the trouble."
John Boyer: I don't think the average web developer needs to go very far to understand to use slashes. But we need a response. And we need a bigger forms example.
Leigh Klotz: We need a series of smaller examples.
John Boyer: We need to finish PO in FormsA, but we can't just show X+Y toys.
Leigh Klotz: An example of all simplified syntax would be different in so many places it wouldn't be a good introduction. I'll do an example of what I mean, showing how to do one or two things at a time and you can do it in FormsA.

* XForms 1.0 Basic Implementation Report

John Boyer: Please send me the 1.0 Basic implementation report.
Leigh Klotz: OK.

* Streamlined Syntax


John Boyer: It's pretty solid so far; changing to another solid representation will be easy.

** Form Containment


John Boyer: This attribute indicates that the element is a form, but some host languages might use an element, perhaps named form. You can have multiple ones per document. The form is the site of an implicit XForms model, which you can declare.

Charlie Wiecha: What's the use case for nesting of forms (not models)?
John Boyer: You have to separate contained forms and container forms, and we don't need two types.
Charlie Wiecha: We don't have subforms today. I see the need for having the whole form be one, implicitly at the root. Implicit nested model rules seem complicated.
Nick van: [irc] can't it just replace the implicit one, just like we do with instance?
John Boyer: Does anyone object to the restriction that you can't put forms within forms?
Charlie Wiecha: And the implicit document root. Error, or ignored.
Nick van: [irc] no, that is something of scope for XForms 2.0
John Boyer: Ignored. And as Nick says we can deal with nesting later.

John Boyer: So as soon as you use a form attribute in a contained location, forms outside that location stop working.
Charlie Wiecha: You'll have to introduce new form attributes.
Leigh Klotz: So if you have input, div, input, and the I add the form attribute to the div you can't have the inputs with a separate form.
John Boyer: HTML4 can't do that. This is the same model but not necessarily the same data.

Action 2008-10-29.1: John Boyer to remove nesting capability for form attribute in http://www.w3.org/MarkUp/Forms/specs/XForms1.2/modules/streamlined/index-all.html#form-containment

** Instance Data


John Boyer: Next is creation of instance data. There's the name attribute binding a form control and creating data. We have some fancy dancing with inputs with the same name.
Leigh Klotz: You can also have inputs with the same name, which is how repeat is done.
John Boyer: We achieve repetition by some other means. That's an interesting hurdle. So don't repeat things by using different input tags, but by a startsize attribute. Then increase or decrease the number of those things that you have. radios and checkboxes would be a legitimate use; see type. To initialize the data, we had to have a way to specially indicate certain of the controls bound to the same piece of data. In the case of radios and checkboxes, there's a different algorithm needed to initialize to a starting value.

Charlie Wiecha: Do we have a story for non-XML submission in FormsA? There still needs to be a way to do submission.
John Boyer: The primer will start out showing this issue. The serialization attribute will default to application/x-www-url-formencoded.
Charlie Wiecha: So an XML instance at runtime doesn't mean that it must be serialized that way.
John Boyer: We already have an algorithm for it.
Leigh Klotz: So are you going to put in JSON serialization?
John Boyer: I'd like to.
Leigh Klotz: Let's just put in a section for it and a reference and invite comment.

Action 2008-10-29.2: Leigh Klotz to provide reference for JSON serialization for FormsA.

Charlie Wiecha: We may need some serialization for implied model with the value. We need to say how to get access to the value.
Leigh Klotz: Right now you do document.getElementById(foo).value which I don't think is the same as the value of the attribute of the element whose ID is foo.
John Boyer: That reminds me we need a setter for markup.
Charlie Wiecha: And a getter.
John Boyer: Maybe get and set. They can define the effect on .value if they want.
Charlie Wiecha: Up to the host language.
John Boyer: I'm happier if we don't mess with host language attributes, but as Leigh points out it's not the same as the .value.
Charlie Wiecha: It's the runtime, that indirects into the instance.

Action 2008-10-29.3: John Boyer to put into FormsA a getter and setter for form controls.

John Boyer: My goal if first public working draft on this document.

* IRC Minutes


* Meeting Ends