What is an alternative to InfoPath for XML editing?
We are look at providing a method for our non-technical users to edit XML and pass it to our existing XML input functionality. I remembered InfoPath saved its data as XML, and took another look at it. It's great the way it allows you to define a form based on an XSD (XML Schema), and then allow the user to edit XML without knowing it is an XML file. The resulting XML validates perfectly due to InfoPath's input constraints.
The one problem is that we cannot assume our user base will have MS InfoPath installed.
Is there another method of auto-generating a form that allows the user to edit XML easily?
You can host the form on to a Sharepoint. InfoPath Forms Services is a server technology built on Microsoft Windows SharePoint Services 3.0 as an ASP.NET version 2.0 application. It enables users to fill out Microsoft Office InfoPath 2007 forms by using a Web browser instead of, or in addition to, the Office InfoPath 2007 client program
Ofcourse there are other way is to create custom form based on the XML in any technology and give out a form for the users
Altova, the guys behind XML Spy, have some kind of automatic input form generator for any given XML schema (and DTDs too iirc).
Two more suggestions (I don't know for what users/environment you are designing):
Use Word 2007 with Content Controls as form editor. The data entered into the Content Controls are stored in a separate XML file inside the DOCX document which is simply a zip archive.
Adobe Forms. Using Adobe Reader users can fill and submit PDF forms. Reader can submit or save the data as XML (with a custom schema).
In contrast to InfoPath both of the above clients are widespread and familiar to many users, but of course your decision will depend on my other factors. So please take this only as two suggestions.
A very customizable way is to provide a WPF UI which databinds to the XML. It shouldn't take a lot of effort to come up with an XML designer in WPF.
Of course this assumes that you have the resources/people to do it.