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
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.
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.
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.