###############################################################################
# Copyright (c) 2007 Chase Technology Ltd - http://www.chasetechnology.co.uk
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#    Doug Satchwell (Chase Technology Ltd) - initial API and implementation
###############################################################################
INDENT_SPACES={http://saxon.sf.net/}indent-spaces
INDENT_SPACES.DESC=(integer value).Defines the number of spaces used for indentation of output

UNDECLARE_NAMESPACES={http://saxon.sf.net/}undeclare-namespaces
UNDECLARE_NAMESPACES.DESC=include-content-type = "yes" | "no". This attribute is defined in XSLT 2.0. Indicates XML 1.1 namespace declarations are to be output.

CHARACTER_REPRESENTATION={http://saxon.sf.net/}character-representation
CHARACTER_REPRESENTATION.DESC=(rep1[;rep2]). Indicates the preferred way of representing non-ASCII characters in HTML and XML output. rep1 is for characters in the range 128-256, rep2 for those above 256.

NEXT_IN_CHAIN={http://saxon.sf.net/}next-in-chain
NEXT_IN_CHAIN.DESC=(uri). Indicates that the output is to be piped into another XSLT stylesheet to perform another transformation. The auxiliary property NEXT_IN_CHAIN_BASE_URI records the base URI of the stylesheet element where this attribute was found.

TYPE_INFORMATION={http://saxon.sf.net/}type-information
TYPE_INFORMATION.DESC=(none|preserve|strict|lax). Indicates the value of the type-information attribute: "none", "preserve", "strict", "lax"

REQUIRE_WELL_FORMED={http://saxon.sf.net/}require-well-formed
REQUIRE_WELL_FORMED.DESC=(yes|no). Indicates whether a user-supplied ContentHandler requires the stream of SAX events to be well-formed (that is, to have a single element node and no text nodes as children of the root). The default is "no".