W3C Forms teleconference July 6, 2011

* Present

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]

* Agenda


* Summer Schedule

Steven Pemberton: Please send in your vacation schedule.


Steven Pemberton: I think it's live.

* XForms 1.2 vs XForms 2.0

Did we resolve this?

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.

* SF Bay Area Editorial Meeting Planning

Editorial meeting August 29-31, 2011, in SF Bay Area.

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.

* Move selected items from one select drop down to another one


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

* XForms 2.0 redux

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.

* Updated XPath 2.0 Expression Module

http://lists.w3.org/Archives/Public/public-forms/2011Jul/0002.html http://lists.w3.org/Archives/Public/public-forms/2011Jun/0054.html

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.

* XPath nodes that don't belong to an instance

http://lists.w3.org/Archives/Public/public-forms/2011Jun/0049.html http://lists.w3.org/Archives/Public/public-forms/2011Jun/0050.html http://lists.w3.org/Archives/Public/public-forms/2011Jun/0051.html

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.

* IRC Minutes


* Meeting Ends