Mr. XML Publisher provides a Java web-app interface to server-side XML processing capabilities and exposes those capabilities as formatting services.

XML processing has traditionally been performed using command line tools. The use of those tools is the most powerful way to process XML, and that is unlikely to change soon. The trick has always been how to expose the power of those tools to end users over a networked server. From within a web container, Mr. XML Publisher does exactly that, and it makes doing so easy by providing a rich set of administrative controls and data access to nearly every native XML database or relational database on the market.

When you use any XML publishing system, you make possible the enforcement of consistent formatting and the removal of formatting duties from your writers' responsibilities. Depending on the system's data access mechanisms, XML publishing systems can also make it easy to re-use content.

When you use Mr. XML Publisher, you centralize on a server the executables and config files that might otherwise exist on the desktop machines of many writers. Without a centralized server, the individual efforts required for installation, configuration, and any necessary synchronization can be very expensive.

You can try the Mr. XML Publisher for DocBook demo at http://swhitlat.com/XML_Publisher. The demo allows optional use of XSL customization layers and all its data pullers are activated.

Features

Mr. XML Publisher imposes almost no limits of any kind. It will access whatever libraries and run whatever executables it's instructed to access or run, and it imposes no per-user or per-CPU licensing restrictions.

End users select a format and upload an XML project. Mr. XML Publisher accepts the uploaded project and runs an XML processing tool chain that an administrator has specified for the format. Mr. XML Publisher runs each tool-chain command as an external subprocess managed by a Java virtual machine and then returns the formatted output.

Mr. XML Publisher is designed to work with any DTD, schema, or XSL, but it comes "out-of-the-box" ready to process DocBook XML using DocBook XSL. Mr. XML Publisher will work "out-of-the-box" only if you already have a DocBook XML publishing system and a web container in place and working on the target server. Therefore, with each license I provide up to fifteen hours of consultation, configuration, and custom programming to get your Mr. XML Publisher installation running the way you want it to run (cumulative limit of fifteen hours, by phone, email, and remote login). Note: I have not run Mr. XML Publisher with any XML/XSL combination other than DocBook XML formatted with DocBook XSL. If you have your own custom DTD/schema and XSL, Mr. XML Publisher can be made to work for you too. But it may take me more than fifteen hours to make that happen and I will need to charge you for the extra time.

Source code files for all JSP pages, the Java applet, JavaScript, HTML, and CSS are provided with a license. You may change them in any way you like, including re-naming "Mr. XML Publisher" to "Mrs. XML Publisher" or anything else. Customers are encouraged to use their local programming talent for modifications to the user interface. Source code for servlets and other classes is not provided under normal licensing terms but may be negotiated for sites with multiple licenses.

Any DTD, Schema, or XSL

Mr. XML Publisher imposes no limitations on what DTD, schema, or XSL is used. It can use XSL uploaded by users, pull the XSL from a database/repository, or use XSL residing on a server disk.

Any Transformer

Use any XSL transformer (xsltproc, Xalan, Saxon, etc.) to create HTML, FO, PostScript, PDF, CHM, or any other format for which you have XSL. Note, you will need the appropriate XSL to perform the transform. Mr. XML Publisher does not provide any XSL.

Data Access

As part of the formatting process, Mr. XML Publisher can include XML or textual data pulled from a native XML or relational database server. The data pulled can then be included in an XML project via <include> elements in the project's XML.

Mr. XML Publisher provides custom data pullers that have been tested with:

For each server type listed above, a custom data puller takes full advantage of any XML-specific features, such as running XQuery queries. To pull data from an XML or relational database not listed, I can probably write a custom puller if the target database provides a Java API.

All custom data pullers are available with every Mr. XML Publisher installation. There are no required <ejb-ref>, <ejb-local-ref>, or <env-entry> elements to configure in Mr. XML Publisher's web.xml file. Mr. XML Publisher's data pullers operate independently of any JNDI mechanisms you have set up for your container or JEE server. Activating the data pullers requires no configuration related to the container or JEE app server in which Mr. XML Publisher runs.

When end users need to include pulled data in a project, they include a special file named "IncludeMap.xml" that specifies exactly what data needs to be pulled and what filenames are needed to satisfy the project's <include> elements. Mr. XML Publisher parses the project's IncludeMap.xml file and takes instructions from the file's content. Those instructions include a connection string and an SQL/XQuery string. As you plan your Mr. XML Publisher deployment, you may want to plan for providing assistance to those writers who will need help constructing connection and SQL/XQuery strings.

Automatic Connection Pooling

Connection pooling works automatically. There is no need for special integration with your container or JEE server, and there is no special configuration required in Mr. XML Publisher's web.xml. Mr. XML Publisher uses the Apache Jakarta DBCP libraries internally to automatically provide connection pooling for the following:

Several of the supported native XML databases provide their own connection pooling, and Mr. XML Publisher takes advantage of those facilities whenever available. For example, the custom data puller for Tamino XML Server provides connection pooling through Tamino's proprietary connection pooling libraries.

Rich Administrative Controls

Administrators control Mr. XML Publisher by editing its web.xml file. Every Java web app has a web.xml file, and that file is called the "deployment descriptor." Most administration of Mr. XML Publisher is performed via the deployment descriptor's <context-param> elements.

Using <context-param> elements in the deployment descriptor, administrators can specify:

Requirements

Automated publishing of XML in a client-server environment requires a bit more software, hardware, and administrative expertise than would be required if users were to publish XML from desktop machines.

Software

Mr. XML Publisher is currently developed on Linux and Windows using Tomcat 5.5/6.0. It will run under any operating system that hosts an appropriate servlet container. Mr. XML Publisher requires a servlet container compliant with the 2.4 specification (or higher). It does not require a full JEE application server; nonetheless, Mr. XML Publisher has been successfully tested on the following JEE application servers:

Mr. XML Publisher depends on several open-source software packages, all of which are governed by the terms of the Apache Software Foundation License or the GNU Lesser General Public License.

Hardware

Mr. XML Publisher simultaneously runs multiple processes, and it runs multiple threads within many of those processes. Thus, it takes full advantage of all your server's CPUs, CPU cores, and hyper-threading capabilities.

Mr. XML Publisher will run on a desktop class machine, or even a notebook, but it is not designed for those machines. Nor is it designed to run in a distributed environment. I have never even attempted to run Mr. XML Publisher in a distributed environment. Mr. XML Publisher is designed to run on a single server with multiple CPUs. If it is expected to service continuous requests, that server should be a dedicated server.

At the low end, for example, I suggest a dual Xeon machine running hyper-threaded CPUs at 2.4GHz, with 2GB of RAM. Mr. XML Publisher was developed on a dual 1.7GHz Xeon machine with 2GB of RAM. The Mr. XML Publisher for DocBook demo at http://swhitlat.com/XML_Publisher runs on a dual 2.4GHz Xeon machine with hyper-threading and 4GB of RAM.

At the high end, perhaps the server would use multiple quad-core CPUs.

Administrative Expertise

All Java web apps require some degree of administration. Mr. XML Publisher needs to be administered by someone familiar with the following:

Support

With the purchase of each license, I include one year of unlimited technical support by email. Thereafter, unlimited technical support by email costs $200 per year. Technical support includes free access to all bug fixes and component upgrades. If I become unable to provide technical support (disability, death, etc.) and no legal entity has assumed the obligation, all source code will be provided to all customers with current support contracts.

Suggestions

If reasonably applicable to your publishing environment, plan for your initial Mr. XML Publisher deployment to be similar to the Mr. XML Publisher for DocBook demo at: http://swhitlat.com/XML_Publisher. If you want to use a different or an additional DTD/schema and XSL combination, I can help you with the decision and I can probably modify Mr. XML Publisher to accommodate any necessary changes.

I designed Mr. XML Publisher so that it could accommodate any DTD/schema and XSL combination, requiring changes only to the files for which source code is provided. But that design has not been thoroughly tested. A Mr. XML Publisher license does include fifteen free hours of consultation and custom programming and I'm willing to use that time to make Mr. XML Publisher use whatever DTD/schema and XSL you have. However, I do not promise that I can make Mr. XML Publisher work with your DTD/schema and XSL combination within the free fifteen hours. Custom programming beyond the fifteen hours included with the license will cost extra.

I suggest that you use your local programming talent for most GUI modifications, especially for those that are mainly visual. You will have all the source code necessary to do that. If you save the fifteen hours of consultation and custom programming that I provide, I can use that time for any necessary modifications to the servlets and class files. And whether you are modifying the GUI or developing the tool-chain commands for your formats, use a web container that makes the job easy. I recommend Tomcat. Later, if desired, you can move Mr. XML Publisher to your production environment and onto a JEE server.

The default Mr. XML Publisher GUI operates the same as the Mr. XML Publisher for DocBook demo at http://swhitlat.com/XML_Publisher, but it looks a bit different because some of the visual elements in the demo are not appropriate for customer installations. You can view the way Mr. XML Publisher would look for you "out-of-the-box" here.

Price and Licensing Terms

The price is $1750 in US dollars. Included in this price is up to fifteen hours of custom Java programming and/or consultation via phone, email, or remote login. Additional custom programming costs $75/hour. For example, it would probably require many hours to get Mr. XML Publisher to take full advantage of the resources in a distributed environment.

A single Mr. XML Publisher license entitles you to run Mr. XML Publisher on a single machine. There is no limit to the number of CPUs that machine can have.

Licensing terms include the following restrictions:

I accept payment only by check or money order. I do not accept credit card payments.


     Steve Whitlatch
     P.O. Box 32841
     Phoenix, Arizona
     85064

     602-956-2966

     swhitlat@getnet.net

You are welcome to contact me to discuss deployment of Mr. XML Publisher.