###############################################################################
# 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
###############################################################################
FEATURE_SECURE_PROCESSING=http://saxon.sf.net/feature/allow-external-functions
FEATURE_SECURE_PROCESSING.TYPE=boolean
FEATURE_SECURE_PROCESSING.DESC=true instructs the implementation to process XML securely. This may set limits on XML constructs to avoid conditions such as denial of service attacks.\n\
false instructs the implementation to process XML acording the letter of the XML specifications ingoring security issues such as limits on XML constructs to avoid conditions such as denial of service attacks. 