Home Forums General XMetaL Discussion Checkin and checkout Reply To: Checkin and checkout

Derek Read

Reply to: Checkin and checkout

Your own code needs to handle this. Some connectors are written to expect a schema (DTD or XSD) to be on the user's local machine already (often deployed inside the XMetaL Author installation — see slideshow linked to below), however, most are written to deploy the schema to the user's machine together with the XML file and the rest of the “customization” files that aid an author to write to that particular schema. You will already have code to place the XML file the user is checking out onto their local machine (that is your own code and entirely dependent on the capabilities of your CMS). Similar code would handle schema.

If you place the schema in the same location as the XML file (or nearby) then you have the option to use a relative path to that file in the XML file's DOCTYPE declaration SYSTEM id value or the schemaLocation / noNamespaceSchemaLocation (for XSD).

If you are using a DTD you may specify a PUBLIC id value instead. In this case you will either need to deploy a catalog file to the same location or place a copy in the Rules folder (before XMetaL Author launches). This file will include PUBLIC id values mapped to SYSTEM id values. There is more to it than this (the catalog filename should match the XML filename if in the same folder) but I would avoid this if your XML files have or can be made to have a SYSTEM id value as that is the easiest approach.

You may also control both PUBLIC and SYSTEM id values using script. See the Programmer's Guide for more information on the events and APIs that let you do that.

You may also wish to read this document: http://www.slideshare.net/XMetaL/deploying-schemas-and-xmetal-customization-files

Note that in addition to just providing the schema, a good authoring experience in XMetaL Author usually includes a “customization”: minimum of a (human-designed) CSS and CTM file to control the styling of, and interaction with, a particular document type. The software will automatically generate these files (in some cases the software can make good guesses based on element and attribute names and their relationships) but in most cases what is generated will be inferior to a properly designed set of the same files created by a human with an understanding of the schema and how elements and attributes should be logically displayed (as a paragraph, image, table, list, etc).  Whether this is important or not depends primarily on how much of the complexity of working with a particular schema you wish to hide from your authors, their level of experience in working with XML and a particular schema and also how much you simply want to make their lives easier. Additional files (an MCR file in particular) allows you to automate some tasks or otherwise help users do things that cannot be done through styling and UI changes alone.

So, 10,000 DTDs? Wow. Perhaps there is some overlap and you can somehow automate the generation of some nicely designed CSS and CTM files using pre-written sections or something. If not, I suspect the authors will be working with a very basic editing experience.