IRC log of forms on 2009-06-25

Timestamps are in UTC.

13:59:15 [RRSAgent]
RRSAgent has joined #forms
13:59:15 [RRSAgent]
logging to
13:59:23 [Steven]
rrsagent, make log public
13:59:36 [Steven]
zakim, room for 10 people for 360 minutes?
13:59:37 [Zakim]
ok, Steven; conference Team_(forms)13:59Z scheduled with code 26633 (CONF3) for 360 minutes until 1959Z
13:59:59 [Steven]
Steven has changed the topic to: Code is CONF3 (26633)
14:00:02 [Zakim]
Team_(forms)13:59Z has now started
14:00:09 [Zakim]
14:00:12 [wiecha]
zakim, [IBM] is wiecha
14:00:12 [Zakim]
+wiecha; got it
14:00:13 [John_Boyer]
John_Boyer has joined #forms
14:00:24 [klotz]
klotz has joined #forms
14:00:38 [John_Boyer]
zakim, code?
14:00:38 [Zakim]
the conference code is 26633 (tel:+1.617.761.6200 tel:+ tel:+44.117.370.6152), John_Boyer
14:01:02 [Steven]
zakim, dial steven-617
14:01:02 [Zakim]
ok, Steven; the call is being made
14:01:03 [Zakim]
14:01:12 [John_Boyer]
zakim, this will be forms
14:01:13 [Zakim]
ok, John_Boyer, I see Team_(forms)13:59Z already started
14:01:19 [John_Boyer]
rrsagent, make log public
14:01:21 [Zakim]
14:01:32 [Zakim]
14:01:39 [nick1]
zakim, I am ??P1
14:01:39 [Zakim]
+nick1; got it
14:01:41 [Steven]
zakim, dial steven-mobile
14:01:41 [Zakim]
ok, Steven; the call is being made
14:01:43 [Zakim]
14:01:59 [Steven]
14:02:24 [nick1]
zakim, who is here?
14:02:24 [Zakim]
On the phone I see wiecha, Steven, nick1, John_Boyer, Steven (muted)
14:02:25 [Zakim]
On IRC I see klotz, John_Boyer, RRSAgent, Zakim, wiecha, Steven, nick1, markbirbeck, kenneth, trackbot
14:02:47 [Zakim]
14:02:52 [nick1]
zakim, mute me
14:02:52 [Zakim]
nick1 should now be muted
14:02:52 [John_Boyer]
Meeting: W3C Forms WG Virtual Face to Face Day June 25, 2009
14:03:06 [Zakim]
14:03:27 [Steven]
zakim, phone steven-home
14:03:27 [Zakim]
ok, Steven; the call is being made
14:03:29 [Zakim]
14:03:34 [John_Boyer]
14:03:59 [John_Boyer]
Chair: John
14:04:04 [John_Boyer]
Scribe: Steven
14:04:40 [Steven]
Steven: I will be returning late after the break; I will try to return ASAP
14:04:54 [Zakim]
14:05:01 [John_Boyer]
zakim, who is here?
14:05:01 [Zakim]
On the phone I see wiecha, Steven, nick1 (muted), John_Boyer, Leigh_Klotz
14:05:03 [Zakim]
On IRC I see klotz, John_Boyer, RRSAgent, Zakim, wiecha, Steven, nick1, markbirbeck, kenneth, trackbot
14:05:18 [John_Boyer]
Regrets: Uli
14:06:09 [Steven]
14:06:27 [John_Boyer]
14:07:21 [Steven]
14:07:44 [Steven]
14:08:38 [nick1]
zakim, unmute me
14:08:38 [Zakim]
nick1 should no longer be muted
14:08:57 [Steven]
Topic: Solutions for the Application Requirements Related to the External Model and Submodel Problems
14:09:35 [Steven]
Nick: I talked with Joern, and he agreed with what we were talking about yesterday
14:09:55 [John_Boyer]
14:10:12 [Steven]
John: I documented our requirements from the last call
14:10:30 [Steven]
John: We got to basic use cases around encapsulation
14:10:41 [Steven]
... next is a specialization model
14:10:50 [Steven]
... model content that could be used as a base
14:11:07 [Steven]
... and then further specialized
14:11:46 [Steven]
... one of the later examples (fragment inclusion) could be solved with a specialization capability
14:12:07 [Steven]
... the third case was the adapter concept
14:12:14 [Steven]
... with two sub points
14:13:31 [Steven]
... the second that I list (transforms) - is that a true adapter, or is it more of a specialization?
14:13:50 [Steven]
Charlie: The UI case needs extra instances, so it is different
14:14:30 [Steven]
Leigh: I thought you meant overriding binds with specialisation
14:14:39 [Steven]
... you don't need anything more than XInclude
14:15:11 [Steven]
John: I think we ended with specialization not contradicting any binds in the base model
14:15:21 [Steven]
Leigh: We should make that explicit
14:15:55 [Steven]
Charlie: If something is read-only in te base, I would expect it not to be overrideable
14:16:04 [Steven]
s/ te / the /
14:16:10 [nick1]
zakim, mute me
14:16:10 [Zakim]
nick1 should now be muted
14:16:58 [Steven]
Charlie: I think we should be able to collapse specialization and adapters
14:17:04 [Steven]
... into one
14:19:14 [Steven]
John: I think fragment inclusion collpases into that too
14:19:24 [Steven]
... which is really exciting
14:19:55 [Steven]
... The specialization pattern is including once and adding stuff
14:20:08 [Steven]
... the web services case is about multiple external inclusions
14:20:37 [Steven]
Charlie: The webservices includes new submission methods, but the others don't
14:21:03 [Steven]
John: Maybe 'adapter' is misnamed
14:21:59 [Steven]
Charlie: You don't need extra submissions when you are adapting the UI
14:22:46 [Steven]
John: Specialization treats the input like a pipe
14:23:11 [Steven]
Charlie: Prefilling pulldowns in a select
14:23:47 [Steven]
... so there may be more needed in the UI ase than I thought
14:24:01 [Steven]
14:24:28 [Steven]
John: What does live in the base moedl?
14:24:41 [Steven]
14:25:15 [Steven]
Charlie: The further we go, it sounds more and more like model to model binding
14:25:35 [Steven]
John: The backend data lives in the base moedl
14:25:44 [Steven]
14:26:38 [Steven]
John: The base model contains the submission for getting the data back to the service
14:26:44 [Steven]
Charlie: Let's assume that for now
14:27:22 [Steven]
John: On the specialization side, there would be a need for actions in the specialization to copy the data to and fro
14:28:36 [Steven]
... what characterises the moving of data back to the backend?
14:28:44 [Steven]
... what would trigger it?
14:28:58 [Steven]
Charlie: A submit?
14:29:50 [Steven]
John: A specialisation needs to include an action handler for xforms-submit that would be dispatched to the base models submission element.
14:30:01 [Steven]
... That element knows how to move the back-end data to the server
14:30:33 [Steven]
... So we've proven we need instances and actions in the specialization
14:31:18 [Steven]
Charlie: Structural calculations will help
14:31:41 [Steven]
John: Specialization is one means of achieving a UI transformation
14:31:56 [Steven]
... but structural binds would be more declaratively
14:32:04 [Steven]
14:32:39 [Steven]
John: If we were to do structural binds, how do we get two-way communication?
14:32:46 [Steven]
Steven: We don't have two-way now
14:33:27 [Steven]
John: Do we mean 'binding' or structural synchronization
14:33:38 [Steven]
14:35:49 [nick1]
you need to watch out for rounding errors
14:36:39 [nick1]
zakim, unmute me
14:36:39 [Zakim]
nick1 should no longer be muted
14:36:43 [Steven]
Steven: I believe that you can get two-way now by using binds in both directions
14:36:44 [John_Boyer]
Similar to simple data synchronization that Steven mentioned a few years back, e.g. Fahrenheit and Celsius conversion
14:37:02 [John_Boyer]
If you type Fahrenheit, it calculates Celsius and vice versa
14:37:04 [Steven]
Steven: But you have to handle cycles yourself
14:37:21 [nick1]
zakim, mute me
14:37:21 [Zakim]
nick1 should now be muted
14:37:55 [Steven]
Charlie: You can check for equality to stop cycles
14:38:17 [Steven]
Steven: It is still possible to flip-flop between two close values (for instance using multiply and divide)
14:38:45 [Steven]
Charlie: It could get even harder with structural synchronization
14:39:03 [Steven]
Steven: Not sure about that. The ways a structure can change are limited
14:39:51 [Steven]
John: We may be able to address the base cases, without having to deal with the general case of breaking cycles
14:40:13 [Steven]
John: Back to the adapter/webservice case
14:40:22 [Steven]
... you might have a base model that does a lot of the work
14:40:41 [Steven]
... containing the raw data, and knowing how to talk to the server
14:40:51 [Steven]
... it's not doing a UI transformation of the core data
14:41:56 [Steven]
... with webservices, the issue is multiple small services being invoked during interaction, in order to enhance the user experience
14:42:17 [Steven]
... such as name expansion
14:43:13 [Steven]
... or postal code lookup
14:44:01 [Steven]
... if these are generic things that can be invoked in different frms
14:44:06 [Steven]
14:45:07 [Steven]
... then that should be possible
14:46:42 [Steven]
Charlie: You can think of an adapted forms as a type
14:46:52 [Steven]
14:47:32 [Steven]
... the problem is gluing the parts together
14:47:44 [Steven]
... Think of a library of components
14:49:38 [John_Boyer]
The UI adapter could be viewed as another composable component just like Web service XForms markup for multiple services would be composable components
14:49:46 [Steven]
... Maybe it's not worth going that far yet
14:50:27 [Steven]
Charlie: Treat the whole UI as a component
14:50:49 [Steven]
... since it is a reusable artefact
14:51:00 [Steven]
... that jump is a bigger step
14:51:18 [Steven]
... maybe consider it later when we get to components
14:51:39 [Steven]
Leigh: We should pay attention to model when we consider WSDL
14:53:57 [Steven]
rrsagent, make minutes
14:53:57 [RRSAgent]
I have made the request to generate Steven
14:58:28 [Steven]
John: If we had a way for models to communicate
14:58:48 [Steven]
Leigh: With events, then make it look like a webservice
14:59:34 [Steven]
Steven: I think the idea of in-form submits is a very interesting one
15:00:00 [Steven]
Charlie: Are simple controls just a simplified in-form submit?
15:01:49 [Steven]
... allows lots of extension points
15:01:53 [ebruchez]
ebruchez has joined #forms
15:03:29 [Steven]
Topic: Hour 2: Focus on Submission Improvements
15:03:39 [Steven]
Scribe: Charlie
15:03:46 [Steven]
scribenick: wiecha
15:04:27 [wiecha]
John: have broken up rest of day into a set of related discussions
15:05:22 [Zakim]
15:05:34 [wiecha]
...right now @method on submission is required
15:05:41 [wiecha]
...don't think we allow computing the method
15:06:03 [John_Boyer]
15:06:11 [wiecha]
...actually, we do have method element with @value
15:06:39 [wiecha] @method is not required, but we don't have a default for the submission method however specified
15:06:48 [wiecha] perhaps we should state some default
15:07:01 [wiecha]
Leigh: used to have "get" as default but was removed
15:07:09 [nick1]
we use post most...
15:07:17 [nick1]
because we use XML
15:08:50 [wiecha]
Steven: we were asked to deprecate get at one point
15:08:59 [Zakim]
15:09:24 [wiecha]
Steven: XForms 1.0 states no default for @method
15:09:37 [wiecha]
John: which edition? guess first edition starts out with that
15:10:01 [Zakim]
15:10:02 [wiecha]
John: any objection to setting method="get" as default?
15:10:08 [wiecha]
15:10:13 [John_Boyer]
15:10:37 [wiecha]
Erik: no objection
15:10:46 [wiecha]
Steven: starts out from 1st edition in 1.0
15:11:07 [wiecha]
John: if no objections then we need an action item for next edition for xforms
15:11:25 [wiecha]
John: btw, need to discuss editor(s) for 1.2
15:11:29 [wiecha]
15:12:04 [nick1]
I can be an editor...
15:12:36 [nick1]
but now I have time, the problem is that it is hard to guarantee it for the future...
15:12:44 [nick1]
zakim, unmute me
15:12:45 [Zakim]
nick1 should no longer be muted
15:13:12 [wiecha]
zakim, mute Steven
15:13:12 [Zakim]
Steven should now be muted
15:13:12 [Steven]
post was the default in January 2002, and there was no default in aug 2002
15:13:44 [Steven]
ack me
15:15:18 [wiecha]
ACTION: nick to prepare update to 1.2 spec to reflect default for @method="get"
15:15:18 [trackbot]
Created ACTION-558 - Prepare update to 1.2 spec to reflect default for @method="get" [on Nick Van Den Bleeken - due 2009-07-02].
15:15:48 [wiecha]
John: moving to more control around RRRR on submission completion and/or initialization
15:16:19 [wiecha] particular to suppress them on sequences of submissions
15:16:52 [wiecha]
...authors have found performance problems with multiple sequential submits, e.g. to web services
15:17:43 [wiecha] 1.1 have recently simplified things via sync submissions since UI refreshes are skipped, but still do rest of the cycle which is costly
15:18:55 [nick1]
zakim, unmute me
15:18:55 [Zakim]
nick1 was not muted, nick1
15:19:20 [wiecha]
Charlie: maybe could scope the RRRR over a specific instance
15:19:36 [wiecha]
John: we do say the behavior must be "as if" the full rebuild takes place
15:20:04 [wiecha]
Leigh: could lead to interop problems
15:21:53 [John_Boyer]
If you do a setvalue followed by a send (submission), if the setvalue changes a bind nodeset predicate, then it matters whether the submisison does a full rebuild or an "optimized" rebuild that only accounts for the changes made by the submission instance replacement
15:22:11 [John_Boyer]
Leigh made the above point
15:22:41 [wiecha]
Erik: need to recall the original requirement for doing RRRR on submission
15:22:49 [wiecha]
...validation, also calculate, but primarily validation
15:23:18 [wiecha]
...perhaps there's a use case for turning off validation via attribute on submission
15:23:20 [John_Boyer]
This suggests it would be better to have explicit control over whether a submission does rebuild-recalculate-revalidate on submission initialization and [R]RRR on completion
15:24:26 [wiecha]
John: turning off validation doesn't necessarily suggest we can skip other stages, e.g. rebuild
15:24:36 [wiecha]
Nick: is the use case multiple submissions at once?
15:24:46 [wiecha]
John: that's the original goal, might be other reasons
15:25:14 [wiecha]
Nick: if you do the first one of a multiple set, and the submit replaces some data an impl can decide what can be skipped in rebuild etc
15:25:21 [wiecha]
...before doing next submission
15:25:26 [wiecha]
John: on completion?
15:25:39 [wiecha]
Nick: yes, before doing next submit
15:26:31 [wiecha]
...e.g. can skip binds that refer to other instances than the one modified by returned values
15:27:05 [wiecha]
John: though Leigh's point shows any intervening actions can in general cause problems
15:27:38 [John_Boyer]
15:28:27 [wiecha]
John: on init it's only rebuild/recalc that are triggered by deferred update, revalidate in step 4 happens regardless of deferred update if flag is true
15:28:49 [wiecha] authors have control over revalidate, could use similar for rebuild/recalculate
15:29:18 [wiecha]
...on completion instance replacement happens according to insert/delete operations, text replacement by setvalue semantics
15:29:57 [wiecha] submission doesn't have direct control over those post-receipt behaviors...could have indirect control by claiming those operations are not outermost
15:30:47 [wiecha] a sequence, if the first submit is async then when it completes you do setvalue/insert/delete then do 2nd submission...i.e. a sequence of submissions with other operations in between
15:30:56 [wiecha]
...doesn't really depend on async
15:31:27 [wiecha]
...could get better performance in general by suppressing these steps
15:32:00 [wiecha]
Nick: just concerned if this is for performance then requiring the author to set a bunch of flags doesn't seem right...would be better for the impl to be able to optimize on its own
15:32:37 [wiecha]
Erik: yes, also there's a diff w/recalculate and relevant attributes on submission now. these are not performance related
15:32:54 [wiecha]
Nick: yes, these are processing steps that are functional issues for the author, not simply performance
15:33:07 [wiecha]
...would prefer impl do optimizations not author
15:33:22 [wiecha]
John: problem is it's difficult for the impl to know whether the author wants to optimize or not
15:35:01 [wiecha]
John: problem is worse when we try to start creating reusable components, e.g. for web service, and control optimization from the point of the invocation
15:35:12 [wiecha]
...not the internal defn
15:35:42 [wiecha]
...when using singly use normal behavior, when used in conjunction want to use optimized since intermediate results aren't needed
15:35:59 [wiecha]
Nick: if someone else creates that service (model) how can they know what to do?
15:36:07 [wiecha]
John: perhaps event context info
15:36:17 [wiecha]
...parameterize the submission when I call it
15:36:29 [wiecha]'s some extra info for this specific invocation
15:36:52 [wiecha]
Nick: but this seems to imply the user knows the internal impl of the service's invoking model
15:37:00 [wiecha]
15:37:58 [wiecha]
John: author needs to understand how his changes will affect behavior of the form
15:38:03 [wiecha]
...and do regression testing
15:38:07 [wiecha]
Charlie: violates encapsulation
15:38:24 [wiecha]
John: don't think so...need to know what your binds are doing
15:39:29 [wiecha]
Nick: should only depend on the "API"
15:40:05 [wiecha]
John: the dynamic predicates are in the consuming model not the web service model
15:40:16 [wiecha]
...that's where the broken part is, not in how the web service is invoked
15:40:43 [wiecha]
...same problems exist for insert/delete actions in a single model app
15:41:20 [wiecha]
...any time we suppress standard behaviors we'll see the same problems
15:41:33 [wiecha]
Nick: seems to me we're making it worse
15:43:19 [wiecha]
John: so if we scope the web service updates to a separate model we can isolate the required updates
15:43:34 [wiecha] perhaps we should take up this RRRR suppression in light of the general model composition issue
15:43:37 [wiecha]
Charlie: +1
15:44:07 [nick1]
no, in favor of shooting it
15:44:21 [wiecha]
John: moving along to JSON submissions
15:44:32 [Steven]
is kenneth here?
15:44:39 [wiecha]
...much more limited form of JSON support than discussed in the past
15:44:59 [wiecha]
...this is just import/export in JSON format leaving internal processing in XML
15:45:27 [wiecha]
...transform XML or profile of XML into JSON
15:45:35 [wiecha]
...and vice versa
15:45:45 [wiecha]
Charlie: in general the problem of this transform is hard
15:45:53 [Steven]
15:46:11 [wiecha]
John: separate issues around JS expression language etc etc
15:46:29 [wiecha]
...would it be useful simply to have two-way communication with external JSON services?
15:46:42 [nick1]
15:46:56 [wiecha]
Steven: kenneth has an impl now
15:47:28 [wiecha]
...furthermore, the form of the data should be hidden, the structure
15:48:00 [wiecha]
...there are other useful representations in addition to JSON, but JSON itself is quite useful for input/output
15:48:07 [wiecha]
...would like kenneth to describe how he's doing it
15:48:24 [wiecha]
Erik: so it's just JSON/XML conversion?
15:48:45 [wiecha]
Steven: think they just read JSON and convert to XML internally
15:48:58 [wiecha]
Nick: tried this some time ago didn't find std way to do the mapping
15:48:59 [John_Boyer]
Is the conversion automatic only, or does the author have the ability to transform it? Seems automatic would be sufficient because we could write the transform ourselves once it's in XML
15:49:03 [wiecha]
Charlie: yes, that's the question
15:50:36 [wiecha]
John: might constrain the XML you can express in the instance that is transformable two-ways
15:50:41 [klotz]
klotz has joined #forms
15:50:43 [klotz]
15:52:46 [Steven]
I think it's a great idea
15:52:58 [nick1] with XML but it isn't a standard mapping as I know
15:53:32 [John_Boyer]
Although not all XML is translatable to JSON, it doesn't matter. If you're talking to a json service, you have to write the xml that will translate into something the service understands
15:53:49 [Steven]
15:53:51 [John_Boyer]
No different from writing your xml to conform to a schema that a backend transaction processor will be able to proces
15:56:50 [wiecha]
Leigh: we have only half of the general conversion problem...we're always starting with XML-> JSON and not vice versa
15:56:55 [wiecha] this is easier
15:57:45 [wiecha]
John: would be good to also allow script authors to use their trick to get around cross-domain issues
15:58:06 [wiecha]
...i.e. a script tag in the web page can talk to other services w/o security limitations
15:58:19 [wiecha]
...but XMLHTTPRequest is restricted
15:59:41 [wiecha]
John: might say, for example, that a web service from domain A can talk to one in domain B
15:59:50 [wiecha]
Leigh: we don't have to say anything here
15:59:54 [nick1]
16:00:03 [wiecha]
John: so what if two impls do different things here?
16:00:07 [wiecha]
Leigh: not related to JSON
16:00:11 [wiecha]
...same issue for XML
16:01:01 [Zakim]
16:01:03 [Zakim]
16:01:03 [Zakim]
16:01:04 [Zakim]
16:01:04 [Zakim]
16:01:21 [John_Boyer]
one hour break time
16:01:24 [John_Boyer]
rrsagent, make minutes
16:01:24 [RRSAgent]
I have made the request to generate John_Boyer
16:02:51 [Zakim]
16:02:52 [Zakim]
Team_(forms)13:59Z has ended
16:02:54 [Zakim]
Attendees were wiecha, Steven, John_Boyer, nick1, Leigh_Klotz, ebruchez
16:12:26 [John_Boyer]
s/John: moving to more control around RRRR/Topic: More Control around RRRR/
16:12:37 [John_Boyer]
rrsagent, make minutes
16:12:37 [RRSAgent]
I have made the request to generate John_Boyer
16:13:37 [John_Boyer]
s/so perhaps we should take up this RRRR/so perhaps we should drop this RRRR/
16:14:22 [John_Boyer]
s/no, in favor of shooting it/yes, in favor of shooting it/
16:14:33 [John_Boyer]
rrsagent, make minutes
16:14:33 [RRSAgent]
I have made the request to generate John_Boyer
16:18:50 [John_Boyer]
s/Topic: More Control around RRRR/John: moving to more control around RRRR/
16:18:59 [John_Boyer]
rrsagent, make minutes
16:18:59 [RRSAgent]
I have made the request to generate John_Boyer
17:00:32 [Zakim]
Team_(forms)13:59Z has now started
17:00:39 [Zakim]
17:00:42 [Zakim]
17:00:48 [wiecha]
zakim, [IBM] is wiecha
17:00:48 [Zakim]
+wiecha; got it
17:01:36 [klotz]
zakim, code?
17:01:36 [Zakim]
the conference code is 26633 (tel:+1.617.761.6200 tel:+ tel:+44.117.370.6152), klotz
17:02:01 [Zakim]
17:02:31 [Zakim]
17:02:44 [Zakim]
17:02:55 [nick1]
zakim, I am [IPcaller]
17:02:55 [Zakim]
ok, nick1, I now associate you with [IPcaller]
17:04:45 [John_Boyer]
17:05:11 [nick1]
scribe: nick
17:06:19 [nick1]
TOPIC: Enriched Text Content
17:06:56 [nick1]
John: We've been talking about mediatype="text/html" on textarea
17:07:19 [nick1]
... maybe not required but an optional feature
17:07:59 [nick1]
John: We want user to edit rich text, but doesn't needs to be stored as XML encoded
17:09:06 [nick1]
John: Now we only have SNB for a textaere, you aren't able to bind to a subtree so the instance contains xml elements like bold and italic
17:09:37 [nick1]
... and not < and >
17:09:43 [ebruchez]
17:11:09 [nick1]
Nick: we use XSL-FO as a format in our processor, binding to a subtree
17:11:42 [nick1]
John: John we should just give a list of possible formats
17:12:07 [nick1]
Leigh: It will be interesting to see how a voice system will do this
17:12:26 [nick1]
Leigh: editing ATOM will be a good use case
17:12:48 [ebruchez]
<feed xmlns="">
17:12:48 [ebruchez]
<title type="text">dive into mark</title>
17:12:49 [ebruchez]
<subtitle type="html">
17:12:49 [ebruchez]
A &lt;em&gt;lot&lt;/em&gt; of effort
17:12:49 [ebruchez]
went into making this effortless
17:12:49 [ebruchez]
17:13:17 [nick1]
John: text/html wouldn't ensure the content is well formed XML which we can't support
17:13:20 [ebruchez]
<content type="xhtml" xml:lang="en"
17:13:20 [ebruchez]
17:13:20 [ebruchez]
<div xmlns="">
17:13:20 [ebruchez]
<p><i>[Update: The Atom draft is finished.]</i></p>
17:13:21 [ebruchez]
17:13:21 [ebruchez]
17:13:46 [nick1]
John: but drawing the line at XHTML should be good
17:14:38 [John_Boyer]
So, XHTML means edit XML as XML without encoding, and text/html content would be encoded
17:14:42 [nick1]
Erik: Explain the ATOM markup he pasted in the IRC (first type text encoded, type xhtml not encoded)
17:15:16 [nick1]
Erik: Orbeon does what ATOM proposes
17:15:37 [nick1]
John: Where do we specify the format?
17:16:05 [nick1]
Erik: we could use the media-type attribute on textarea
17:16:07 [John_Boyer]
Is it appropriate for the UI control to specify the format? It seems the examples above show that the data knows the format
17:17:06 [nick1]
Erik: ... we could make the media-type dynamic
17:18:21 [nick1]
Charlie: We should use content-type to drive the encoding and media-type drives the UI
17:18:51 [nick1]
zakim, mute me
17:18:51 [Zakim]
[IPcaller] should now be muted
17:19:01 [nick1]
zakim, I am [IPcaller]
17:19:01 [Zakim]
ok, nick1, I now associate you with [IPcaller]
17:20:37 [nick]
John: If we support to edit an XML subtree we need a Rebuild after every edit
17:20:45 [ebruchez]
xf:copy: "as if an insert action had occurred"
17:20:51 [nick]
because we are doing inserts and deletes
17:21:26 [nick]
John: in case of copy we know what it always bind to a subtree
17:21:56 [nick]
John: In textarea the ref would sometimes bind to the text and sometimes to subtree
17:22:41 [nick]
Erik: You can see the ref binding to a node, and the control deciding what to update because it knows if it is editing a subtree or a text node
17:23:09 [ebruchez]
For reference, the Atom Syndication Format RFC:
17:23:35 [nick]
Leigh: There is nothing different to the UI if we are editing an XML subtree or textnode
17:25:02 [nick]
Charlie: I'm a bit scared of media-type driving how the data is represented in the instance.
17:25:56 [nick]
Leigh: The xhtml has some deeper issues separate from the presentation
17:27:09 [nick]
Leigh: I don't want to talk about xhtml, the problem is that we don't have anything to edit mixed content
17:28:58 [nick]
... discussion about serialisation
17:30:27 [nick]
zakim, unmute me
17:30:27 [Zakim]
[IPcaller] should no longer be muted
17:31:29 [nick]
Zakim: mute me
17:32:26 [nick]
leigh: We want to bind to a subtree
17:32:34 [nick]
zakim, unmute me
17:32:34 [Zakim]
[IPcaller] was not muted, nick
17:32:50 [nick]
17:33:41 [nick]
Leigh: You could see to XML as something special, that isn't in the intsance, because the XML could be big simular to uplaod
17:34:00 [nick]
wiecha: it could be shadow tree
17:34:02 [nick]
17:34:38 [nick]
ebruchez: we have a address component that edits the address subtree
17:35:15 [John_Boyer]
ack nick
17:35:39 [John_Boyer]
ack IPcaller
17:35:46 [John_Boyer]
ack [IPcaller]
17:36:52 [nick]
nick: We have binds that go in the XML subtree to add additional constraints for example prevent bold
17:37:03 [nick]
or limit the font sizes
17:37:21 [wiecha]
Charlie: I'm just really confused about the idea of letting binds see the sub-structure of these complex mediatypes
17:37:36 [nick]
nick: so the textarea binds to a subtree, but the rich text doesn't allows certain markup
17:37:57 [wiecha]
Charlie: but maybe i shouldn't think about the element structure of the instance as being so different from the "data" of the app
17:38:00 [nick]
nick: but I'm not sure if we want to support it by the spec
17:39:10 [John_Boyer]
constraint="not(substring( whatever, '&lt;b&gt;'))"
17:39:27 [nick]
John_Boyer: can't you do the same with escaped content
17:39:49 [nick]
nick: are clients have xml and they want to add the xml subtrees easily
17:40:55 [wiecha]
we're going to hit similar issues when we do components and let them manage subtrees
17:41:45 [nick]
Leigh: We have to be careful that we don't allow malformed html that when rendered exploits are triggered by the javascript
17:42:50 [nick]
John_Boyer: it is different in nick's case it is the author in leighs case it is the processors problem
17:44:36 [nick]
Leigh: you can't use a regular expressions to protect it because it would be difficult to handle all edge cases, you need to use the real pipeline and then check it
17:45:05 [Zakim]
17:45:40 [nick]
John_Boyer: it doesn't seem to matter if the author or the processor and it both occures in HTML and XHTML
17:45:49 [John_Boyer]
got dropped, redialing
17:46:19 [Zakim]
17:46:20 [nick]
Leigh: It is much easier in the DOM then it in the escaped string
17:46:42 [nick]
Leigh: probably nearly impossible in the escaped string
17:47:55 [nick]
Leigh: We could only insert the XML data when submitting like upload, but then we don't have the power of XForms constraints
17:48:56 [nick]
Leigh: To choices are: outside the intsance, in a component, inside the instance,
17:50:12 [nick]
ebruchez: gives example of an address component, and specialization to limit the valid addresses from the outside
17:50:57 [nick]
wiecha: it is like an xhtml textarea a subtree comming back
17:51:05 [nick]
17:52:23 [nick]
Leigh: the separate tree could come back if we want to support hundred megabyte XML subtree
17:53:06 [nick]
ebruchez: the xhtml case is a simple form of a component
17:54:06 [nick]
John_Boyer: we also have the cross-implementation compatibility issues if we support the html rich content
17:55:05 [nick]
ebruchez: we already have the problem today, because the components deliver different HTML if the run in FF and IE
17:55:10 [Steven]
zakim, dial steven-617
17:55:10 [Zakim]
ok, Steven; the call is being made
17:55:12 [Zakim]
17:55:28 [Steven]
rrsagent, make minutes
17:55:28 [RRSAgent]
I have made the request to generate Steven
17:55:51 [Steven]
s/Hour 2: //
17:55:58 [nick]
John_Boyer: do we need to give access to serialization, but is that going to solve the compatibility
17:56:19 [nick]
Leigh: I want to solve the cross site scripting
17:56:47 [Steven]
i/scribe: nick/scribenick: nick1/
17:56:55 [Steven]
rrsagent, make minutes
17:56:55 [RRSAgent]
I have made the request to generate Steven
17:58:37 [nick]
Leigh: We maybe need to support transformations when the data comes in and when it is submitted
17:59:13 [nick]
John_Boyer: We have need transformations on simple content too, (gives example about number formatting)
18:00:19 [nick]
wiecha: having a general solution for all controls would be great to have
18:01:42 [nick]
(leigh gives a good summary )
18:04:11 [nick]
Leigh: The control would be bound to a model that binds to another model by a sort of adaptor
18:06:00 [nick]
ebruchez: not sure that a component binds using a ref, there is synchronization in both ways, there are updates to the component and the component can write data back
18:06:05 [John_Boyer]
ref is not quite like submission because UI controls have lots of cases where the model projects data onto the UI without the UI initiating a "submission" to the model
18:06:10 [John_Boyer]
This includes initialization and refresh
18:06:20 [nick]
ebruchez: I don't really see the complete analogy with submit
18:07:04 [nick]
wiecha: it is a bit like submission but there is more
18:08:02 [nick]
ebruchez: we implement this with XBK, xf-enabled the data is fetched to the component, the component uses local data, and at certain times it commits its data back to the main document
18:08:55 [nick]
wiecha: there is processing in common with submission but there are more things going on
18:09:36 [nick]
wiecha: the component may update when the form is running not only when the control is initially showed
18:10:20 [nick]
ebruchez: submission is really http centric, component communication doesn't needs the protocol stuff
18:10:52 [nick]
John_Boyer: is mixed content low hanging fruit, or does it requires a lot of work
18:11:57 [nick]
Leigh: There is a need for security which is hard with escaped content, but the mixed heavily changes our processing model
18:12:53 [nick]
ebruchez: I don't know if it is that more difficult, if we only want to support xhtml mixed content we have the rebuild problem already with copy
18:13:40 [Steven]
18:13:47 [Steven]
rrsagent, make minutes
18:13:47 [RRSAgent]
I have made the request to generate Steven
18:14:38 [nick]
John_Boyer: maybe we can only for now support a text area to bind to text content, but also to a subtree and only do the normal RRR and not the RRRR the author can add a value change listener that does the rebuild
18:15:27 [nick]
ebruchez: the same problems happen with xf:copy
18:16:00 [nick]
John_Boyer: if your code knows that it writes a subtree, just do the rebuild in your code
18:16:21 [nick]
ebruchez: agrees
18:16:22 [klotz]
klotz has joined #forms
18:16:25 [klotz]
18:19:20 [nick]
John_Boyer: Some people want to sit in between the instance and the control to filter certain markup (script tags,...) but maybe we don't need to standardize that
18:20:07 [nick]
John_Boyer: explains the cross implementation problem with using different rich text controls
18:20:39 [nick]
nick: the problems also exists when you edit in a different browser
18:22:19 [nick]
John_Boyer: explains problem with copy paste between MS Word and rich text area
18:23:03 [John_Boyer]
if processor A has a better implementation of rich content than processor B, then the content is not interoperable across the two processors
18:23:33 [nick]
ebruchez: there could be implementations in different languages not in Javascript on the browser
18:26:34 [nick]
ebruchez: it isn't possible to rule out all compatibility problems
18:27:01 [nick]
ebruchez: but I don't think that this should be a show stopper
18:27:54 [nick]
John_Boyer: If we make it optional to implement, we could also add a note that states that there could be compatibility problem between implementations
18:28:27 [nick]
John_Boyer: but the rendering/editing components just need to mature
18:30:27 [nick]
nick: I don't think we need to say something about interoperability because it is either a bug in the html that is generated or parsed by the component
18:31:20 [Zakim]
18:32:02 [nick]
leigh: I think it is out of scope of the XForms spec to specify something about html interoperability inside a text area component
18:32:41 [nick]
leigh: We don't say anything about the alpha transparency of PNG, which is a pain for IE6 users
18:36:42 [John_Boyer]
s/need to mature/need to mature and otherwise HTML compatibility is just noted as being out of scope. XForms is just saying how to wire up these components which will hopefully be more compatible over time.
18:36:48 [John_Boyer]
rrsagent, make minutes
18:36:48 [RRSAgent]
I have made the request to generate John_Boyer
18:38:55 [ebruchez]
18:39:09 [Steven]
zakim, dial steven-617
18:39:09 [Zakim]
ok, Steven; the call is being made
18:39:10 [Zakim]
18:41:55 [John_Boyer]
scribenick: klotz
18:42:32 [nick]
+1 for mediatype
18:42:35 [klotz]
John: Should we pull off mediatype on textarea?
18:42:44 [klotz]
Charlie: I think we should open it up to the html case.
18:42:46 [ebruchez]
18:43:07 [nick]
If no one volunteers I could put it on my list
18:43:10 [klotz]
John: Eric, since you provided one of the examples, did you implement the xhtml case?
18:43:17 [klotz]
Steven: What's the difference?
18:43:33 [klotz]
John: In XHTML we edit the data without encoding, using structural changes.
18:43:36 [klotz]
Steven: So it's XML.
18:43:38 [klotz]
Charlie: Inline
18:43:59 [klotz]
Charlie: A @ref has a subtree of XML under it instead of a string leaf element.
18:44:03 [klotz]
Steven: That sounds like the XHTML case.
18:44:20 [klotz]
John: Do we know of any implementations of the XHTML case.
18:44:35 [klotz]
Steven: So the chunk of XML that represents HTML is the case we're considering.
18:44:44 [klotz]
John: A text/html case that's encoded.
18:44:49 [klotz]
Steven: Just a string, in other case.
18:44:59 [klotz]
John: THen a separate case of handling XHTML as XML.
18:45:28 [klotz]
Leigh: My point about the text/html case is that it's purely presentation.
18:45:46 [klotz]
John: So are we comfortable not handling the XML case at this time?
18:45:54 [klotz]
Steven: Is it that much more work?
18:46:16 [klotz]
John: It changes the way the control behaves. We have no other control that does that.
18:46:22 [klotz]
John: I'd like to see both.
18:46:50 [klotz]
Steven: Let's do both.
18:47:01 [klotz]
Leigh: It's our first real control that binds to a tree.
18:47:04 [klotz]
Erik: copy
18:47:07 [klotz]
Leigh: Copy isn't a control
18:47:16 [klotz]
Erik: But select does, with copy.
18:47:20 [klotz]
John: But it's a non-leaf element.
18:47:23 [klotz]
John: Exactly
18:47:57 [klotz]
Leigh: So Erik why haven't you implemented it?
18:48:10 [klotz]
Erik: We had no demand for it. But there is no technical restriction.
18:48:42 [klotz]
Erik: The minor processing model updates are there. We now have filtering on HTML.
18:49:09 [klotz]
John: So we already have a control that does tree manipulation.
18:49:34 [klotz]
Erik: The itemset does it, so it's the control
18:50:02 [klotz]
John: So it seems reasonable to do both. We can decide if we want it to go into FPWD.
18:50:23 [klotz]
Erik: Do we also support application/xhtml+xml encoded?
18:50:32 [klotz]
Erik: And another mechanism to trigger the subtree addition?
18:50:42 [nick]
an encoding attribute on textarea
18:51:00 [klotz]
Leigh: The atom people didn't do that, but they use keywords.
18:51:04 [nick]
zakim, unmute me
18:51:04 [Zakim]
[IPcaller] was not muted, nick
18:51:10 [klotz]
John: We could have encoding separately from MIME type.
18:51:21 [klotz]
Erik: Since it can store HTML as text why can't it store XHTML as text.
18:51:51 [klotz]
Erik: It's not ridiculous to have encoded XHTML. Maybe namespaces.
18:52:33 [John_Boyer]
mediatype="application/xhtml+xml; encode=true"
18:52:57 [klotz]
mediatype="application/xhtml+xml" transform="base64-encode"
18:53:25 [klotz]
Erik: I'm not sure anybody is in charge of certifying those parameters.
18:54:04 [klotz]
Leigh: If we're going to worry about this we should worry about the filtering.
18:54:48 [klotz]
John: So you think they are separable issues or not?
18:55:14 [klotz]
Leigh: If the default is to do & encoding and we then introduce application/xhtml then we'd need to introduce a way to say not to escape it.
18:56:11 [klotz]
Nick: Can't we default it based on mediatype and say you have to specify somethign extra if you want it the other way around?
18:56:55 [klotz]
John: I think Leigh is arguing that we want the default to be escaped.
18:57:06 [klotz]
Leigh: I think we can decide what we want but we have to discuss it first.
18:57:19 [klotz]
Charlie: We're confusing mediatype and contenttype.
18:58:12 [klotz]
Leigh: We have to decide what we want defaulted before we default.
18:58:43 [klotz]
John: Maybe type mip. I'm not sure how you'd do it for the empty starting case. Our type MIP only assigns simple content types.
18:58:46 [klotz]
Erik: Only datatypes.
18:58:50 [klotz]
John: It can't be a type MIP.
18:59:20 [klotz]
John: Or you could drag in the whole XHTML schema.
18:59:24 [klotz]
Leigh: Or just div, as ATOM did.
18:59:32 [klotz]
Charlie: If it's encoded, it's a string.
18:59:47 [klotz]
John: If the field starts empty how can you tell it's supposed to be XML subtree?
19:01:10 [klotz]
John: What do they say in atom for XHTML?
19:01:17 [klotz]
Leigh: in RNG, anything in the XHTML namespace.
19:01:21 [klotz]
Erik: ...
19:01:29 [klotz]
Erik: A type MIP implies validation.
19:01:35 [klotz]
John: Or a different MIP.
19:01:42 [klotz]
Erik: I'd rather this be at the level of the control.
19:01:54 [Zakim]
19:02:17 [klotz]
Leigh: It's data and it's a node; the only way we have of saying it's a tree is XML Schema.
19:02:37 [klotz]
John: It's a tree root, not a leaf node. I'd like to get to that on UI bindings as a qualifier.
19:03:03 [klotz]
John: Simple content mutation or tree mutation, and that tells me whether to do a rebuild.
19:03:18 [klotz]
Erik: If the control updates the structure it should use insert and delete or some higher-level mechanism on the instance.
19:03:57 [klotz]
John: It can be a UI binding attribute to say whether it happens. the way the control interacts with the data is node replacement instead of content replacement.
19:04:07 [klotz]
Erik: That would be the only case.
19:04:16 [klotz]
John: We could have a tree control in the future.
19:04:24 [klotz]
Erik: It depends. The tree control might know.
19:04:43 [klotz]
John: We might have components in the future, custom controls that manipulate a whole tree.
19:04:56 [klotz]
Erik: An attribute specific to the controll.
19:05:47 [klotz]
Erik: An xforms content type for xhtml.
19:05:56 [klotz]
John: Or any content, a subtree, that is generic.
19:05:58 [ebruchez]
<xf:bind type="xforms:xhtml" ...>
19:06:23 [klotz]
<xf:bind type="xforms:svg" />
19:06:42 [John_Boyer]
What about "any element"?
19:06:44 [klotz]
Erik: Do we have a generic case?
19:06:49 [klotz]
Leigh: Yes, drawing in SVG.
19:06:59 [klotz]
John: Isn't there an xsd:anyElement?
19:07:20 [Steven]
that's what we use for instance content surely
19:07:41 [Steven]
19:08:36 [klotz]
It's complextype/sequence/xsd:any/@namespace="##any" but does that allow toplevel text?
19:09:02 [klotz]
Erik: We'd be looking at creating types. We could have a type for xhtml or a type for XHTML+XML.
19:09:03 [John_Boyer]
actually looks like xs:any, not xsd:any
19:09:26 [klotz]
John: For any XML-based mediatype you would need an XML schema type.
19:09:41 [klotz]
John: The type MIP doesnt' do type validation of complex types.
19:09:54 [klotz]
John: So if we want a minimal exception.
19:10:37 [klotz]
John: How do you operate without an XML schema then? Is there an alternative?
19:10:51 [klotz]
Erik: If you said xforms:xhtml it wouldn't mean a schema is required; the XForms engine could do it.
19:11:15 [klotz]
John: It could be any element.
19:11:25 [klotz]
Erik: with a built-in type you don't need a schema.
19:11:59 [klotz]
John: So if you had xforms:html as a new data type, how do we define it? They're not just keywords.
19:12:42 [markbirbeck]
markbirbeck has joined #forms
19:13:01 [John_Boyer]
<bind ... type="xforms:any"/>
19:13:23 [ebruchez]
unfortunately I have to switch to listen-only mode now
19:13:39 [nick]
zakim, mute me
19:13:39 [Zakim]
[IPcaller] should now be muted
19:14:12 [Zakim]
19:14:43 [nick]
zakim, who is here?
19:14:43 [Zakim]
On the phone I see Leigh_Klotz, [IPcaller] (muted), John_Boyer, Steven
19:14:44 [Zakim]
On IRC I see markbirbeck, klotz, John_Boyer, RRSAgent, Zakim, wiecha, Steven, nick, trackbot
19:14:45 [klotz]
Leigh: If we use a schema-based way of indicating whether to encode or not, must processors examine all schema type declarations to see if they permit mixed content?
19:16:29 [klotz]
John: It seems heavyweight. Erik said maybe some aspect of the control defines whether it is XML encoded or not.
19:16:39 [klotz]
Leigh: Maybe we need a type mip that says it's a subtree.
19:16:52 [Zakim]
19:16:53 [klotz]
Leigh: But we have that for select already.
19:17:04 [wiecha]
really seems strange this should be set by the control
19:17:17 [wiecha]
...just judging from the IRC, sorry
19:17:47 [John_Boyer]
true, though it is already set by the control in the select/copy case. Maybe, though, we don't want to further open that door
19:17:59 [klotz]
Leigh: We are taking Charlie's point that the encoding should be a data property, but it may be too hard to recover from a schema type declaration so perhaps we need a type MIP that says leafnode="true|false" or something.
19:18:08 [John_Boyer]
everyone is also mulling a different kind of MIP than the type MIP
19:18:18 [wiecha]
k, thx
19:18:32 [John_Boyer]
Tried to do type MIP, but seems we would have to make an exception because type MIP does datatype (simple content) only
19:18:48 [wiecha]
19:19:22 [klotz]
John: not only leafnode="true|false" but also an xpath because it would be nice to associate leafness with the node based on some attribute of the node itself.
19:19:32 [klotz]
John: Because that covers the atom case.
19:19:45 [klotz]
Leigh: Maybe we should be looking at schematron.
19:19:46 [nick]
but then we should put it on the control again...
19:20:10 [klotz]
John: But it's our mip, not a type declaration.
19:20:35 [klotz]
Leigh: Wherever we put it is should be availbable in the instance.
19:21:38 [nick]
could be dynamic not should I think
19:21:56 [nick]
zakim, unmute me
19:21:56 [Zakim]
[IPcaller] should no longer be muted
19:24:52 [klotz]
Leigh: it should be possible to be data driven.
19:25:09 [klotz]
John: So an xpath expression, on mip or control.
19:25:11 [klotz]
Leigh: Yes.
19:25:20 [nick]
zakim, unmute me
19:25:20 [Zakim]
[IPcaller] was not muted, nick
19:25:25 [nick]
zakim, mute me
19:25:25 [Zakim]
[IPcaller] should now be muted
19:26:39 [klotz]
John: I'd like to get an action item on this. I recall Nick said he might be willing.
19:27:24 [klotz]
John: Just make a choice; an xpath-bearing attribute to a control. Then after the first draft we can modify.
19:27:33 [klotz]
Leigh: That's better than a new MIP.
19:27:47 [klotz]
John: Yes, a leafness mip seems drastic.
19:28:17 [nick]
just put it on my list then
19:29:22 [nick]
if the groups has a look at my e-mail of today ;)
19:29:33 [nick]
19:29:44 [klotz]
ACTION: Nick van den Bleeken to write up new binding on textarea for leafiness.
19:29:44 [trackbot]
Created ACTION-559 - Van den Bleeken to write up new binding on textarea for leafiness. [on Nick Van Den Bleeken - due 2009-07-02].
19:29:51 [nick]
zakim, unmute me
19:29:51 [Zakim]
[IPcaller] should no longer be muted
19:30:02 [Zakim]
19:30:03 [Zakim]
19:30:05 [Zakim]
19:30:08 [Zakim]
19:30:09 [Zakim]
19:30:09 [Zakim]
Team_(forms)13:59Z has ended
19:30:10 [Zakim]
Attendees were John_Boyer, wiecha, ebruchez, Leigh_Klotz, [IPcaller], Steven
19:30:16 [John_Boyer]
rrsagent, make minutes
19:30:16 [RRSAgent]
I have made the request to generate John_Boyer
19:30:22 [John_Boyer]
rrsagent, bye
19:30:22 [RRSAgent]
I see 2 open action items saved in :
19:30:22 [RRSAgent]
ACTION: nick to prepare update to 1.2 spec to reflect default for @method="get" [1]
19:30:22 [RRSAgent]
recorded in
19:30:22 [RRSAgent]
ACTION: Nick van den Bleeken to write up new binding on textarea for leafiness. [2]
19:30:22 [RRSAgent]
recorded in