cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Quinn <>
Subject Re: TagLib Confusion
Date Mon, 29 May 2000 11:32:28 GMT
>Jeremy Quinn wrote:
>> I am trying to develop a proposal for a generic Form Handing TagLib.


>> My understanding is that it is the order of the declarations:
>> which defines what order the TagLibs are "expressed", not the nesting.
>Yes, it's the namespace declaration order (or the order
>of <?xml-logicsheet?> directives) that governs the order
>in which logisheets are applied. It's declaration order,
>rather than nesting (which should never been necessary,
>see below).


>Now, what do we understand by nesting? The inclusion of one
>stylesheet into another (i.e., <xsl:import>, <xsl:include>)?
>The use of external entities (&include;)?


>Please, describe your form logicsheet design in more depth,
>especially in relation with its multiple IO strategy support.
>This sounds very interestring...

Dear Ricardo,

Thank you for your speedy reply.

The Form TagLib is at a very early stage of design. There are so many
different ways it could go at the moment .... I am using this project to
learn how to do TagLibs, I wish I had chosen a simpler project for my first
[search for "xml:form" in the CocoonDev archives]

The basic idea is to design a TagLib that allows you to map a data-source
to a form.

It needs to cover issues such as :

	mapping between incoming form fields and XML elements	(glue)
	checking incoming form field values										(constraints)
	transforming incoming and outgoing form field values	(transforms)
	storage and retrieval from data sources								(stores)
	post-processing																				(actions)

I was beginning to define a markup language for doing this, then someone
suggested using XSchema instead. Apart from the fact that I am almost
completely clueless about XSchema (except that it sounds like the best way
to go) it would probably completely change the way we do things. (Hence no
examples of the structure we have defined .....)

The issue about nesting is this:

I had planned a top-level tag called <form:handler> that contains all of
the information required to handle a particular bit of form handling for a
particular DTD. There could be several <form:handler>s in each XML file,
eg. some for editing, some for adding new objects etc. The choice of
<form:handler> is made by a path parameter or HTTP Method.

Each <form:handler> contains glue, constraint, store etc. elements.

The store element then contains whatever Tags are required to use the
storage TagLib you want, eg. SQL, FileI/O, Email, LDAP, RMI, XML/RPC, etc.

But I realise this just is not going to work, TagLibs are not "expressed"
according to their position, but the order of their xmlns declaration.

In my TagLib the processing order would need to be contextually defined.

ie. I am Editing existing data ....
	Get Form (a <form:handler>)
		Read Store
		Translate Store structure to Field structure according to Glue
		Transform Form structure to HTML via XSL
	Post Form (another <form:handler>)
		Translate Field data to Store structure
		Verify Field data according to Constraints
		Write Store
		Build response and transform to HTML

So, I am hoping to have one TagLib use another for I/O. My TagLib should
not need to know how to do I/O itself, right? If, lets say, I am using the
SQLTagLib, there would be several different functional groups of SQL Tags
in the file, only one of them relevant to the current form handling process.

I am beginning to think with is not possible, because there is no way of
selecting which one would be expressed, and when.

I'm stuck !

I am sorry, but the confused and rambling nature of this message,
accurately reflects the confusion I am in regarding TagLibs. So few people
on this list actually understand this stuff .....

Thanks for any help

regards Jeremy


   Jeremy Quinn                                           Karma Divers
                                                       webSpace Design
                                            HyperMedia Research Centre

   <>     		 <>
    <phone:+44.[0].20.7737.6831>        <>

View raw message