OK, here's the recipe (could somebody please try out these instructions, to make sure everything works correctly?):
1) Create a "catalog.xml" file in your "common/" directory. Michelle, we should create this file in the common/ directory, so that this step can be eliminated. bash-3.00$ cat catalog.xml <?xml version="1.0"?> <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <public publicId="-//Sun Microsystems//DTD SolBook-XML 3.5//EN" uri="xsolbook.dtd"/> </catalog> Note that the catalog refers to "xsolbook.dtd", and not "solbook.dtd". No need to rename the file!! 2) Create the following file, called "validate" in your "common/" directory. Michelle, I think we should put this file in common/, too. That would eliminate step 2. bash-3.00$ cat validate #!/bin/sh # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # XML_CATALOG_FILES=/home/myusername/docs2/20080215/common/catalog.xml; \ export XML_CATALOG_FILES if xmllint --memory --valid --noout *.book; then echo No validation errors found in *.book . else echo Errors found in *.book . fi 3) Change the XML_CATALOG_FILES= statement in validate to point at the "catalog.xml" file you created in step 1. You only have to do this once. 4) cd to the directory containing the book you want to validate. cd /home/myusername/docs2/20080215/DYNMCTRCGGD 5) Run the validate command. It will validate the .book file (and everything that the .book file includes). bash-3.00$ ../common/validate No validation errors found in DYNMCTRCGGD.book . Mike michelle olson wrote: > Hi Mike, > > OK, any help you can give on the catalogs would be greatly appreciated. > That was my original intent, but the work hasn't been completed because > I have no experience with XML catalogs. > > thanks, > Michelle > > Michael Pogue wrote: >> I've been thinking about that.... >> >> I don't think the best approach is to make N copies (in this case, N = >> 36) of the dtd and entities file. If we do that in the repository, >> they will diverge. It would be better to keep them in one place (like >> "common"), but have the validation script reference them there. >> >> The best way to fix this is probably to use XML catalogs. It looks >> like the .dtd and sun-iso files are referenced via PUBLIC entities, so >> this should work. >> >> Mike >> >> michelle olson wrote: >>> >>> >>> Michael Pogue wrote: >>>> That's better, but it still generates errors, because the entities >>>> are actually defined elsewhere. It turns out that copying >>>> "common/sun-iso-map.xml" to the DYNMCTRCGGD directory does make it >>>> work the rest of the way! >>> OK, cool, I'm glad you've made progress, I eagerly await a push >>> notification! :) >>>> >>>> I verified that "xmllint --valid --noout DYNMCTRCGGD.book" complains >>>> (correctly) when I insert validity errors into the .book file, the >>>> sun-iso-map.xml file, and into the chapter1.xml file. So, I think >>>> we have a validation process that works now. >>>> >>>> We should make it easier to use, though! >>> OK, so I'll put a copy of the correctly named dtd and the sun-iso-map >>> files into each book directory in the next update of the >>> consolidation. Then, we should update the instructions to make >>> explicit that xmllint should be run on the book file. What else can >>> we do to make it easier? >>> >>> thanks, >>> Michelle >>>> >>>> Mike >>>> >>>> michelle olson wrote: >>>> ... >>>>> Thanks for continuing to work on this. I found a couple things that >>>>> might also help Rainer. So, try doing the following: >>>>> >>>>> -copy the xsolbook.dtd from the 20080215/common directory to your >>>>> DYNMCTRCGGD directory. >>>>> -rename the xsolbook.dtd file to solbook.dtd. >>>>> -issue the xmllint --valid --noout DYNMCTRCGGD.book >>>>> >>>> ...
