W3C

- DRAFT -

Forms Working Group Teleconference

03 Jul 2013

Agenda

See also: IRC log

Attendees

Present
Steven_, ebruchez, nvdbleek
Regrets
Philip
Chair
Steven
Scribe
Steven_

Contents


<trackbot> Date: 03 July 2013

Coming calls

Steven: I'm on holiday from next week, until the 24th
... I anticipate being on the call of the 24th

<ebruchez> http://www.w3.org/MarkUp/Forms/wiki/XPath_Expressions_Module#The_relevant.28.29_Function

ACTION-1933 - Suggest spec text for MIP functions

http://lists.w3.org/Archives/Public/public-forms/2013Jul/0002.html

Erik: I had questions about the relevant and valid functions

"1. What should the default return values be when there are no selected items?"

scribe: what to do if the set is empty? Scala does TRUE

<ebruchez> scala> Seq[Int]() forall (_ < 10)

<ebruchez> res3: Boolean = true

Steven: My rule of thumb is TRUE for AND, and FALSE for OR

<ebruchez> scala> Seq[Int]() exists (_ < 10)

<ebruchez> res4: Boolean = false

Steven: In Maths, ∀ (for all) is a logical AND and the empty version returns true, while ∃ is a logical OR and returns FALSE for an empty set
... I think we should use that rule

Erik: the idea of validity, the tree is valid if all nodes are valid, so it is an AND, so the default is true.
... for relevance, I think the idea is the same, if any node is nonrelevant, then so the whole tree
... how about readonly?

Nick: We have to be careful, because of the default for nodes

Erik: So readonly is OR. So default would be false.

http://www.w3.org/TR/xforms20/#Model_Item_Property_Definitions

Steven: That table "all" means the default would be TRUE and "one" would mean the default would be FALSE

Erik: I think we can apply this logic to the functions
... OK, so I will modify the definitions to reflect this
... Question 2: 2. valid() and attributes

<price type="bar">10.42</price>

<bind ref="price" type="xs:decimal"/>

<bind ref="price/@type" constraint=". = 'a' or . = 'b'"/>

=> valid(price) returns false()

Erik: Is this OK?

Steven: I think it is reasonable

Erik: We have a function that takes an extra flag

Steven: You can use an XPath function to get just the element value if that's what you mean.
... I think we should take attributes into account

Nick: If a node is not readonly, but has an attribute that is readonly, you can still change the node

Steven: That is consistent I think
... because readonly is an OR

Nick: And that treatment of valid is consistent with how submission works

<ebruchez> "Inheritance Rules: If any ancestor node evaluates to true, this value is treated as true. Otherwise, the local value is used."

Erik: Right
... both are recursive, and we have a consistent approach
... So how do we ignore the validity of the attribute?

Steven: valid(price::text())
... or valid(price/text())

<ebruchez> Note: The simpleContent binding restriction is intended to allow controls to bind to attribute and element nodes. This specification does not prevent binding controls directly to text nodes, however doing so can yield undesirable behavior, such as a form control becoming non-relevant if a user enters empty data. This specification also does not prevent implementers supporting binding controls directly to comment or processing instruction nodes, however the

<ebruchez> resulting behavior is implementation-dependent and may also yield undesirable behavior.

Erik: Wouldn't work

Steven: Is there a real use-case? <price><type>bar</type>10.42</price>
... you wouldn't want to deal with the special case here.

Erik: True, but we discourage binding to complex values
... there may even be an exception

<ebruchez> "Element nodes: If element child nodes are present, then an xforms-binding-exception occurs"

Steven: Ah, yes
... In a case like this: <price valuta="usd">10</price>
... if you said that @valuta could only be gbp, usd and eur, then a value of "bar" would make the price invalid
... I'd like a use-case of where the attribute is irrelevant to the validatty

Erik: In XForms, a control can still be valid if an attribute is invalid
... so we do have an independent validity property
... but on the other hand submission does check all the subtrees.
... So finding a consistent position here is tricky.
... So a parameter may be the solution here. In the normal case you recurse, and in the special case you don't.

<ebruchez> xf:valid() as xs:boolean

<ebruchez> xf:valid($items as item()*) as xs:boolean

<ebruchez> xf:valid($items as item()*, $relevant as xs:boolean) as xs:boolean

<ebruchez> xf:valid($items as item()*, $relevant as xs:boolean, $recurse as xs:boolean) as xs:boolean

Erik: That would be a possibility then

Steven: Well, shall we go with that then?

AOB

<scribe> ACTION: Erik to add the bind() function [recorded in http://www.w3.org/2013/07/03-forms-minutes.html#action01]

(http://www.w3.org/MarkUp/Forms/wiki/Bind_function) to XForms 2.0.

<trackbot> Created ACTION-1954 - Add the bind() function [on Erik Bruchez - due 2013-07-10].

Timeline

Erik: Progress is slow because we all have little time

Nick: I'm finishing dialog
... I'll organise the calls in the next two weeks
... we don't have many open items

[ADJOURN]

Summary of Action Items

[NEW] ACTION: Erik to add the bind() function [recorded in http://www.w3.org/2013/07/03-forms-minutes.html#action01]
 
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.138 (CVS log)
$Date: 2013/07/03 16:02:38 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.138  of Date: 2013-04-25 13:59:11  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/tgh/th/
Succeeded: s/SO/So/
Succeeded: s/;/'/
Succeeded: s/iu/u/
Succeeded: s/gbp/gbp,/
No ScribeNick specified.  Guessing ScribeNick: Steven_
Inferring Scribes: Steven_
Default Present: Steven_, ebruchez, nvdbleek
Present: Steven_ ebruchez nvdbleek
Regrets: Philip
Agenda: http://lists.w3.org/Archives/Public/public-forms/2013Jul/0007.html
Found Date: 03 Jul 2013
Guessing minutes URL: http://www.w3.org/2013/07/03-forms-minutes.html
People with action items: erik

[End of scribe.perl diagnostic output]