W3C home > Mailing lists > Public > www-forms@w3.org > December 2003

xforms for inhomogenous collections

From: Oliver Scholz <alkibiades@gmx.de>
Date: Tue, 16 Dec 2003 11:12:06 +0100
To: www-forms@w3.org
Message-ID: <ubrq9ax6x.fsf@ID-87814.user.dfncis.de>

I plan to implement an application (for GNU Emacs) which can be used
to edit XML files containing record sets in forms.  Please note that
this is not meant as a web application but as an alternative way to
edit XML files on the local disk.

Typically a user would point this application to two files, the XML
file containing the data and a configuration file, specific to this
particular XML, which specifies the forms and how they should update
the data. If you are familiar with GNU Emacs: this is basically meant
to fill the functionality of forms.el for XML files.

Obviously it seems like a good choice to base that on
XForms. Therefore I am considering to implement a subset of XForms 1.0
in Emacs Lisp. However, there are a few things that I do not yet
understand.

1. Record sets may be inhomogenous.

An made up example for a data file:

<record-set>
  <record type="author">
    <name>Rudyard Kipling</name>
    <writings>
      <book>The Jungle Book</book>
      <series>Puck</series>
    </writings>
  </record>
  <record type="book">
    <title>The Jungle Books</title>
    <author>Rudyard Kipling</author>
  </record>
  <record type="protagonist">
    <name>Mowgli</name>
    <book>The Jungle Books</book>
  </record>
</record-set>

Besides the data being inhomogenous, it should even be possible to let
the forms have a different layout based on certain properties, here
e.g. the type attribute of the `record' element.

The standard specifies explicitely that the `xforms:repeat' element
is meant to deal with homogenous data only.  My first thought was
that I could deal with this by a `switch' element within a `repeat'
until I realised that the values of the `selected' attribute of the
`case' element is *not* an XPath predicate. So I am at lost. Am I
missing something or does the standard not provide anything for
inhomogenous collections?


2. Specifying pages

I envision that it should be possible to optionally (!) display only
one record at a time on the rendering canvas with buttons to switch
forward to the next or backward to the last record or with an input
field to switch to any arbitrary record. I imagine this would be
something like a `repeat' element with a special attribute.

I can't see anything in the standard catering for this. That does
probably mean that it is not there?


Am I missing something? Or is XForms not meant for application areas
like this one? Are there better ways to get in effect what I want than
the ways I have been looking for?

I would not mind to implement extensions, if necessary.  The
alternative to XForms would be to implement my own configuration
language and I do not expect that those configuration files would
be of any use outside of my application.  So are there any working
drafts for XForms discussing or suggesting solutions for any of the
above?  If not, any recommendations on this?


    Oliver
-- 
Oliver Scholz               26 Frimaire an 212 de la Révolution
Taunusstr. 25               Liberté, Egalité, Fraternité!
60329 Frankfurt a. M.       http://www.jungdemokratenhessen.de
Tel. (069) 97 40 99 42      http://www.jdjl.org
Received on Tuesday, 16 December 2003 05:18:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 10 March 2012 06:21:56 GMT