W3C Forms teleconference February 22, 2012

* Present

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

* Agenda


* Administration

Leigh Klotz: Should we get an early start on First Public Working Draft?
Steven Pemberton: I will tell Philippe le Hégaret know.

Action 2012-02-22.1: Steven Pemberton to contact Philippe le Hégaret about initiating FPWD for XForms 2.0.

* @iterate changes review

http://lists.w3.org/Archives/Public/public-forms/2011Dec/0002.html http://www.w3.org/MarkUp/Forms/wiki/XForms_2.0#The_iterate_attribute http://lists.w3.org/Archives/Public/public-forms/2012Feb/0023.html

Nick van: I have to incorporate the deleted nodes note into the spec, as we decided.
Leigh Klotz: We decided you would visit them and John agreed to use ../ to determine if the node was deleted.
Steven Pemberton: OK, we're waiting for that action item.
Leigh Klotz: I see, it's 0023.

* Review load/@show=embed; submission replace=embed


Leigh Klotz: I added load and unload, but not submission yet. betterForm and XSLTForms implement load an unload, but I don't know abotu submission.
Erik Bruchez: Why is this restricted to loading the content of a group?
Leigh Klotz: I wrote up what was common between XSLTForms and betterForm.
Erik Bruchez: I'd like a better rationale for that implementation. You have to design the form you are loading in a special way.
Alain Couthures: I believe it's for events to be attached to the group, if you want to know if the subform is loaded.
Erik Bruchez: There are two groups: the destination in the embedding form, and the group in the form to be embedded. It's ok to have a group in the embedding form, but why the group in the embedded form?
Alain Couthures: It's required for XSLTForms.
Steven Pemberton: It makes implementation easier for you if it is a single element?
Alain Couthures: It is required for the main form.
Leigh Klotz: Does the subform have to have a single group? That's what I wrote.
Alain Couthures: No, all the elements are embedded, I think.

Action 2012-02-22.2: Leigh Klotz to check XSLTForms and betterForm and remove restriction on group body content of embedded forms in load embedding.

Leigh Klotz: I need some help on the event sequence.
Erik Bruchez: If you remove the top-level group, how is the model scoped? Let's say the subform works independently. The XPath context will be the first node of the first form. Is the logic the same?
Leigh Klotz: What we said when we agreed to do this was that there would be no special scoping semantics defined.
Erik Bruchez: So input/@ref=. would work in the subform, but if I embed it, we need to say what happens when we embed it, which model. Is it the enclosing group of the embedded form?
Nick van: I thought there was no linking possibility to the outer form.
Leigh Klotz: We decided that ids were not changed, and the author had to insure that ids were consistent, so that implies that there is no restriction about subform bs main form, except for the usual cross-model restrictions.
Erik Bruchez: It's not clear what should happen if you don't specify a model.
Nick van: I think we should specify that the group surrounding the embedded form should work as if it has the model attribute.
Alain Couthures: With XSLTForms, not specifying any model, the context is inherited from the main form. It makes components. It's quite useful, for example within a repeat.
Nick van: Then the subform isn't a valid form; it's a piece of embedded form.
Alain Couthures: It can work separately.
Nick van: If you have a model, and thus a default instance. So the controls are bound to that. I see for custom components.
Alain Couthures: In XSLTForms, models are merged. So if they are identical, the second one is discarded. So the form can work separately, or embedded.
Nick van: So the model is ignored? So binds are lost?
Alain Couthures: I think bindings are kept, so it still works. They are merged, not replaced.
Nick van: Are they relative to where the form is? In the subform the binds are written as if they are in the instance in that model, and when you embed the subform in another form, it becomes relative to where it is placed.
Leigh Klotz: Models aren't scoped.
Alain Couthures: Models must be compatible.
Nick van: What happens?
Alain Couthures: The models are merged; you merge in the bindings and the instances.
Nick van: What if you're in a repeat?
Alain Couthures: You have to use relative paths.
Leigh Klotz: Consider the models loaded into the head. It doesn't say it here but it merges models, by id, and one by no-id.
Leigh Klotz: The special model with its no id has no issue. We have several use cases: self-contained subforms, subforms that refer to the default model and context, and subforms that refer only to models in the main form. Alain also has the model merging which I'm not sure is as easy in other forms.
Nick van: I think it should be how frames work.
Leigh Klotz: When we decided do do this, we decided to embed the form into the outer document. It sounds like you want a scoping model. What about ids?
Leigh Klotz: We brought this out because we had failed at a component model so we decided to do a dynamic version of xinclude. Then if you apply the rules this is what you get.
Steven Pemberton: Can you live with it?
Nick van: I was mislead by the name. Component frameworks do not work like this.
Leigh Klotz: Right, this is dynamic xinclude.
Steven Pemberton: Do we need warnings?
Leigh Klotz: We could say that loaded models must start with group/@model.
Steven Pemberton: But that loses a use case.
Leigh Klotz: Two use cases.
Leigh Klotz: Sounds like we need three examples.

Leigh Klotz: If you don't have two id-less models and don't have the same ID model in form and subform, then this is just dynamic xinclude. Alain has a merging proposal, but I think it will be different.
Nick van: If you have a repeat, the binds will be on the wrong element. If you have a subform "address" then the root of the XML is the addressee element (first name, last name). When you embed this form in a repeat on addressee, then then UI will nicely show the addressees. But when you merge in the binds, they won't bind to the correct nodes any more, because the outer form has a set of nodes.
Leigh Klotz: Yes, that is a problem with model merging.
Nick van: Then you have to do something clever for model merging to have it bind at the appropriate point.
Leigh Klotz: Yes, I don't think model merging is ready. betterForm uses events between models.
Nick van: Then you have contained subforms. You get communications via events. http://betterform.de/doc/betterFormUserGuide.pdf
Leigh Klotz: I think betterForm has less support for components than you think.
Leigh Klotz: They don't solve the id problem, and they have an inter-model communication instanceOfModel(model-a, default)/origin.
Steven Pemberton: So we don't have model merging in.
Leigh Klotz: I don't think it's ready. I think Nick's point is that we can get a component model out of this by doing model scoping.
Erik Bruchez: I think either it's just straight inclusion or it's a component model, if it's something between it's a hack. I don't think we can quickly get to something everybody would agree on that provides some isolation and scoping. That would mean some kind of shadow tree; we do have a shadow tree, but some implementations do not, and wouldn't be able to agree on a full component model.
Leigh Klotz: I think we agreed to dynamic inclusion before, and decided not to do a component model. We want one, but don't have it.
Erik Bruchez: Is there a consensus that we want something more than a plain include?
Steven Pemberton: We haven't reached a point where we've found something that solves it for us.
Nick van: I think we should go for a simple dynamic inclusion thing, or we go for components and not try to do something in between.
Leigh Klotz: We decided to do dynamic inclusion. betterForm has instanceOfModel but Alain points out we don't need it, as you can use insert.
Nick van: I think we need something to explain the confusion.
Leigh Klotz: The processors will just work as if it were xinclude. I think for authors it would be useful and I think that's examples.

ACTION-1872 Leigh Klotz to write up 3 examples of load embedding for XForms 2.0.

* IRC Minutes


* Meeting Ends