We have been using XML::Validate::Schema for about a year to validate and convert to Perl structures XML documents in a REST-like server. It's worked all this time without any problems and now we're using it in two different new projects. Although it's a bit tough at the beginning, it's definitely worth the time invested. Thanks Mark for this great module!
This module definitely brings some fun to XML processing. Throw in a schema to compile and the XML of some API and get fine memory structures - and backwards. Works very fine and stable with an API of moderate complexity (cinema ticketing) I had to face a couple of months ago.
I have used XML::Schema before, but directly feeding a schema and getting a parser (precisely, a reader) out - as in XML::Compile::Schema got the work faster done. In fact, this module saved me from the very (boring) details of schemas. Thank you!
Installation on windows boxes can be tricky as like any modules that depend on libXML.
I took over a project where SOAP::Lite had been used to implement WSDL with SOAP, and quickly hit a few defects. One was important and had been reported by someone else a while back without resolution. The service were passed XML documents, and these were generated by marking up XML sample templates
The state of SOAP::Lite lead me to evaluate alternatives, and I found XML::Compile impressive both in terms of quality and in effectiveness in generating XML documents. It may not be obvious at first, but is a really powerful model to store the data in a hash, and then map that to the XML document.
There is a bit of learning curve to use this package, and what I missed early one was a "here is how to use this thing". The examples in the man helped that way, and the unit tests have been a useful resource. I also looked at the presentation on the author's web site as well for inspiration even if that may no longer reflect current usage.
Mark Overmeer has done a great job on this package, and has been helpful and quick in resolving the issues we have hit. I was particular impressed how he forwarded one of our issue to another the author of another package.
We use XML::Compile in 3 production interfaces now and have been very happy with it.
At this point, I am still evaluating the utility of the XML::Compile package for my needs. Nevertheless, the package is powerful and well designed.
As a test case, I selected the Form 941 schema from the IRS. Currently I am unable to successfully use the tool with this schema, although the package author claims that he experiences no difficulties. We are currently diagnosing the issue, and will hopefully achieve resolution shortly.
Because the IRS schema did not work correctly on my system, I decided to use the XML-schema schema as a secondary test case. Again, there are difficulties. Apparently the schema is recursive, which may be beyond some of the current implementation constraints of the package. Again, the author and I are working to resolve this issue.
I rate the module as a 4+ overall, even though I am still working to determine if it suits my needs.