Dan McCreary, Dan McCreary Associates
John Boyer, IBM
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Steven Pemberton, CWI (Chair)
Kurt Cagle, XMLToday
Alain Couthuries, AgenceXML [arrived late]
Steven Pemberton: Please send in your vacation schedule.
Steven Pemberton: I think it's live.
Steven Pemberton: I'm not sure we
did.
John Boyer: I don't think we decided.
We're chartered to do 1.2 but we can change it.
Steven Pemberton: I heard your
requirements and thought having 2.0 a profile would be good; then
it could be 2.0 Basic. That gets the message that a lot of features
are there, but 2.0 gives you XPath 2.0.
John Boyer: At a finer grain level we
could just have Recommended levels.
Steven Pemberton: We could but it
would be nice to have a keyword to look at. "We have an XForms 2.0
Basic Implementation" means you use XPath 1.0. Would that satisfy
your requirements?
John Boyer: That works for me. Even
before works for me. Are we making enough changes to warrant a 2.0?
The XPath engine is perhaps enough of a change.
Steven Pemberton: I think Nick said
that having the numbers parallel with XPath is a good branding
idea.
John Boyer: Yes.
Steven Pemberton: Do we have enough
people to make a resolution?
John Boyer: Are there any W3C rules
about that?
Steven Pemberton: Not that I
know.
John Boyer: Oasis has a
percentage.
Steven Pemberton: We could record it
as a decision instead of a resolution. We have decided it will be
called XForms 2.0, and XForms 2.0 Basic with only XPath 1.0.
John Boyer: And other things might go
in the 2.0 Basic basket that are optional or recommended instead of
required in XForms 2.0 full.
Steven Pemberton: Such as
schema.
John Boyer: We use
required/recommended/optional to nullify the issue of Basic, in
XForms 1.1.
Steven Pemberton: The nice thing about
the schema decision is that a regular form would still run on a
basic processor, it just wouldn't do certain extra things.
John Boyer: Even in 1.1 it's profiled,
to use datatypes.
Leigh Klotz: We took the datatypes and
XML Schema is already split into two. Relax NG also uses the
datatypes.
ACTION-1807 Steven Pemberton to update table of deliverables.
John Boyer: Is this the same as the
WG Virtual Meeting?
Steven Pemberton: We haven't merged
them yet. I think you suggested we make it a F2F. Shall we?
Steven Pemberton: Nick, Leigh, Erik,
maybe Kurt. I'm speaking at the UX conference. You can call in if
travel is difficult.
John Boyer: I don't know why we
wouldn't have a F2F meeting then. Let's do it.
Leigh Klotz: I should have space.
Resolution 2011-07-6.1: We have our next Face to Face August 29-31, 2011, in SF Bay Area.
Leigh Klotz: I tried this in
XSLTForms and have tried before and don't have a good
solution.
Leigh Klotz: Populate a list of items
not currently in the item.
Dan McCreary: And remove from the
other.
Leigh Klotz: So maybe an attribute
which says the column, but that's hard to do with select.
Steven Pemberton: Or use @while.
John Boyer: I see two common ways;
neither requires a copy. If I have two lists, I create two itemsets
and when someone presses the right button, that deletes and
inserts. There's no predicates on the itemsets.
Leigh Klotz: Are you using a select to
show the items?
Dan McCreary: I have also needed to
move an time from one list to another an item...typical use case is
to select columns on a report two lists with arrows pointing to the
right and left between the lists each arrow will move the selected
item from one list to another
John Boyer: Itemset a, itemset b, and
press the button and delete/insert from a to be or vice versa.
That's pretty trivial.
John Boyer: The other is list with a
boolean on each, and you change the boolean with predicates on the
itemset list with a and b.
Steven Pemberton: So a listener hangs
on the selected item?
John Boyer: No, two triggers. It
starts as an insert and the origin is the thing to delete
next.
Steven Pemberton: Can you write it
up?
John Boyer: Yes.
Dan McCreary: I'll write it up in the
wikibook if someone sends me sample code.
ACTION-1808 John Boyer to reply to http://lists.w3.org/Archives/Public/www-forms/2011Jul/0000.html
Steven Pemberton: We've decided to
have XForms 2.0 with XPath 2.0, and XForms 2.0 Basic with XPath
1.0.
Alain Couthuries: OK.
Steven Pemberton: And the August
meeting in the SF Bay Area is now a F2F. You can join by
call.
Alain Couthuries: OK.
Nick van: I updated the expression
module with the changes we agreed on. John had some suggestions
about XPath 1.0 mode which I did. I asked if we should recommend an
XPath 2.0 engine?
Steven Pemberton: The full version is
XPath 2.0. I agree we should recommend using XPath 2.0.
John Boyer: In XForms 2.0 Basic, which
of XPath 1.0 and XPath 2.0 is required?
Steven Pemberton: You are required to
have an XPath engine. If you have XPath 2.0 it's called XForms 2.0
and if you have XPath 1.0 it's called XForms 2.0 Basic.
Nick van: Is that language in the
profile document or the expression module?
Steven Pemberton: That should be in
the main spec.
Nick van: The main spec defines the
extension points but doesn't refer to the language.
Steven Pemberton: Almost
doesn't.
Nick van: Mostly in examples.
Steven Pemberton: For the time being
we don't have any other. We'll have a profile section at the end
saying XPath 1.0 and XPath 2.0.
John Boyer: We have Section 12
Conformance in XForms 1.1, including the model-only level with a
concentrated list of required/recommended/optional.
Steven Pemberton: That's a good thing
to do.
Kurt Cagle: You have the ability to
create extensions in XPath if the host language supports it. It
might need to address extensions.
Nick van: We have a proposal by Erik
for defining custom XPath functions based on how it's done in XSLT.
Steven and I looked at it at the editorial meeting in Amsterdam. It
needs some changes to be more like XForms.
Kurt Cagle: Would that extension
mechanism be part of the XForms 2.0 Full specficiation?
Steven Pemberton: That decision hasn't
been made yet.
Nick van: Currently it's language
independent.
Kurt Cagle: Would XForms 2.0 Basic
then not have the extension mechanism? I am a big fan of XQuery
modularization.
Steven Pemberton: OK
Kurt Cagle: So has XForms 1.2 gone
away?
Steven Pemberton: Yes, XForms 1.2 is a
profile of XForms 2.0.
Kurt Cagle: It's about time.
Steven Pemberton: If everybody agrees
we should have extension then we can mark it as 2.0.
Leigh Klotz: We haven't resolved
1.2/2.0 yet.
Steven Pemberton: Any objections on
the XPath exteions?
Nick van: Function extension.
Resolution 2011-07-6.2: The function extension mechanism will work for XPath 1.0 and 2.0.
Steven Pemberton: OK, on to XForms 1.2/2.0.
Resolution 2011-07-6.3: We're merging XForms 1.2 and XForms 2.0 so that XForms 1.2 is a profile of XForms 2.0.
Nick van: I made some changes. I
said you couldn't attach MIPs to it and John proposed a
get-association function to associate a node with an instance. I'm
not sure how it differs from extending instance(foo
,
true) to create an instance.
John Boyer: I hadn't heard that
proposal. Taking a step back, Nick is saying that there are ways of
creating nodes out of thin air that are not created out of any
instance in the source document. It's impossible to attach MIPs or
do any lifecycle operations on them. Such nodes are local to the
action or expression. They're very temporary. We have a need to
create such nodes: for an insert action and you want an @origin but
you don't want an instance containing the empty element to insert,
so use a create function with an empty template element. It's an
orphan node and so the language GC collects it. Nick is saying you
can't attach MIPs to that kind of node. You can have truly
temporary nodes, but if we do create some kind of way of
associating created nodes with an existing instance. Now MIPs are
automatically associated by bind: readonly, required, relevant. If
there were a way to attach a dynamically-created node with an
instance node, they wouldn't be orphans, but shadow trees.
Nick van: They don't belong to the
same tree.
John Boyer: An instance function would
call them, and a get-association function could get the associated
tree and it wouldn't be an orphan. The same way that boolean MIPs
aren't part of the instance tree; they're part of how we decorate
the instance tree. Once you can get access to these nodes with an
instance function and then an associated node, you can do that in
an XForms bind nodeset and attach MIPs to that. The point is you
can get at it. It then has a lifecycle beyond the node. This might
be too much fun or too big.
Nick van: It's quite complicated. It
makes another dimension on the instance. For now if you have a node
and it's not associated with an instance all the nodes are in the
same.
Leigh Klotz: This is custom MIPs whose
values are nodes, instead of simpleTypes.
John Boyer: Also could be nodes from
elsewhere, not just created nodes.
Nick van: We can't attach MIPs to our
MIPs?
John Boyer: You can't do that now
becuase MIPs are booleans, but if it is the root of a subtree,
those are actual nodes. Then why not? They're just shadow trees at
that point.
Leigh Klotz: You could use this as an
implementation technique; the instances could all be shadow-trees
of the Ur-instance.
John Boyer: We have only instance
nodes and temporary created nodes; we might envision runtime-DOM
homed created nodes.
Steven Pemberton: Don't we have some
already, such as repeat index?
Nick van: It says it's as if there is
a separate instance that contains the node.
Leigh Klotz: It's also scalar.
John Boyer: We didn't have any other
machinery for association.
Nick van: If there are good use
cases.
Leigh Klotz: This would be the outcome
of two separate decisions: custom MIPs and node creation. If we
have custom MIPs it won't be long before someone makes a custom MIP
of node type.
Kurt Cagle: ...
John Boyer: You might create and store
a node on the parent element of a repeated-sequence at startup and
when you insert, the associated-origin element might be what you'd
dig up. It's more efficient to create the prototype origin element
one time.
Nick van: If you have that in a repeat
you'd have an association for each repeat.
John Boyer: You don't have to.
Nick van: You can attach it to a
root.
John Boyer: And write a different
@origin.
Steven Pemberton: Do we have a
conclusion?
John Boyer: Food for thought.