Alain Couthures, AgenceXML
John Boyer, IBM
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Steven Pemberton, CWI (chair)
Kurt Cagle, XML Today
Uli Lissé, DreamLabs
Erik Bruchez, Inventive Designers/Orbeon [joined late]
John Boyer: The Ubiquity XForms
code was forked at some point, and Mark Birbeck needed a lighter
weight process, and the work has been going on in Backplane. The
active copy is no incorporated into Backplane, so we now have only
one open-source project.
Steven Pemberton: So the github one is
the active one and the one on Google Code will be removed?
John Boyer: We'll let people
transition over first. It's Mark's project.
Steven Pemberton: It's been turned into a public group. There have been no meetings until recently, due to some confusion over the change in mailing list.
Leigh Klotz: The last message is an
OK from Erik to John.
John Boyer: That already has an action
item and part of that is that Erik has no concerns.
Steven Pemberton: So we can close this
item.
John Boyer: I was discussing this
problem with a solutions group recently. They need optional
elements and attributes during form initialization and during
instance replace in submission. They accept XML without the
optional nodes and the items on the form disappear because the
XPath doesn't bind. The Schema is in the form; they wonder if there
is anything that can be done. They route their traffic through a
filter that takes the XML data and does the injection
mapping.
Steven Pemberton: There's a large use
case for the controls turning up even if the elements or attributes
aren't in the instance?
John Boyer: Whether it's a case that
in response to xforms-model initialization and replacement that
those elements get generated, or the UI controls turning up when
bound to things that don't exist, those are two different
implementations of the same thing. They've done a back-end process
that turns it up.
Leigh Klotz: Is that done from the
schema or something more descriptive?
John Boyer: Indirectly; our form
designer creates the form with all optional elements.
Leigh Klotz: I believe you need the
human experience to turn the schema into an instance.
John Boyer: That's not the case. We
generate the structure. The schema is used only for leaf-node
types.
Nick van: You can create infinite
documents. For example, HTML div. You can't design with every
scheme.
John Boyer: I don't see this happening
with data, not documents.
Leigh Klotz: We have an arbitrarily
nested XML query language. You could generate a seven-level query
with only one or two leaf-node binding points.
Steven Pemberton: Also editing XHTML,
and editing family trees.
Leigh Klotz: I don't think there is
enough information because XML Schema creates a class of documents,
not a unique document.
John Boyer: ...
Leigh Klotz: You'd need the attributes
from insert decorating input.
John Boyer: Essentially, but input is
leaf-node only. With the schema you might be able to do it.
Nick van: I have a similar use case.
We do conditional insert. My initial email contains concerns that
with predicates and repeats it gets complicated. With optional
elements, and form controls, it's hard to generate the XML.
Leigh Klotz: I see a lot of solutions
that work on the design side, taking information from
underconstrained sources, but it's hard to see that working on the
processor side reliably.
Nick van: We need a lot of extra
information.
John Boyer: Essentially, you've got
the desire to have a UI control show up whether it has data or not
as Steven said. When combined with the structures in schema, that
could generate one or more elements in depth.
Leigh Klotz: Maybe we can satisfy this
with another set of binds and other constructures (non-leaf node,
for structure) output by your design time. So not just leaf-node
defaulting but structure as well.
Nick van: Our product outputs inserts
and so on. It would be convenient to be expressed in the UI.
John Boyer: I would today generate
model-construct-done and xforms-submit-done handlers in my design
experience. They'd click a checkbox and I'd do it but not in the
UI.
Nick van: If you are creating the form
by hand I'm not sure how to express it easily but not everything is
with bind.
Steven Pemberton: Either in the model
you say you want it here with initial value, or in control you have
a version of reference that says if it's not there.
Leigh Klotz: Yes, but you'd need the
extra attributes from insert to say where to insert it. We have the
first-node rule in SNB and we can't have that here.
John Boyer: a/b/c/d may have many a
elements. Or there may be no c or d. You may have to insert a c and
a d.
Leigh Klotz: And under which b. And if
b has @name, then which one? In RNG you can say that
b/@name=title
must exist but not in XML Schema.
John Boyer: And with XPath
predicates.
Steven Pemberton: Are there example
implementations?
John Boyer: Erik doesn't generate
nodes.
Nick van: We generate nodes with
insert. Doing it by hand is a lot of work.
Steven Pemberton: That's where the
original wish for doing it in a declarative way came from. You can
do it but it's difficult.
Nick van: It may be too big an issue
for XForms 2.0.
Steven Pemberton: Without a proposed
solution?
Nick van: I'm worried it will take a
long time to find something good enough to solve most of the use
cases.
Erik Bruchez: [joins]
John Boyer: I feel that most of the
use cases are solved with the amount of information that's
available in Schema. I can live with the design environment
solution, but it's come up a couple of times.
Leigh Klotz: I am tending to agree
with Nick; it's a good idea to do but I don't think we can design
it here.
Nick van: Repeat iterations and
optional options make it harder.
Steven Pemberton: Sounds like it could
be in the controls; with the repeat, for example. I hear a need for
specifying use cases.
Leigh Klotz: ...
John Boyer: I don't buy the repeat
argument; if maxOccurs is greater than 1, one is enough to start.
Looking at repeat/@number=6 could be better, but it's not just
perfect or not at all. They could write custom stuff.
Leigh Klotz: Running out of road is
OK, because the questions from authors will be "how do I do this"
but having it silently build the wrong structure seems wrong.
John Boyer: It would have to be
opt-in.
Leigh Klotz: We have a two clear spots
where we do this, which you've mentioned. Can we get someone to
write an XSLT that takes the schema and the instance and possibly
the form and outputs the new instance?
John Boyer: Sounds like an impossibly
clever person.
Nick van: If you have no input, you
won't loop over everything.
John Boyer: You'd have to be really
smart.
Nick van: You start from the schema
and merge in the data.
John Boyer: I would find it hard to
express the algorithm in XSLT, but that doesn't mean I can't
express it.
Nick van: Depending on type
attributes, you could have two UI shown. With such a form you can
never generate the XML because
Leigh Klotz: Because it has
choices.
Nick van: If there is in the form data
of type a, you can put that in your UI and then you can solve that
use case.
Leigh Klotz: If we had an event sent
to orphaned form controls and they could do insert, would that be
enough?
Nick van: No, because it might
....
John Boyer: Right now we describe
non-relevance as XPaths that don't resolve to a node. Form controls
that are non-relevant disconnect their form handlers. So
technically, we would dispatch to non-relevant controls.
Steven Pemberton: We need to define
the use cases we'd really like to cover, and see if we can come up
with a notation that covers them. At the last editorial meeting in
Amsterdam, Nick and I came across a problem with what we came up
with last time. I'll try to come up with a suggestion to come up
with further.
Nick van: We have to be careful we're
not talking about only this issue in the next few
teleconferences.
John Boyer: We do have to get to
FPWD.
ACTION-1858 Steven Pemberton to attempt to find a notation for the initalisation use case