Re: XForms document versioning

Hi Aaron,

Everything you say is true! :)

However, the global version attribute I am suggesting is basically an
indicator to authors, rather than processors, since I have doubts
about how easy it is to enforce versioning at the level of the
processor.

The reason I'm not sure we can make versioning work at the porcessor
level is because we didn't put it in from the beginning, in XForms
1.0). The good thing about the XSLT version attribute is that it was
there from the start, so even a 1.0 processor must check the attribute
value. This means that every single XSLT 1.0 processor out there can
bail when it sees a stylesheet that is intended for a newer version of
XSLT.

That's not the situation we're in, and I'll give some examples of how
it can cause problems.

On xf:message in version 1.0 a value is required for @level. But in
XForms 1.1 there is a default value for @level, of "modal", so the
attribute can be omitted. If we write a form that makes use of this
facility, what will happen to it when it arrives at a 1.0 processor?
The message will probably not be displayed.

Similarly, in XForms 1.1 we have the new resource element and
attribute on submission. Anyone writing new forms going forward will
most likely use @resource instead of @action on submission, even on
forms that don't need the new features, since it keeps things nice and
consistent. But once again, what will happen this form when it arrives
at a 1.0 processor? Not a lot when the submission is triggered, since
there will be no @action.

I could go on--there is improved behaviour in insert if the nodeset is
empty, etc., etc. In other words, there are plenty of situations where
1.1 mark-up will be interpreted differently in 1.0.

Now, I'm happy to agree that any serious application developer who is
using XForms a lot will need to be aware of issues like this, and code
appropriately if they want their forms to work on both 1.1 and 1.0
processors; having a @level on all messages, for example, is no big
deal. But where I am most concerned is in relation to the brand new
author who cuts and pastes a nice looking example from a web-site,
only to find that it doesn't work in their chosen processor. The
ensuing exchanges on our list as we try to establish exactly why it
doesn't work will be painful. ;)

So that's what lies behind my suggestion; I'm making a distinction
between mandating some behaviour for a processor, versus providing
help to authors. If we can solve both then even better! But I think to
do that we need to add the version attribute to XForms 1.0...which I'm
certainly all in favour of, but I don't know what other implementers
think.

(The only other alternative is to keep making changes to XForms 1.0
that make it more 1.1-like...replacing @action with @resource,
allowing @level to have a default value, etc. But that just doesn't
seem practical.)

Regards,

Mark

On 05/04/07, Aaron Reed <aaronr@us.ibm.com> wrote:
>
> Hi Mark,
>
> So any host language element could have this attribute on it?  What if
> there were multiple host language elements with xf:version and some of
> the version numbers were different?  This could certainly happen if we
> ever get the 'include' type functionality in XForms and we have
> different sections of the form coming from different documents.  And I
> assume xf:model's @version would win if the host-language element's and
> model element's @version differed?  Or is this meant to replace model's
> @version?  I could see them being different values because a 1.0
> processor can't honor the model's @version until it supports ALL of X.Y
> (whatever the value of @version is).  So the version on the
> host-language element could say 1.1 but there be no version on the model
> because someone could write a 1.1-level form using only the 1.1 pieces
> that their specific processor supports. .  This would also be true if
> the form author created some XBL to build up the processor's
> functionality to 1.1 level for things the author wants to use but the
> processor doesn't support, yet.
>
> Having said all of that, I have no problem with the idea, just seems
> that it'll have the same drawbacks as model's @version where the version
> specified in the form may not match what the processor is capable of.
>
> --Aaron
>
> Mark Birbeck wrote:
> >
> > Hello,
> >
> > I'd like to suggest that we have a version attribute that can be used
> > on any element in a host language. This would therefore be a global
> > attribute in the XForms namespace, and might be used as follows:
> >
> >  <html xf:version="1.1">
> >    ...
> >  </html>
> >
> > My feeling is that this attribute is less about enforcing behaviour of
> > processors, and more about providing a clear indication to authors
> > which type of document they are dealing with.
> >
> > For example, if a form contains a submission that uses the new
> > xf:resource attribute or element, it may not be immediately obvious to
> > a new author as they start to learn XForms, that this is not supported
> > in all processors. Rather than having a flurry of emails on one or
> > other list saying that some example doesn't work, I think we should
> > encourage authors to indicate what standard is being used by a form.
> >
> > Regards,
> >
> > Mark
> >
>
>
>
>
>


-- 
  Mark Birbeck, formsPlayer

  mark.birbeck@x-port.net | +44 (0) 20 7689 9232
  http://www.formsPlayer.com | http://internet-apps.blogspot.com

  standards. innovation.

Received on Thursday, 5 April 2007 10:15:45 UTC