--- xmlto-0.0.18-orig/xmlto.in 2005-10-25 12:55:51.000000000 -0500 +++ xmlto-0.0.18/xmlto.in 2005-10-25 13:41:46.000000000 -0500 @@ -31,6 +31,7 @@ usage () { cat << EOF usage: @PACKAGE@ [OPTION]... FORMAT XML OPTIONs are: + -X xslt XSLT processor to use (xsltproc or saxon) -v verbose output (-vv for very verbose) -x stylesheet use the specified stylesheet instead of choosing one -m fragment use the XSL fragment to customize the stylesheet @@ -60,6 +61,17 @@ EOF fi } +# A couple of helper functions to provide a common interface to the +# XSLT processors we know. + +xslt.xsltproc () { + xsltproc --xinclude --nonet -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" +} + +xslt.saxon () { + saxon -o "$XSLT_PROCESSED" "$INPUT_FILE" "$STYLESHEET" +} + # Allow FORMAT_DIR and XSL_DIR to be over-ridden, so that we can be # run from the build directory. prefix=@prefix@ @@ -68,6 +80,9 @@ prefix=@prefix@ # This can be over-ridden, but really we should detect the source # document type without needing any help. : ${SOURCE_FORMAT=docbook} +# Specify the default XSLT processor +: ${XSLT_PROCESSOR=xsltproc} +export XSLT_PROCESSOR # Get absolute pathnames for FORMAT_DIR, XSL_DIR, and OUTPUT_DIR. WD="$(pwd)" @@ -146,18 +161,12 @@ fi VERBOSE=0 export VERBOSE -# Disable network entities -XSLTOPTS="$XSLTOPTS --nonet" - -# Enable XInclude -XSLTOPTS="$XSLTOPTS --xinclude" - SKIP_VALIDATION=0 # Process any options ARGS=$(${GETOPT} \ --longoptions=help,version,extensions,searchpath:,skip-validation \ - -n xmlto -- x:m:o:p:v "$@") + -n xmlto -- X:x:m:o:p:v "$@") [ $? != 0 ] && { usage; exit 1; } eval set -- "$ARGS" while [ "$#" -gt "0" ]; do @@ -170,6 +179,18 @@ while [ "$#" -gt "0" ]; do version exit 0 ;; + -X) + case "$2" in + xsltproc | saxon ) + XSLT_PROCESSOR="${2}" + ;; + * ) + echo "Unknown XSLT processor ($2) not 'xsltproc' or 'saxon'" + exit 1 + ;; + esac + shift 2 + ;; -x) case "$2" in /*) STYLESHEET="$2" ;; @@ -272,9 +293,9 @@ then exit 1 fi +[ "$VERBOSE" -ge 1 ] && echo >&2 "XSLT processor: ${XSLT_PROCESSOR}" + # Ask the format script what stylesheet to use. -XSLT_PROCESSOR=xsltproc # We only know about xsltproc right now. -export XSLT_PROCESSOR export XSL_DIR if [ -z "$STYLESHEET" ] then @@ -354,13 +375,13 @@ else fi [ "$VERBOSE" -ge 1 ] && \ - echo -e >&2 "xsltproc${XSLTOPTS} ${XSLTSHOWPATH}\\\\\n -o "$XSLT_PROCESSED" \\\\\n $STYLESHEET \\\\\n $INPUT_FILE" + echo -e >&2 "xslt.${XSLT_PROCESSOR} ${XSLTOPTS} ${XSLTSHOWPATH}\\\\\n -o "$XSLT_PROCESSED" \\\\\n $STYLESHEET \\\\\n $INPUT_FILE" if [ -z "$XSLTWITHPATH" ] then - xsltproc $XSLTOPTS -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" + xslt.${XSLT_PROCESSOR} $XSLTOPTS -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" else - xsltproc $XSLTOPTS $XSLTWITHPATH "$XSLTPATH" -o "$XSLT_PROCESSED" \ + xslt.${XSLT_PROCESSOR} $XSLTOPTS $XSLTWITHPATH "$XSLTPATH" -o "$XSLT_PROCESSED" \ "$STYLESHEET" "$INPUT_FILE" fi @@ -369,7 +390,7 @@ else XSLTOPTS="${XSLTOPTS} --catalogs" [ "$VERBOSE" -ge 1 ] && \ echo >&2 "No XML Catalogs? Trying again with --catalogs.." - xsltproc $XSLTOPTS -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" + xslt.${XSLT_PROCESSOR} $XSLTOPTS -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" fi if [ $? -gt 0 ]