*DRAFT* W3 Forms F2F (Hawthorne) Day 1 June 13, 2007

* Present

Steven Pemberton, CWI/W3C
John Boyer, IBM (chair)
Charlie Wiecha, IBM
Uli Lissé, DreamLabs
Leigh Klotz, Xerox (minutes)
Keith Wells, IBM
Nick van den Bleeken, Inventive Designers
Roger Perez, SATEC
Mark Birbeck, x-port.net (remote)
Joern Turner, DreamLabs (IRC, part-day)

* Agenda


* IRC Log


* Issue Tracking


Steven Pemberton: Should I forward them immediately from the mailing list?
John Boyer: As soo as we pick one that we're going to respond to?
Steven Pemberton: When did the Last Call start?
John Boyer: February 22, though I think maybe one thing showed up a little before then, February 14th. I thought we entered a coupl e of these already.
Steven Pemberton: Three. All in Incoming. One from 05 Dec 2006.
John Boyer: It turns out that this email is repeated in the CDF feedback and one of them was mustUnderstand.
Steven Pemberton: I can forward them all to the database.
John Boyer: We should be making the spec changes as well.
Steven Pemberton: Oh, how good is that!
John Boyer: It makes it easy to agree. So the issues will go into the last-call system and we'll create changes; should we create the responses as well?
Steven Pemberton: Let's do as much as we can at the same time.

* Serialize


John Boyer: I have an earlier version of this one. I'm glad it's here.

* February


John Boyer: This one already has an action assigned to me.
Steven Pemberton: I'm sending it to the action system. But the March 2nd one (43) is already there and it's a follow-on.
John Boyer: Did you send any from February?
Steven Pemberton: John 5th Feb, and Mark's.
John Boyer: The 5th Feb was Elliot Rusty Harrold's "getting rid of chameleon namespaces" response and isn't an issue.
Steven Pemberton: The "where are the audio video controls" one we have already replied to, and it isn't phrased as a last-call issue, so we've covered it already.

* Homogeneous Collection


John Boyer: Do we have an action item to do this? This one will take a couple of hours, so we can't do it here. A lot of the other issues are smaller, but some we will have to take away as an action. Nick?

* Serialize


John Boyer: We had a telcon about this. The suggestion is that when you say @serialize=false that the behavior of the relevant and validate attribute should default to the same value that you set serialize to, because when you aren't serializing the submission data, by default you are trying to set up a submission that is just sending to a URL, and since you aren't sending any data, not validating it and not pruning the relevant components makes sense. The proposal is to make that change to validate and relevant and probably a tweak to the submit processing as well.
Steven Pemberton: OK.
John Boyer: I have spec-ready text here. When we approve, we send a response; do we record the URL of the response in the database?
Steven Pemberton: You reply from the database.
John Boyer: Did we compose the reply for 3?
Steven Pemberton: If we replied we can put it in the notes.
John Boyer: I see the reply in there already. Then the report will have the links to the original and the reply.
John Boyer: Can someone compose the reply?
Steven Pemberton: Who has a password? I'll email Shane.
John Boyer: Can someone look at bullet point 2 in XForms submit sequence chapter 11 with regard to serialize=false? The thing we're trying to get working here is when you say serialize=false that you can resolve a URL even if there is no submission data. They won't put a ref, and that will resolve to the instance. Is there a problem with bullet point 2?
Nick van den Bleeken: It says submission is stopped if there is a non-relevant node.
John Boyer: If you put a ref then you get what you pay for. If you point to a non-relevant node then why is submission stopped if relevance pruning is off? It seems like a fix is needed for step 2?
Leigh Klotz: If serialize=false do we still do point 2? I guess so because relevant and validate also would have to be false. Bullet point 2 ought to be split in two, with relevant processing its own bullet.
John Boyer: Here's the proposed changes from the email. Added to validate "The default value is the value of serialize, if present, or true, otherwise." Same on relevant.
John Boyer: Then on serialize, a note.

Nick van den Bleeken: Why do we need relevance pruning? If serialize is false, then relevance doesn't matter.
Leigh Klotz: If we split the bullet into two then we put the halt-on-empty to relevance prune. Ah, but you still want to halt on empty even if relevance is false.
John Boyer: I don't see a big glaring problem though. If serialize=false you wouldn't set a ref, so if there is a default element, then the only possible problem is that the root element of the default nodeset is non-relevant.
Nick van den Bleeken: You set relevant to false though.
Leigh Klotz: You can serialize nothing if all child elements are irrelevant.
John Boyer: You get the root node.
Leigh Klotz: Not with application/x-www* serialization; you get nothing.
John Boyer: It's OK to submit nothing.
John Boyer: So do we remove the halt?
Nick van den Bleeken: There's a difference. If serialize is false we don't care.
John Boyer: So we split them up, and halt if there is no node, then do relevance next.
Leigh Klotz: Point 2 says "the remainder of the submit process" and then in the very next sentence modifies it to remove nodes.
John Boyer: Yes, this is the big one to fix. I've broken 2 into 2 and 3. I've removed the "non-relevant-node" from 2 and we'll address it in 3. Good so far?
Uli Lissé: Yes.

Steven Pemberton: [IRC] I have now forwarded all relevant messages to the DB.
Steven Pemberton: I've created a bucket for every toplevel section and am moving them into those sections.

John Boyer: I see what you mean about the "considered."
Leigh Klotz: We don't say that the instance data is copied, but we do say "remove."
John Boyer: We can say "ignored." I'd prefer to say selected above. There's something wrong...we're trying to transition from the node you selected to the subtree that it's the root of, all of those nodes. This is hard.
Leigh Klotz: It implies a copy.
John Boyer: Yes, it does. We need a first sentence to jump from selecting the node to selecting the subtree. We can just say, are considered. What's a better word?
Uli Lissé: selected
John Boyer: ...node is removed...
Leigh Klotz: deselected. It's kind of a MIP.
John Boyer: OK. Now, if relevant is true and the root element has been (pruned)...
Leigh Klotz: OK.
John Boyer: Now if you prune the root element node, we fail the submission? Actually, can you have a non-relevant node and have any of its children be relevant. So if the root element is non-relevant then the submission will be empty?
Leigh Klotz: The behavior as is will not submit.
John Boyer: So why?
Nick van den Bleeken: We don't want to submit empty XML serializations.
John Boyer: OK, so we check the root node after relevance pruning. If any node is selected, then at least the root node must have been selected.
Leigh Klotz: Can we safely preserve this invariant by testing after the pruning boundary? Yes, because if at least one node is selected, then the root node must be selected, and if the root node was irrelevant then exactly no nodes will be selected.
Uli Lissé: Selected is over-used in bullet point two.
John Boyer: [reads]
Leigh Klotz: Which attributes? ref and?
Nick van den Bleeken: bind
Uli Lissé: Binding attributes
John Boyer: The binding attribute of submission indicate a node of instance data...

Keith Wells: Why does it say "for which it is an ancestor" instead of "descendent?"
John Boyer: Because in XPath the attribute notes are not descendents but the children are.

John Boyer: Ok, one last time. The diff marked version shows substantive changes. It's a struggle here...
Leigh Klotz: Why don't we say "if no instance nodes are selected"?
John Boyer: To bind more tightly to the pruning.
Leigh Klotz: Can we move the error dispatch to one place? I guess not because we need an error on binding failure. Can we change the binding failure to a binding exception?
John Boyer: We want to preserve the two ways that submission can end.
Leigh Klotz: In XForm 1.1 I guess xforms-submit-error is useful; it's not in 1.0 because there's no context info.
John Boyer: You can put up an error message saying "try again or contact tech support."
John Boyer: OK, I'll put this in CVS for Mark. http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#submit-submission-element
Leigh Klotz: What's our next step?
John Boyer: We compose an issue-tracker reply and Steven needs to send it.
Steven Pemberton: Let me get there.
Uli Lissé: It's also issue 43.
Steven Pemberton: That's a different one. Oh, it changed URI.
Charlie Wiecha: Maybe we shouldn't process them in Incoming.
Steven Pemberton: Right. So we accept.
John Boyer: We did Modify and Accept; we had to change section submission processing.
Steven Pemberton: What didn't we do? Leigh We did more.
John Boyer: Then that's accept, as we accepted his position.

Resolution 2007-06-13.1: For http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/Submission?id=1 We accepted the new defaults for relevant and validate and we changed the xforms-submit-event default processing. http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#submit-submission-element and http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#submit-evt-submit bullets 2 and 3.

* mustUnderstand still in?


John Boyer: OK next item.
Nick van den Bleeken: Can we go to the next item in the issue tracking system?
Steven Pemberton: I haven't finished categorizing them.
John Boyer: We should process them by date.
Steven Pemberton: I have this one in twice.
John Boyer: It's a duplicate.
Steven Pemberton: I'll make a box called duplicate.
John Boyer: How do we handle duplicate?
Steven Pemberton: It's a classification for our purposes. We still have to give it a state. That was issue 2 in model.
John Boyer: We probably added his 05 Dec email. It was on a telecon and I wanted to make sure it showed up during last call.
Steven Pemberton: I'm just going to put it in trash.
Leigh Klotz: Same issue, same person, trash. Same issue, different person, requires two responses because they might disagree.
Steven Pemberton: Right.
John Boyer: Can you ask for approved but not implemented? So it's approved, we're going to get rid of it. Do we have to implement it right now?

Leigh Klotz: There are two references, plus section 3.4.
John Boyer: I will remove them.

Uli Lissé: Plus schema.

Action 2007-06-13.1: Mark Birbeck to remove mustUnderstand from XForms 1.1 Schema.

John Boyer: The mustUnderstand section will still remain in the TOC for the non-diff-marked version and then we remove it after last call.
Leigh Klotz: You can just diff mark the content instead of the section and do a diff add that says "this section removed".
John Boyer: The XML spec DTD doesn't allow nested divs.

Action 2007-06-13.2: John Boyer to manually remove empty mustUnderstand section for XForms CR 1.1 after automatically stripping diff markup.

Resolution 2007-06-13.2: We implemented http://lists.w3.org/Archives/Public/www-forms-editor/2007Mar/0002.html by removing mustUnderstand module and references to it. XML Schema changes are pending.

* Last call comment about readonly property with calculate


John Boyer: David says that you shouldn't be allowed to set readonly=false.
Leigh Klotz: I believe it was Mark who had an objection to this.
Mark Birbeck: I think I do but I accept I might not quite understand David's objection. ... It seems to me fairly safe no matter when the calculation is performed.
John Boyer: I've used much the same logic myself. Can we follow this into the user experience? When the form first comes up, the data node will be blank and set to some nonempty value. When the user types, deletes the text, and hits tab to commit the value, the UI binding pushes an empty string into the data node; does the calculate run again?
Mark Birbeck: Good question; no it doesn't.
Uli Lissé: Why?
John Boyer: The node gets on the change list for recalculate dependencies but it doesn't get recalculated.
Mark Birbeck: Right, it doesn't.
John Boyer: The note at the bottom http://www.w3.org/TR/xforms11/#evt-recalculate says that when a recalculate event is...must calculate computes nodes in l and nodes dependent on l. So the calculate does run.
Mark Birbeck: Good.
John Boyer: So that's good or not depending on your point of view.
Charlie Wiecha: It replaces it unless you clear it. It's like taxcut; if you clear it, it goes back to default; otherwise stays.
Leigh Klotz: That's not this example from David which is calculate=1.
Charlie Wiecha: No, it's Mark's example.
Charlie Wiecha: There was also some cross-instance issue from David.
John Boyer: I'm having trouble seeing the problem with this case. We run all calculates on startup. That's why that part of the spec says l and things dependent on l. On rebuild we throw everything on l. I don't think that's a problem. If the only dependency is itself, then it's only going to run whenever there is a rebuild and when somebody modifies the node to which the calculate is bound.
Leigh Klotz: He's implying that an insert does a rebuild of the whole model.
John Boyer: Insert does a rebuild of the whole model.
Leigh Klotz: Then an insert in another instance will cause the calculate to re-run.
Charlie Wiecha: That may be fine.
John Boyer: I don't think you can do that kind of isolation.
John Boyer: We should say explicitly that it's ok to change readonly. This is a modify and accept. We could agree with David that the spec needs a note, but we think it actually operates the other way; you are allowed to set readonly=false() on a calculated node and we can say a few things about it.
Mark Birbeck: In 1.0 spec 4.3.6, we have a note that says that authors should not refer to the current node in calculate expressions.
John Boyer: I don't have a problem, because it says "should" instead of "must." (RFC2119) I think there is some concern that other than Appendix D issues, such as side-effects .=.+1. We wouldn't be able to get interoperable behavior. "should" means you should have a decent reason; setting a default value is a decent reason. Maybe that's where we put that in.
Leigh Klotz: Should we make that edit?
John Boyer: After the break.

* Coffee Break

* Bjoern Hermann Issues

John Boyer: The "formal objection" to Last Call isn't part of the process. The earliest time for that is CR.
Steven Pemberton: I agree. The objection was based on the fact that we had not replied to earlier issues; we have now done that.
John Boyer: We fished out the issues at the bottom of the referenced emails and addressed them.
Leigh Klotz: The HTTP authentication one was addressed here: http://lists.w3.org/Archives/Public/www-forms-editor/2007Apr/0050.html
John Boyer: Jan also replied to one of them.
Nick van den Bleeken: Test suite. http://lists.w3.org/Archives/Public/www-forms-editor/2007Apr/0056.html
John Boyer: Here is my reply on QName, which we fixed in XForms 1.0 Errata, and 1.1 as well. http://lists.w3.org/Archives/Public/www-forms-editor/2007Apr/0055.html

Resolution 2007-06-13.3: We have closed all outstanding technical issues from Bjoern Hermann. We received no response on our final messages.

* Last call comment about readonly property with calculate


John Boyer: Back to this, we should say the effect is not defined "in all cases."
Uli Lissé: Then we have to define the cases.
Steven Pemberton: ...
John Boyer: It's not going to crash.
Uli Lissé: What condition
John Boyer: calculate=if(sometest(), ., .+1). Appendix D doesn't say because it's not clear. There are suboptimal algorithms that don't give the same effect. The feeling at the time is that we wanted people to do alternate algorithms.
Leigh Klotz: By algorithm do you mean topological sort or additional stuff?
John Boyer: The topological sort.
Leigh Klotz: I think there is no implementation that does not do topological and yet achieves the same result. Mark's implementation and Orbeon don't do topological sort and obtain different answers depending on document order.
Mark Birbeck: One of ours does, and one doesn't use topological sort. The one that doesn't gets different answers. You were talking about the recalculation sequence algorithm. But the prior step says that implementations must reduce the number of vertices, and I read that to mean that we wouldn't recalculate this node.
John Boyer: If you look at the total shape of the MDG, there are nodes not reachable from the set of nodes l, but that original set of nodes is part of the pertinent subgraph. So take the set of nodes fed to the recalculation engine and use those as the roots of directed subgraphs and work out the closure of those nodes on the graph; that will often be smaller than the whole graph.
Mark Birbeck: I agree, but if you use the node as the origin that has a calculation based on itself, then I don't think that would give the subgraph. The pruning step would remove the recalculation of that node. So you asked if that node would be recalculated if the user changes it to space (empty). You said yes, I said no. It looks to me now like it wouldn't.
John Boyer: We may have to change words to make it clearer: the other part of the spec says what happens; this part of the spec is subject to 4.3.6. We have to change this to make it do what 4.3.6 says.
Mark Birbeck: OK.
Leigh Klotz: Is this the section that says you remove nodes that depend on themselves?
John Boyer: You remove the edges that point to themselves, not the node itself. If the appendix does say what you described, then it needs work. The usual transitive closure definition; a node is reachable from itself by having an edge that goes from that node to itself.
Mark Birbeck: How do you get to the compute node?
John Boyer: The vertex that represents the value of a node is the same one as the one that the calculate is associated with; there aren't two separate vertices, which has been a problem in the past. The calculate MIP is not different from the value of the node in the MDG. The vertex may represent a readonly, a constraint, or the value of a node, where that value could be calculated.
Mark Birbeck: I don't see that.
John Boyer: The last paragrph of section D1 (1.0) C1 (1.1) says..."a vertex exists for each instance node to represent the expression in the context of the node." So, we are trying to say that we create vertices; if you have a calculate that binds to 20 nodes you'll get 20 vertices.
Mark Birbeck: Yeah.
John Boyer: Those 20 vertices are representative of the text content and are associated with the expression as well. Maybe we need to take another look at the appendix to make sure it says the correct things to say what section 4.3.6 says; if there's some problem. But we did a lot of work on section 4.3.6 to make sure it includes in the recalculation the nodes that are in the list l.
Mark Birbeck: If you look at C4, in the diagram, the only things that can be in the last are A and B. C is recalculated because of a changed A or B. So you are saying that if C were to appear in the list it would be recalculated. But how can it get in the list?
John Boyer: If you set readonly false and change it.
Mark Birbeck: So if v=a*c I don't see how we get an edge.
John Boyer: I need to read this; I don't know why I used C and D; it's been a long time. I see; v and w are representing the calculated value and the validity property of an instance node c. If you bind an input control to node c, and you set readonly=false on node c, then you should be able to cause the vertex labeled v to enter the changelist that is input to the recalculate, which is exactly the issue here.
Mark Birbeck: I see. I hadn't spotted that in our implementation. That would be a vertex for the calculate and a separate vertext for c if it appeared anywhere else.
John Boyer: V is representative of the ...
Mark Birbeck: There is a path; it's being used in w. I think you're right. I don't think we've got that extra step. V represents C, essentially. We've got a possibility where C could be in the list independently of V.
John Boyer: Yes, David had that a couple of years ago with separate vertices for the text content of the node and the calculated value of the node.
Mark Birbeck: Yes.
John Boyer: That caused a certain amount of grief.
Leigh Klotz: What's the basis of the objection now?
Nick van den Bleeken: It says they are explicitly ignored.
John Boyer: When you are forming a dependency list for a node; it never lists itself in its dependencies. You could create one by doing <bind nodeset="c" calculate=".+1"/> We remove those. The rebuild sequence starts with a list l that we push down to recalculate. The recalculate algorithm picks up the list l and runs them all, including the self-reference calculates which technically have to dependencies.
Leigh Klotz: So the root nodes l are included in the result even if they have no entries in the MDG.
John Boyer: The closure includes the node you started with. It's bullet point 2, in C1.
Leigh Klotz: But there are no nodes in the MDG for them?
John Boyer: Yes, there are, because they have values, particularly when you put a calculate on them.
John Boyer: Back to the note in 4.3.6: do we want to take it out?
Leigh Klotz: Should we say don't do .=.+1
John Boyer: Or don't have side-effects, but that's not well defined.
Leigh Klotz: It's an informative note so let's take out the prescriptive stuff and just put in an example of what might be counterintuitive and say that <bind nodeset="c" calculate=".+1"/> will have effects that may vary by implementation.
John Boyer: OK [types]. That's half of it, then.

node's value in a calculate on the node, as in the following
example, may have effects that vary by implementation: <bind
nodeset="x" calculate=".+1"/> Model item properties other than
calculate, such as required or readonly are well-defined in the
presence of self-references.

Roger Perez: So it's not a loop?
Leigh Klotz: No, it's never a loop. But some implementations may do calculations more frequently, so this expression will increment more often in some implementations.

John Boyer: We have to look at 6.1.2, the readonly property. It says the default value is specified. David said it wasn't clear. So a note that says you can explicitly set the value to false.
Nick van den Bleeken: David thought you couldn't change it.
John Boyer: Why does he think that?
Nick van den Bleeken: Becuase of the problems with calculate he believes.
John Boyer: We're trying to acknowldge that the spec could be clearer. We're going to say that we don't agree that you can't set readonly=false on a calculate node. There are cases where if you use a self-referential value and the processor uses an algorithm other than topological sort that you can get other effects, but we haven't seen any conformant implementations not using topological sort. The ones that don't use it now don't achieve the same effects in the other cases, so they are non-conformant.
Leigh Klotz: I think that Orbeon is moving to using topological sort.

John Boyer: So now we put in a note showing readonly=false on calculate.
Leigh Klotz: How about an example?
John Boyer: The default value example.
Leigh Klotz: And in XForms 1.2 we can put in a default attribute.
John Boyer: Yes. [adds example to readonly section]

Resolution 2007-06-13.4: For http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/MIPs?id=45 we accept with modification; we find that calculate merely defaults readonly to true, and that it can be set to false, and that there are use cases, namely default value. We tested the use case and found it works. We changed the note in 4.3.6 [ http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#evt-recalculate] and put an example in MIP for readonly [ http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#model-prop-readOnly]

* Lunch

* XForms 1.1 is missing a string compare capability


Nick van den Bleeken: Here is my response: http://lists.w3.org/Archives/Public/public-forms/2007Jun/0000.html
Nick van den Bleeken: Here is the link to the minutes: http://lists.w3.org/Archives/Member/w3c-forms/2007JanMar/att-0107/20070214.html#resolution1
Nick van den Bleeken: Here's the proposal: http://www.w3.org/MarkUp/Forms/wiki/Sorting_data
Leigh Klotz: I thought Kenneth said that collation was problematic because of the number of codepoints for small devices.
Nick van den Bleeken: It's not mandatory. XQuery says the number of collations is implementation dependent.
John Boyer: XForms Basic could implement only Unicode code points [http://www.w3.org/2005/xpath-functions/collation/codepoint].
Leigh Klotz: Do we need to specify the profile?
John Boyer: Let's read the cited http://www.w3.org/TR/xquery-operators/#collations
Leigh Klotz: We need to say which ones are supported.
John Boyer: One sentence on Unicode then.
Leigh Klotz: Who defines these collations? The relative namespace URI (really a URN) that isn't dereferenced is odd.
John Boyer: That's their issue.
Leigh Klotz: We might not want to buy into it.
John Boyer: We can throw a compute exception if it's not defined.
Leigh Klotz: What's their error.
John Boyer: [reads] "an error is raised"
Leigh Klotz: What's this about the "default collation for the static context?"
John Boyer: We don't have a way to do that.
Leigh Klotz: So we should say it's the Unicode point and drop the third argument since it drags in a lot of questions from XPath 2.0 which we don't have. If you want the third argument, it's underspecified and we can't define interoperability for it in XForms 1.1. Implementations can still take the 3rd arg, but it will be an extension out-of-spec, just as some implementations are currently using XPath 2.0 already anyway.
John Boyer: OK. Let's try that. Do we mention the collation URI? Can we just describe the behavior?
Leigh Klotz: We either reference the XPath 2.0 spec normatively and profile it by collation URI or describe it and mention XPath 2.0 upwards compatibility in a Note with an informative reference to http://www.unicode.org/unicode/reports/tr10t .
John Boyer: We don't need a note, though. We've just done the work of the compatibility.

Resolution 2007-06-13.5: We implement http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/XPath?id=44 by a substantive change, adding a sort function that uses Unicode collation http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/XPath?id=44

Action 2007-06-13.3: Nick van den Bleeken to read http://www.unicode.org/unicode/reports/tr10t and assure that we are compatible.

Uli Lissé: Is this going to www-forms-editor automatically?
Steven Pemberton: It looks like not.
John Boyer: Is there a re-send?
Nick van den Bleeken: Yes, it sends immediately without confirmation.
Uli Lissé: I cc'd www-forms and www-forms-editor.
John Boyer: They're all coming from www-forms-editor so replies ought to go there without you having to CC them.
Leigh Klotz: We don't have the replies yet at all so we don't know.
Steven Pemberton: I suspect the replies are queued up somewhere. Ah, they've been spam-blocked.

* XML Core Review

http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/Types?id=48 http://lists.w3.org/Archives/Public/www-forms-editor/2007Mar/0007.html

Steven Pemberton: This was entered in as one issue.
John Boyer: There are six.

** id

John Boyer: Issue 1 is a misunderstanding; it applies to XForms 1.0 and was corrected in XForms 1.0 TE. We mention it in the id() function. Is it worth pointing out that xml:id works for us? We mention it only in the id() function.
Steven Pemberton: I think we should allow id or xml:id, but of course not both at the same time.
John Boyer: We can use either as long as they are type id. We could make note of the fact that xml:id is allowed or you can use any attribute of type ID.
Leigh Klotz: The questions is where do we put it in the text?
John Boyer: Right after id; move id after anyAttribute for sorting anyway.

Resolution 2007-06-13.6: We add a note to Common Attributes: "Elements can be identified using any attribute of type ID (such as xml:id), not just the id attribute defined above."

** XForms 1.0 normative reference.

Leigh Klotz: It's probably left over from thin-spec.
John Boyer: I guess they mean a citation.
John Boyer: We refer to it from tbe abstract, and it's in the Normative references section; they want informative references.

Resolution 2007-06-13.7: We move XForms 1.0 to an informative reference.

** dayTimeDuration and yearMonthDuration

John Boyer: Right now we have these two datatypes that we have defined in XForms 1.0 to allow empty content. They already allow empty content in XQuery 1.0 and XSLT 2.0 but we don't have access to them.
Leigh Klotz: How did they put them in the XML Schema namespace?

Resolution 2007-06-13.8: We cannot move xforms:dayTimeDuration and xforms:yearMonthDuration to the xs: types from XQuery 1.0 / XSLT 2.0 because XForms 1.1 is based on XML Schema 1.0 and XPath 1.0.

** Use xs instead of xsd as the prefix

John Boyer: "xsd suggests the XML Schema datatypes namespace." In XML Schema 1.0 there's no XML Schema datatypes namespace. If you look in the Schema 1.0 Par 0 primer and Schema Part 2 Datatypes, both use xsd: as the prefix for the XML Schema namespace. So both documents have done the same thing we do. Only in XML Schema Part 1 do they use xs. Pretty much all the time we're using xsd.
Uli Lissé: xsd has its own namespace. http://www.w3.org/TR/xmlschema-2/#namespaces
John Boyer: In the po.xsd example in XML Schema part 0 they use xmlns:xsd="http://www.w3.org/2001/XMLSchema". How does it work?
Leigh Klotz: Your XML Schema processor is supposed to deal with it.
John Boyer: So I didn't know.
Leigh Klotz: It's almost always xsd we want so it would be wrong to change the prefix throughout.
John Boyer: Nowhere in Part 2 does it ever define xmlns:xsd.
Leigh Klotz: So where we say xsd:schema that's wrong, I guess. But I see plenty of examples both in XML Schema Part 0 and elsewhere that use xsd: to refer to the XMLSchema namespace, not the XMLSchema-datatypes namespace, so I think we should keep xsd: as is, but add xs: and use that for xs:schema and its child elements. In the reponse we can explain.
John Boyer: And we add a definition of xs: at the beginning.

Resolution 2007-06-13.9: We change xsd:schema and children to xs:schema and children, and add a definition of the xs: namespace, but leave occurrences the definition xmlns:xsd="http://www.w3.org/2001/XMLSchema" and the uses on datatypes, because that's what XML Schema Part 0 does. Implementors will already note that XML Schema requires handling of type definitions in the xmlns:xsd="http://www.w3.org/2001/XMLSchema-datatypes" namespace without special instruction from XForms.

ACTION:Mark Birbeck to update XForms Schema to move xsd:schema to xs:schema (prefix change)

* Break

* InputMode Tokens list incomplete


Steven Pemberton: Could we replace this with a reference?
John Boyer: Sure, what reference.
Leigh Klotz: Should we ask Martin Dürst? He gave us the list.
John Boyer: They are taken from version 3.2 of the Unicode standard. Someone said we should be using Unicode 5.0.
Steven Pemberton: Martin says 5.00.
John Boyer: They've edited their spec in place so we just continue to refer to it from http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#ref-unicode-scripts and get Unicode 5.
Steven Pemberton: So we can take out our list and use http://www.unicode.org/Public/5.0.0/ucd/PropertyValueAliases.txt
John Boyer: So we lose Braille and a couple of other ones.
Steven Pemberton: No, it's there; it's Brai.
John Boyer: We have braille. And we have canadianAboriginal.
Steven Pemberton: Tokens are case-sensitive.
Steven Pemberton: I'll just ask Martin for suggested replacement text.

** XForms-specific procedures should be harmonized with the XPath 2.0 function library where possible

John Boyer: That sounds good.
Leigh Klotz: What about if? We could introduce namespaced versions of all functions.
John Boyer: That would be cool. Then people using XPath 2.0 could use those namespaces and it would work in XForms 1.1 processors.
Nick van den Bleeken: Can't we just say that they are the default namespace?
Leigh Klotz: XPath doesn't have default namespaces.
John Boyer: XPath 1.0 doesn't have namespaces on functions at all; people just did them. If we said the default namespace is XForms then the XPath functions don't exist anymore.

Resolution 2007-06-13.10: We agree that XForms-specific procedures should be harmonized with XPath 2.0 functions library where possible.

** ISO/IEC 7912-1

John Boyer: It seems we need someone else to write the text for the Luhn function and make the ISO/IEC 7912-1 an informative reference. I don't want to use the Wikipedia reference they suggest as normative as it's volatile.
Leigh Klotz: The Wikipedia article mentions the expired patent: "U.S. PATENT 2,950,048 Computer for Verifying Numbers.", H.P. Luhn Let's just use the reference to the now-expired patent as the normative reference and call it "luhn algorithm" in the spec, so that web searches will take you to the Wikipedia entry.
Steven Pemberton: There's a later issue that says let's not call it Luhn.
Leigh Klotz: It's not a function either, in the patent.

Resolution 2007-06-13.11: We change the Luhn reference from ISO/IEC 7912-1 to expired patent "U.S. PATENT 2,950,048 Computer for Verifying Numbers.", H.P. Luhn. We change terminology from "Luhn formula" to "Luhn algorithm" to make finding the Wikipedia entry easy. We retain "Luhn function" for now.

Uli Lissé: So accept or modify and accept?
Leigh Klotz: We did the schema thing slightly differently from the way they wanted.
John Boyer: No substantive changes.
Nick van den Bleeken: Not even the schema namespace change?
Leigh Klotz: No. It's just a prefix spelling.

* Breaking up into groups

John Boyer: We can break up into groups and work on April's issues
Leigh Klotz: Pairs, one each with write access.
Charlie Wiecha: I haven't found any that work out as easy.
Keith Wells: If we break out into pairs we will come up with "trumpable" decisions. I feel that we had a lot of progress and we're about to get into easier ones.
Leigh Klotz: I could go either way; I've been busy so it's not an issue for me.
Keith Wells: I feel we won't make as much progress. If anybody feels they can go tackle an issue, feel free I guess.

Resolution 2007-06-13.12: We do not break into groups (yet).

John Boyer: We got through March; maybe we can break through April tomorrow.
Keith Wells: Like Aaron's.
John Boyer: Someone could break out and find that most of those are editorial.
Charlie Wiecha: I'll do that.

Action 2007-06-13.4: Charlie Wiecha to read Aaron's three last-call submissions and pull out the points that are not merely editorial and require group attention during the F2F.

* XForms 1.1 Requirements


John Boyer: We don't refer to the requirements at all. We could just delete it.
Steven Pemberton: Or put it normative.
John Boyer: Or remove it.

Resolution 2007-06-13.13: We remove the XForms 1.0 requirements and do not add XForms 1.1.

* ITS Rule File


Steven Pemberton: Internationalization Tag Set. It's a tagset for marking up documents about how they are to be translated.
John Boyer: Do translate label, don't translate item. It's somewhat hopeless if you can use ref on a label.
Leigh Klotz: The instance itself has its own idea, and it's the problem of whoever made the instance.
John Boyer: And if the instance is inline? This isn't normative, right?
Steven Pemberton: We might be happy to do this after last call.
Leigh Klotz: You mean 1.2? After last call?
Steven Pemberton: It's a host language. Oh wait, they want a rules file.
John Boyer: It's like a Schema.
Leigh Klotz: They want a Note?
John Boyer: Yes, it would have to be afterwards. Maybe they could make an example.
Leigh Klotz: By the way to tlink from http://www.w3.org/205/11/its links to their CR version. They are at REC now.
Leigh Klotz: I'm happy to work with them on this.
Uli Lissé: What is the state?
Steven Pemberton: Defer; Closed. We're not saying no; we're willing to discuss it.

Resolution 2007-06-13.14: An ITS rule file is not a normative part of the recommendation and we would be happy to provide some meeting time to help I18N WG create it, but we do not have the resources to create it.

* G.3 Survey Using XForms and SVG


John Boyer: The XML example file is corrupted.
Leigh Klotz: Use an entity reference so it doesn't get corrupted again. http://lists.w3.org/Archives/Public/www-xsl-fo/2001Oct/0017.html says &#225;
John Boyer: 225 is wrong; that's an a.
Steven Pemberton: It's 233. But actually, since it's Italian, not French, it's "latte" with no accent.

Resolution 2007-06-13.15: We accept the correction to XForms and SVG Example by removing the accent mark, as the word "latte" is Italian, not French, so it's "latte" with no accent.

* G.3 Survey Using XForms and XHTML

http://htmlwg.mn.aptest.com/cgi-bin/xforms-issues/Appendices?id=122 http://www.w3.org/TR/xforms11/#xforms-in-xhtml-00

John Boyer: They don't like compound documents?
Leigh Klotz: I wrote this example. He says it's not a good authoring practice, but this might not be authored; it could have been created by a program using ITS.
Steven Pemberton: The reader is being confronted with extra detail. Also, it's using an old XHTML2 URI.
Keith Wells: I agree with Steven; I believe the language complicates the example.
John Boyer: The choices is an issue as well.
Steven Pemberton: Then we need to reply saying we'll re-write it.
Leigh Klotz: Or remove it. If we simplify it it may still have problems.
Steven Pemberton: Why not take an existing XHTML example.
John Boyer: We lose the Schema then.
Steven Pemberton: So we will replace it with a simpler example that does not use multi-lingual text.
Leigh Klotz: I still don't agree that with the point that we shouldn't create XForms documents with multiple languages in them. They might not be authored that way but it should be OK to present them.
Steven Pemberton: It's not necessary for the response.

Resolution 2007-06-13.16: We re-write and simplify G.1 XForms in XHTML to be in one language, and move to XHTML1.

* Meeting Ends