Charlie Wiecha, IBM
Erik Bruchez, Orbeon
John Boyer, IBM (chair)
Joern Turner, DeramLabs
Leigh Klotz, Xerox (minutes)
Mark Birbeck, x-port.net
Nick van den Bleeken, Inventive Designers
Rafael Benito, SATEC
Roger Pérez, SATEC
Sebastian Schnitzenbaumer
Doug Schepers, W3C
Steven Pemberton, CWI/W3C
Susan Borgrink, Progeny
Uli von Lissé, DreamLabs
Keith Wells, IBM
http://lists.w3.org/Archives/Public/public-forms/2008Feb/0072.html
John Boyer: The US changes on to
DST March 9. When does Europe change?
Nick van: [irc] March 30. [until then]
we have the call one hour earlier starting March 12.
John Boyer: March 12, 19, 26 the call
will be one hour earlier in Europe.
Leigh Klotz: I made an
outline.
John Boyer: We should say that XForms
1.2 is part of the Forms Task Force deliverables.
Leigh Klotz: Done. I'll turn this into
prose and send it out.
John Boyer: I'll fix this and Mark should too in his Schema.
Action 2008-02-28.1: John Boyer to fix schema issue http://lists.w3.org/Archives/Public/www-forms-editor/2008Feb/0002.html
Action 2008-02-28.2: Mark Birbeck to note check fix in prototype modularized Schema for http://lists.w3.org/Archives/Public/www-forms-editor/2008Feb/0002.html
John Boyer: We discussed doing this
streamlined. We can treat boolean-from-string and unified as
separate issues.
Nick van: The unified context example
shows a normal bind with a nodeset and a context that overrides the
evaluation context. In the insert example, it applies only to the
first node in the nodeset. I don't think we want that. Normally
bind nodeset points to all the nodes, not just the first.
John Boyer: Inside bind, we have a
"repeat" mentality, so each node of the bind nodeset gets a
separate calculate.
Nick van: OK. So I can just copy it
completely.
John Boyer: Maybe a second example
that makes it clear that the MIP is repeated for each node in the
nodeset, not the context.
<bind nodeset="purchaseorder/items/item/lineTotal" calculate context=".." value="quantity * price">
input [readonly] name="result" calculate="a+b" input name="a" input name="b"
Erik Bruchez: I hadn't realized
that there was a proposal for a new syntax. The dot removal is
mainly for cases without an explicit model, right? So if you write
calculate="a+b" do you really need to translate this into nested
binds in the implicit model? You're not going to have nested
components in the view; it will be a quite flat hierarchy. I'm not
sure I understand the use case where we need to change the
binds.
Nick van: I did some writeup on
creating groups or repeats:
http://www.w3.org/MarkUp/Forms/wiki/Add_model_item_properties_to_UI_level
Erik Bruchez: So the hierarchy of XML
elements is not flat in that case.
John Boyer: There is a desire to
express the calculate as an element child of bind. That makes some
expressions easier to write. But it also opens the door to being
able to express, for example, multiple constraints under the same
node. For MIPs where that makes sense, it makes it easier.
Leigh Klotz: We've been turning our
attributes into elements pretty much universally.
John Boyer: We're doing it for a
different reason: going past adding attributes to them and in this
case doing it so we can reset the context.
Leigh Klotz: We're doing it for
syntax, since in both cases we wanted to add an attribute to an
attribute.
John Boyer: And also because we
wanted, in this case, multiple constraints, which you cannot do
with attributes. You can't do it with multiple attributes of the
same name so you make them elements. It's unwieldy to write big
boolean OR and AND expressions.
Leigh Klotz: That begs the question of
whether you want to have a container element that says how to
combine them.
John Boyer: We have that as a starred
item.
Nick van: Two binds that have nodes in
common isn't helped by child elements; you have to split it into
three. One for nodeset a, one for b, and a third for nodes in
common.
John Boyer: Generally speaking you're
right; you will need separate binds that happen to match some of
the same nodes. In my view, as soon as we open the door to more
than one constraint on a node, it doesn't matter if they're all in
the same bind or not. I think it in unified context about
combining.
http://lists.w3.org/Archives/Public/public-forms/2008Feb/0022.html
Leigh Klotz: Why not use and and or or
allof/anyof rather than constraint/@operator.
John Boyer: Sometimes there's no
opportunity to create a child element; you could have two binds
with constraints and the default combination is and.
Erik Bruchez: You could imagine using
an and operator to say a node is valid if all constraints are
invalid; the type constraint, the constraint case, etc. You can't
use grouping go do that.
Nick van: [irc]
<bind nodeset="//*[@type=<code>b</code>]" constriant=".."/> <bind nodeset="//*[@class=<code>c</code>]" constriant=".."/>
<bind nodeset="X" constraint=". > 10"/> <bind nodeset="X" constraint=". < 100"/>
and
rather than <and>
I see it's because you need to group siblings under different
binds. However, I'm not sure either is the right solution; there
may be a better way to combine them. Mark Birbeck: So what about the
MIPs on input controls.
Mark Birbeck: ...
Nick van:
http://www.w3.org/MarkUp/Forms/wiki/Add_model_item_properties_to_UI_level
John Boyer: It's a fairly big thing
for 1.2 to have MIPs not on the MIP.
Mark Birbeck: We have MVC but that
doesn't mean there's only one. We can have multiple views on the
model. You can't have a node in the instance data that's viewable
as a string of text if it's set to a type of date. There's use
cases where that's not desirable, propagating to the view. But
there are many use cases. Picking up someone else's model that we
don't have to alter as a black box is good O-O practice.
John Boyer: We need something as
simplified on-the-glass syntax. Separately, we need to be able to
control properties of user interface controls. If you look at
XForms 1.1 now, there's the notion of model relevance; there's also
an implicit and not-yet-but-subtle notion of control relevance. You
don't have a direct way of overriding it or setting it. It's based
on teh data layer plus UI containment.
Leigh Klotz:
ref=.[x=y]
John Boyer: And whether you're bound
to a node. So we may need control relevant vs. data relevant.
Mark Birbeck: If you have a set of
automatic rules that propagate, then in a way you don't need the
distinct attributes. A bind with readonly would set the model
readonly value which would propagate to all controls. On the
control, we could say it only applies to the control. If someone
wants, as part of the onramp with bind distinct from model, then
the author could optimize by a bind statement to replace readonly
on three input controls.
John Boyer: If those three input
controls were bound to the same node?
Mark Birbeck: Yes, at a certain point,
or a date would be a better example. Create a bind statement, bind
x type=date. That's a nice, natural flow. It wouldn't be wrong to
have type=date on five different controls, just like it's not wrong
to write your code inefficiently. It makes it natural without
having to understand MVC, which they may eventually discover and
get even more benefits.
John Boyer: What about
calculate?
Mark Birbeck: I don't agree that
calculate should go on input. I think output value=expression is
fine and that's already in the UI, not the model.
John Boyer: We already have the
ability to bind a node to an input.
Mark Birbeck: So use output. If
someone's entering their name in the form, output is fine. If
you're summing values, then you're in bind territory anyway.
John Boyer: How do you want up writing
a tabular purchase order without explicitly using bind. It seems
like I should be able to do that. I kind of have to have a data
view of what's going on.
Mark Birbeck: I see. Output isn't
quite enough.
John Boyer: You'd need output with ref
and calculate.
Mark Birbeck: I was thinking of output
value=. But we should look further at the name= syntax, a shorthand
for a named node. Maybe $name=$x+$y. But I haven't thought it the
way you are. That would be the value of the node and you could sum
the invoice lines and the total and have an input control for the
tax rate and use that in other parts of the form.
John Boyer: Or if the tax rate were a
constant or obtained elsewhere, the subtotal and grand total
calculations would be... Maybe the next step here is to try to take
the simple PO scenario and express it in simplified syntax until
we're all happy with it.
Mark Birbeck: Hmmm...
John Boyer: I have a starting point.
Charlie:[irc] +1 for example-driven approach
Steven Pemberton: [irc] +1
John Boyer: Mark, would you work with
me on it, maybe for next week.
Mark Birbeck: That's a very good
idea.
Action 2008-02-28.3: John Boyer and Mark Birbeck to put together simplified syntax straw proposal for purchase order example to make sure we have repetition capability and non-trivial calculation.
Mark Birbeck:
<input name="surname" /> <output name="full-name" value="concat($first-name, ' ', $surname)" />This is what we discussed before, but the difference now is that "full-name" could also be referred to in the same way.
John Boyer: Where do we publish
them and how?
Steven Pemberton: If we publish them
in our own space we can go ahead. The very first version was in TR
space, but there's no reason. It's a bit strange to do that as it
then becomes a WD that never goes anywhere. Personally I'd put one
in our own space. It is easier to update and it still reflects our
thinking.
John Boyer: Is there some kind of
requirement that a note go into TR space?
Steven Pemberton: If you want it to be
a Note you can but just a document that belongs to us is OK. We can
take the document and publish it as a Note later if we need.
John Boyer: So there is no requirement
to publish a requirements document as a note?
Steven Pemberton: As far as I know
there is no W3C requirement to publish a requirements
document.
John Boyer: What is the purpose of a
WG Note?
Steven Pemberton: It's usually
something that starts as a WD but then stops.
John Boyer: As long as we can publish
them in our own space.
Leigh Klotz: Might as well put them in
the wiki for now. I read that Mozilla got their contributions up by
a factor of ten by using a wiki instead of DOCBOOK format. We can
always go to XMLSPEC at the end if we need to but there's no reason
to go through it just to add a new line.
John Boyer: Right
Steven Pemberton: Right