Alain Couthures, AgenceXML
Leigh Klotz, Xerox (minutes)
Nick van den Bleeken, Inventive Designers
Philip Fennell, MarkLogic
Steven Pemberton, CWI/W3C (chair)
Uli Lissé, DreamLabs
Erik Bruchez, Orbeon
Dan MacCreary, Dan MacCreary Associates
Philip Fennell: Alain mentioned
something and I'm interested in using Schematron to alert you when
you use features not implemented in all implementations.
Steven Pemberton: Such as ref on label
in XSLTForms?
Philip Fennell: Yes, either phases or
separate schemas per implementations.
Steven Pemberton: Ideally we'd have
that in our yet-to-appear validator.
Leigh Klotz: We have a validator
schema already. We need a spec.
Steven Pemberton: Is there a rule that
says we have to have a spec to have a validator.
Leigh Klotz: Maybe I'm confabulating
but I think we do.
Steven Pemberton: I'd missed that.
Would a note be enough, with our Relax NG?
Leigh Klotz: Maybe so?
Steven Pemberton: Is that an action
item for me?
ACTION-1778 Steven Pemberton to check into resolving what we need to get our RNC schema published as part of Unicorn. [on Steven Pemberton - due 2011-03-02].
Philip Fennell: We have the grammar
validation with RelaxNG. The NVDL work I did was problematic. The
idrefs weren't working across islands.
Leigh Klotz: RelaxNG idref doesn't
work well anyway.
Philip Fennell: We can use Schematron
on the side to check for implementation differences.
Steven Pemberton: We can add
schematron bits.
Leigh Klotz: The RelaxNG schema we
have is based on Micah Dubinko's and it used XPath rules in XSLT
plus RNG. http://xformsinstitute.com/validator/
It's a good source to mine for ideas and rules.
Leigh Klotz: Nokia have an XForms
implementation and they added something about two weeks ago.
Steven Pemberton: In June they
announced it to www-forms.
Dan MacCreary: Is this a commercial
product?
Steven Pemberton: It's an open source
result from Nokia Research. What's new?
Leigh Klotz: Looks like it's just
build instructions, so not new, but still active.
Steven Pemberton: Hypertext
Coordination Group is again this Friday. We had a discussion. It
got a little bit heated, but it was difficult to work out what the
problem was. The question was whether there would be a Core
specification with branches (WebBL and XBL), one specification with
two bits, or two different specifications. Unfortunately, one of
the people who was expected to be there (from Nokia) wasn't
there.
Leigh Klotz: Doug said that optional
features weren't covered by royalty-free patent policy, but I'm not
sure I agree with that.
Steven Pemberton: Yes, I don't think
the W3C patent policy says anything like that. You can find
optional features all the way through W3C specifications. That
notwithstanding, it wasn't a very good discussion. Did you feel we
got any further?
Leigh Klotz: I explained how we would
like to have XBL at the upper levels support the full XML stack
with XML namespaces for XForms elements, and have the same
language, or a subset (from our point of view), inside desktop
browsers, to provide concrete component definitions. Chris Lilley said it was a
good summary.
Steven Pemberton: We'll have to bring
it up again this week.
Leigh Klotz: Do we have an AVT Wiki
page?
Steven Pemberton: No, we should.
BetterForm now has avt.
Leigh Klotz: I believe Alain is
working on AVT.
Alain Couthures: Are AVT possible for
XForms elements? Then I would have to change a lot of things. At
the beginning only on HTML elements, not everywhere like in
Orbeon.
Steven Pemberton: So Orbeon allows it
everywhere?
Leigh Klotz: Not in XPath expressions,
but XSLTForms has a single-pass, so if you had appearance, it's a
constant.
Alain Couthures: It's possible but
more difficult. I can do so some such as on submission.
Steven Pemberton: When are they
evaluated?
Alain Couthures: It's like XForms
output. It's about attributes on text nodes; it's not that
difficult on HTML elements, but it's quite difficult on XForms. The
constant values have to be an XPath expression. It's easier to
implement first for HTML elements. For each and every XForms
element it has to be done.
Erik Bruchez: In our implementation we
don't support AVT everywhere. For example, we don't support AVT on
the appearance attribute, probably for reasons similar to Alain's.
It's an implementation detail. We should not be stopped by
requiring AVT support everywhere. We should support AVT where
dynamic values make sense. That's most places where we specify a
constant right now. If we find some places where it's too hard to
force implementators (@appearance, textarea/@mediatype) then we
don't have to. There are not that many places where AVTs are used.
All expressions that are already XPath expressions should not be
AVTs, for example, as you already have a dynamic expression. As far
as evaluation is concerned, one is submission elements. There it is
quite easy as we have a processing model that is clear about when
things need to be ready: @method, for example, should be evaluated
right then. We have many attributes like that on submission.
Another is on some actions: it's easy there too, because you
evaluate it when you run the action. For controls, I have a list:
http://wiki.orbeon.com/forms/doc/developer-guide/xforms-attribute-value-templates#TOC-AVTs-on-XForms-elements1
Erik Bruchez: So if your attribute
doesn't contain a curly bracket, or you have two brackets that's an
escape. The harder cases are the one that concern Alain, for
example switching between a plain-text and rich-text editor. That's
harder but we don't have to do it at first.
Alain Couthures: In XSLTForms we have
the same issue with xsi:type. The HTML elements have to be
changed.
Erik Bruchez: We have the exact same
thing. We have custom code to switch between representations on
xf:input. You'd have to go further. Textarea would be another one.
If you happen to support another one, it would have to switch. One
approach is to use XBL. The idea is that the template for control
is an XBL, so you have XBL for input plain, date input, etc. If you
have a mechanism that allows you to unbind and rebind XBL, then you
can have a generic mechanism to change.
Leigh Klotz: That's how Mozilla XForms
works; they surface the datatype of the bound node on the control
as a pseudo-attribute and change it and the appearance.
Erik Bruchez: Exactly.
Leigh Klotz: It will be very
interesting to use XBL2 or WebBL in the desktop browser.
Erik Bruchez: In a few years. For now
you have to do the hard work.
Leigh Klotz: You've done it now. And
others can know that they won't have as much work in the future. So
we can get it in the spec now.
Steven Pemberton: Who gets to own
it
Leigh Klotz: http://www.w3.org/MarkUp/Forms/wiki/AVT
Erik Bruchez: If nobody volunteers, I
can try to own it.
ACTION-1779 Erik Bruchez to add content to http://www.w3.org/MarkUp/Forms/wiki/AVT
Erik Bruchez: XPath 2.0 returns the
seconds component from a date. Ours returns seconds since the
epoch. I did a quick note on the wiki about this in http://www.w3.org/MarkUp/Forms/wiki/XPath_2.0
Nick van: We have to decide.
Erik Bruchez: In XPath 2.0 you have
minutes-from-dateTime, etc. It's very confusing. It's an issue with
multiple function libraries and the potential for conflict. Do you
use namespaces?
Nick van: All our XForms functions go
in the XForms namespace in XPath 2. If you put the functions in the
default namespace it's a problem. But I'm not sure it's a good idea
to have two functions with the same name in different namespaces
doing different things.
Steven Pemberton: No, I don't think
so.
Erik Bruchez: Ours was there from
XForms 1.0. So we can't say we were wrong. Both functions have been
around for a very long time.
Nick van: Can't we deprecate
seconds-from-dateTime and rename it?
Steven Pemberton: My gut feeling is
that we should use the XPath 2.0 version, as it's the common
technology, and rename ours to something else.
Nick van: Definitely, as they have
minutes-from-dateTime.
Leigh Klotz: Do they have a
seconds-since-epoch function?
Erik Bruchez: No, but you can subtract
the date. To get the number of seconds since any date you subtract
the date and you get seconds. If that's January 1, 1970 you get a
duration, from which you extract seconds.
Nick van: You have to call
minutes-from-duration, hours-from-duration, etc. And then multiply
them.
Steven Pemberton: That doesn't work
because of months.
Erik Bruchez: You subtract and get the
duration and then I think they have a function....there is
seconds-from-duration.
Nick van: That returns only the
seconds part.
Leigh Klotz: Time to ask Michael
Kay.
Erik Bruchez: I'm not sure who likes
these functions. He asked for simpler functions but that didn't
work out.
Leigh Klotz: I believe Micah Dubinko
put it in as the only way to do date comparisons as all we had was
strings.
Steven Pemberton: So in XPath 2.0 you
can compare dates, so the use case disappears. I propose we say
that we use the XPath 2 version and provide advice to users to get
the same effect using the XPath 2 functions.
Leigh Klotz: We don't have a way to
get the number of seconds. We do have a way to do comparison of
dates.
Steven Pemberton: So do we think it's
necessary? Is there anybody who thinks we should have a function
that produces the number of seconds since duration? No, then we
drop it.
Resolution 2011-02-23.1: We drop seconds-from-dateTime which returns epoch in favor of XPath 2.0 function, and encourage use of XPath 2.0 date comparison which was the motivating use case for the XForms 1.0 function.