www.pudn.com > RakNet-2.52.zip > xmlproc.sh


#!/bin/bash 
# see the README in this directory for usage etc. 
 
usage() { 
  echo ''; 
  echo 'Usage: xmlproc.sh -[option] '; 
  echo 'Specify a target from:'; 
  echo '-v      verify xml file conforms to dtd'; 
  echo '-html   output in html format (single file)'; 
  echo '-ps     output in postscript format'; 
  echo '-pdf    output in pdf format'; 
  exit; 
} 
 
if test $# -ne 2; then 
  usage 
fi 
# assign the variable for the output type 
action=$1; shift 
# assign the output filename 
xmlfile=$1; shift 
# and check user input it correct 
if !(test -f $xmlfile); then 
  echo "No such file: $xmlfile"; 
  exit; 
fi 
# some other stuff we will use 
OUT=output 
xsl_fo=bz-fo.xsl 
xsl_html=bz-html.xsl 
 
basename=$xmlfile 
basename=${basename//'.xml'/''} 
 
fofile="${basename}.fo" 
htmlfile="${basename}.html" 
pdffile="${basename}.pdf" 
psfile="${basename}.ps" 
xmlfmtfile="${basename}.fmt" 
 
# first process the xmlfile with CDATA tags 
./format.pl $xmlfile $xmlfmtfile 
# so the shell knows where the catalogs live 
export XML_CATALOG_FILES=/etc/xml/catalog 
 
# post-processing tidy up 
cleanup() { 
  echo "Cleaning up: # $@"  
  while [ $# != 0 ] 
  do 
    arg=$1; shift; 
    echo "  deleting $arg"; 
    rm $arg 
  done 
} 
 
case $action in 
  -v) 
   flags='--noout --xinclude --noblanks --postvalid' 
   dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd' 
   xmllint $flags $dtd $xmlfmtfile 2> $OUT  
   egrep 'error' $OUT  
   rm $OUT 
  ;; 
 
  -html) 
   echo "Creating $htmlfile ..." 
   xsltproc --nonet --xinclude  -o $htmlfile $xsl_html $xmlfmtfile 
   cleanup $xmlfmtfile 
  ;; 
 
  -pdf) 
   echo "Creating $pdffile ..." 
   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile 
   pdfxmltex $fofile >$OUT $OUT $OUT $OUT $OUT $OUT $OUT $OUT $OUT