###########################################################################
# reserved comment block
# DO NOT REMOVE OR ALTER!
###########################################################################
###########################################################################
# Copyright 2003-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##########################################################################
#
# $Id: output_xml.properties,v 1.2.4.1 2005/09/15 08:15:33 suresh_emailid Exp $
#
# Specify defaults when method="xml".  These defaults serve as a base for 
# other defaults, such as output_html and output_text.
#

# XSLT properties do not need namespace qualification.
method=xml
version=1.0
encoding=UTF-8
indent=no
omit-xml-declaration=no
standalone=no
media-type=text/xml

# Xalan-specific output properties.  These can be overridden in the stylesheet 
# assigning a xalan namespace.  For example:
# <xsl:stylesheet version="1.0"
#          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
#          xmlns:xalan="http://xml.apache.org/xalan">
#  <xsl:output method="html" encoding="UTF-8"
#              xalan:content-handler="MyContentHandler"/>
#  ...
# Note that the colon after the protocol needs to be escaped.
{http\u003a//xml.apache.org/xalan}indent-amount=0
{http\u003a//xml.apache.org/xalan}content-handler=com.sun.org.apache.xml.internal.serializer.ToXMLStream
{http\u003a//xml.apache.org/xalan}entities=com/sun/org/apache/xml/internal/serializer/XMLEntities

