Ah ha, I've been playing with microsoft's infopath beta.
So whats the crack?
Well its a form based maker for filling in xml documents. It uses a datasource as the start of the document and you can then build forms to fill in that datasource.
In english – it takes a schema, can be database or xml schema and creates forms for each element in the schema. Sounds good eh? Yes and it actually isnt that bad, it does what it says and within 1 hour I had a form which would fill in a courselet for me.
First problem
it hates my schemas to death. If you import or include a schema in or apply min or max to a choice it goes nuts. Which means you end up writing a schema just for infopath or simplifying your schema to the point it becomes non useable.
My orginal schema for courselets was fine, but the one for courselet 2 which included simple xlink with its namespace and a generic xhtml schema. Threw a error each time, i even tried to fix the errors and ended up making all my current xml documents un valid.
Next problem
Even if like me you make a custom schema just for infopath, and create the forms.
You have to own a copy of Infopath to fill it in! I thought you could open it in word or even ie6 and fill in the forms. No it seems like you must own infopath to save the final xml document. That sucks big time.
Plus points
It allows you to write validation in javascript or vbscript. It also understands xml schema and points out required and optional elements. I havent really tested the attributes too much because all my new schemas dont work in infopath. It also reckonmends how you should layout certain forms based on there schema type. So it will not create a freeflowing block of text for intergers. Or a drop down box for free flowing text.
It deals with repeatable elements better than I actually thought, everytime you press return it will create a new paragraph in my case. You can also change that to shift return or anything else you want.
Its also creates accessable forms using access key and tabs points, which is useful for the future. i have yet to try the xsd:any element and serious xhtml style schemas which allows the author to play with the format. You could allow them to put in element of there own using the greater than less than thing but you shouldnt have to. I would also like the ability to split forms up, so one form could be for dublin core metadata and the other for the xml content. It would then join them together using xinclude or something like that.
because even a form for a courselet looks big and most of the metadata is already filled in. yes you can do prefilled and subs. It will take defualts into consideration too.
So I would say its good but great for simple structured documents where the author doesnt have the freedom do what they like. For creative input, basicly forget it, its far too restrictive. But lets not forget its a beta and things will hopefully change.