W3C Forms teleconference July 8, 2009

* Present

Uli Lissé, DreamLabs
John Boyer, IBM (chair)
Charlie Wiecha, IBM
Leigh Klotz, Xerox (minutes)
Steven Pemberton, CWI/W3C
Erik Bruchez, Orbeon
Nick van den Bleeken, Inventive Designers

* Agenda


* Previous minutes

* Administrative Issues

** Next Meeting

John Boyer: Next week: Charlie chairs, Steven Scribes. Look in the IRC log for Zakim comands. The summer regrets are at http://www.w3.org/2002/09/wbs/32219/formsabsence2009/

** Calls

Steven Pemberton: I got a request for renewing calls; I may have missed it.

** Next vFtF

John Boyer: The July 2nd meeting has been moved to September 3.

** Action Item List

John Boyer: Nick's last action item list was updated June 24th; there are Juen 25th actions still to be added.
Nick van: OK.

* Improving the XForms 1.1 test suite


Charlie Wiecha: I'll look at it.
John Boyer: Please send list and CC to Nick to check in.

* PR Transition Request progress

John Boyer: Do we have the call yet?
Steven Pemberton: I'm assuming it will come in today.
John Boyer: It would be good to get it done so I can publish first.

* Test Suite Changes

John Boyer: We need both fine tuning and some other adjustments. We need to make sure any implementor changes have gotten back into the test suite.

** Fix 3.2.4.f and 4.4.18.a


John Boyer: The problem is with repeat nodeset. The event is targeted at the @nodeset element. In 3.2.4.f, the itemset element has an @bind but the bind is an invalid bind, and is supposed to be invalid so we get a binding exception. However, the handler for the binding exception is inside the itemset element and uses only ev:event. The spec is clear that any action handlers that appear in the repeated template (in this case an item) are made unavailable to the XForms processor. So you have to create an item with the itemset to get the handler, so since there is an invalid bind, you never get any actions, and never see the message. This test is easily fixed by moving the action handler outside the itemset and letting the binding exception bubble up to the containing select1 and handling it there. We could also use ev:observer, but that seems unnecessary.
John Boyer: Any objections to someone (me?) fixing this by moving the action handler out of the itemset?
Charlie Wiecha: Sounds like a good idea.
John Boyer: Anybody willing to handle the change?
Charlie Wiecha: I can do it when I do the others.
John Boyer: 4.4.18.a is not technically broken (xforms-scroll-first, xforms-scroll-last). In the example we show the handler outside the repeat since we want the handler run only once. A correct pass of test would have multiple occurrences of the handler. It already has ev:observer.
Charlie Wiecha: The file you linked to has already been modified.
John Boyer: That's the modified test from Ubiquity XForms. Ours uses default namespace qualification, for example.
Charlie Wiecha: And the model has been moved.
John Boyer: Yes, it's automated. The XForms markup is the same.

Action 2009-07-8.1: Charlie Wiecha to fix tests 3.2.4.f and 4.4.18a http://lists.w3.org/Archives/Public/public-forms/2009Jul/0001.html

* Fix 3.3.1.c1


John Boyer: We've fixed these type before. In Ubiquity we move the model element to the body. For whatever reason, a message handler targeting the model was outside the model. It's best practice to put them in the model. It makes the test better by showing that the event is targeted at the model. (We've had bugs where the event was targeted at the parent of the model.)

Action 2009-07-8.2: Charlie Wiecha to fix test fix 3.3.1.c1 http://lists.w3.org/Archives/Public/public-forms/2009Jul/0000.html

* Fix 9.1.1.a2


Charlie Wiecha: It claims the messages are listening on group, which is not the target of the disabled and enabled events. That's the case element.
John Boyer: At one point we didn't have the schema allowing action elements to be children of the case element. But they didn't set ev:observer. We could add a label to case (can we?) or we could add ev:observer. In the Conformance section we say that ev:observer support is recommended. It may be better to eliminate the group.
Charlie Wiecha: I went through Chapter 9 in Ubiquity and saw the messages appearing, a week ago.
John Boyer: Someone may be inadvertently attaching action handlers to the parents of group elements. Action handlers directly within a repeat need to be attached to the repeat...no, they will attach to the implicit group. Either way the test should be corrected. Hang on...that's a test of 9.1.1, not 9.2. I think the claim is mistaken. Yes, as a result of not selecting the case, the case element gets disabled, and the internal content becomes disabled. The group element receives a disabled event as a result of that.
Charlie Wiecha: A different event.
John Boyer: So this tests the behavior of group, not case. The task is to respond to Joern.

Action 2009-07-8.3: Charlie Wiecha to respond to http://lists.w3.org/Archives/Public/www-forms/2009Jun/0038.html that 9.1.1.a2 test is correct. (viz. minutes.)

* Responding to the incremental attribute (discussed last time)


John Boyer: Nick, please let me know if you need questions answered on this.
Nick van: I will try.

* Finishing actions on updating the test suite

John Boyer: Besides Charlie, does anyone else have updates? Please check your items.

* XForms Future Features

* Alternative schema engines


Charlie Wiecha: It seems straightforward. Who would be the constituency? We would have to have someone prepared to use it and implement it. This is XML data, not JSON data.
John Boyer: RNG or SchemaTron. Or event XML Schema 1.1. The updated engines have more power. That would be enough for us to want to do the generalization. Would this help XRX? Does eXist have support?
Leigh Klotz: Java has support for RNG now.
Erik Bruchez: W3C Schema specifies type annotations. I don't think it's the case with RNG. I don't know if you have the term "type" used by RNG. So whenever we discuss types, we'd have to see how it can apply to relax, if at all.
John Boyer: I was concerned about the fact that wiring in a new Schema engine would mean not just full validation before submission, but do they also have type libraries?
Erik Bruchez: I wonder about XSLT and types with Relax NG.
John Boyer: We need a JavaScript version for Ubiquity. We don't have anything but base datatypes.
Leigh Klotz: See http://www.oasis-open.org/committees/relax-ng/xsd.html . I think the result was that the XSD datatypes were brought into RNG.
Erik Bruchez: Yes, that's the easy part. It's just validating strings.
John Boyer: Can you derive types from them?
Leigh Klotz: Yes, they're called patterns. But they're not types. The thing that RNG lacks is the PSVI.
Leigh Klotz: I'm willing to do some thinking about it.
John Boyer: Then what?
Leigh Klotz: If the thinking is easy then one of the open source Java implementations would be an easy target.
John Boyer: So rather than predict, we could defer the implementation and try to predict only a few months in the future.
Leigh Klotz: I'm willing to work on Erik's question and see if we can get the type information out. In a Java implementation it happens almost for free, unless it's hard to do, in which case we won't do it.

John Boyer: So you focus on the RNG implementation and then we decide how to make it pluggable.

Action 2009-07-8.4: Leigh Klotz to examine Relax NG as a schema language for XForms 1.2, with a focus on data type integration.

* Implementors proposal for load/@show="embed", subforms

http://lists.w3.org/Archives/Public/www-forms/2009Jun/0022.html http://lists.w3.org/Archives/Public/www-forms/2009Jun/0023.html

Nick van: I talked with Joern and he thought that the component example was the real one.
John Boyer: Moreso than load?
Nick van: Yes.

John Boyer: I have a related question: are any implementation where the load is a javascript call?
Leigh Klotz: I think I saw it was when Allan was working on Mozilla XForms.
John Boyer: What does the show parameter mean?
Uli Lissé: [irc] load javascript is still working in mozilla xforms plugin; iirc, in chiba too
John Boyer: show=new or show=replace? What is the context? Do you replace the document or launch the JavaScript in a new window?
Uli Lissé: [irc] It's a hack.
John Boyer: OK, so maybe doing it with an action as in the September 3rd agenda is better.

John Boyer: So we aren't going to talk about that one any more.

* Node creation functions

http://lists.w3.org/Archives/Public/public-forms/2009Jun/0045.html http://www.w3.org/MarkUp/Forms/wiki/Node_%27create%27_functions

Nick van: In an XPath 1 implementation it would be global, but in XPath 2 it would be in the namespace. It creates a node. If it contains a namespace prefix it will use the in-scope namespace prefixes.
John Boyer: The current version of specxml only recognizes XPath 1.0 function signatures. We should go to XSLT 2.0 and find out what specxml they use.

Leigh Klotz: It should be possible to specify a namespace URI. Otherwise you can create only elements with static. You could have local name; local name and URI; or local name, URI and prefix.
Nick van: In XSLT2 has you can also use the namespaces that come from another element.
John Boyer: That can be more efficient since you don't have to declare the namespace prefix again.
Leigh Klotz: Are you talking about string comparisons?
John Boyer: The origin creates an orphan node with an xmlns:my in order to be namespace qualified; that is then inserted into a context.
Erik Bruchez: I don't know how the in-scope namespaces related to nodes in DOM, but any specification that looks at inserting new elements and attributes into a DOM will tell you that you have to do namespace fixup after insertion and you might have to do some magic. It's not necessarily an easy problem but other people have
Leigh Klotz: I think there needs to be a way to make an Element with local name, namespace URI, and prefix without those being statically declared.
Nick van: [IRC] In xpath 2.0 it is easy fn:expanded-QName("http://foo", "bar") returns xs:QName
Nick van: It is available only in XPath 2.0. I don't think it can be done in XPath 1.0.
Erik Bruchez: The need for other namespaces is rare for us. I wouldn't spend a lot of time on making it work for XPath 1.0 since it works in XPath 2.0.
John Boyer: The result that comes back from xf:element is a complete well-formed piece of XML.
Erik Bruchez: Yes.
John Boyer: That has nothing to do with XPath 1.0 or XPath 2.0.
Nick van: It's the arguments provided. In XPath 1.0, it's a string. In XPath 2.0, it accepts any basic type. Then an xs:QName already has th expanded namespace name and local name.
John Boyer: The implementation can still read the string and interpret as a qname. We do that in the id function.
Nick van: Then the prefix is there and you can't get the URI.
Leigh Klotz: So for XPath 1.0 you'd have the local name, URI, and prefix.
Erik Bruchez: Since we're using XPath 2.0 we don't need it.
Nick van: There is a second optional parameter of items.

Leigh Klotz: That's my second question. How come someone else isn't doing this?
Nick van: Saxon is already doing the parse.
Leigh Klotz: It seems like it would be more JDOM or XOM like if Michael Kay is involved.
Erik Bruchez: They're done in the language itself, with XSLT, for example.

John Boyer: You could use xf:attribute to create xmlns:my.
Erik Bruchez: Namespaces aren't attributes. In the InfoSet they are not considered attributes. I'm not sure what an implementation would do.
John Boyer: So xf:attribute cannot create a namespace node. Is there an xf:namespace node?
Nick van: Why?
John Boyer: So just create the namespace node.
Nick van: That's strange; look in the optional argument to create the namespace of the element?
Leigh Klotz: It creates the element and then adds the element.
Erik Bruchez: I think we shouldn't worry about XPath 1.0.
Leigh Klotz: I'd like to see if someone else can define this and we can contribute.
Erik Bruchez: You can ask Michael Kay but XSLT and XQuery don't need XPath node constructors.
Nick van: We can just define them in our own namespace and deprecate them later.
John Boyer: The only required XPath engine in XForms.next is XPath 1.0. So we still have to define them.
Nick van: We can import libraries.
John Boyer: If we want node creation to be required then it has to be expressible.
Erik Bruchez: We can require it for XPath 2.0 only.
Leigh Klotz: As in JDOM, add(xf:element("a"), xf:attribute("id", "value")) --> <a id="value"> and returns element A
Leigh Klotz: That separates the add content functionality from the element node creation and frees up the arguments for xf:element to be unambiguous (local-name) or (local-name, namespace-uri) or (local-name, namespace-uri, prefix).
Erik Bruchez: ...
John Boyer: I don't see anything wrong with what Nick has specified. The only thing we need is the ability to control the namespace declaration on the element name; either adding a namespace function, or with what Leigh has just posted. I like what Leigh has posted better.
Leigh Klotz: I don't see anything wrong with what I proposed, and Erik probably sees nothing wrong with his, but you want XPath 1.0 and Erik doesn't, so we should try to find an external forum to work out proposals for XPath functions of such obvious utility. Maybe I'm wrong and nobody but us and XSLT/XQuery cares about XPath, but I think we should seek outside viewpoints, and hopefully an external place for these functions to be defined.
Nick van: They are in Saxon already.
John Boyer: So maybe someone should contact Michael Kay now.
Erik Bruchez: Yes, you can never tell what may come of it.

John Boyer: OK. Good luck next week Charlie.

* IRC Log


* Meeting Ends