#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

# Properties file used by NekoHTMLGenerator, NekoHTMLTransformer.
# List compiled based on NekoHTML 0.9.5, see also:
#     http://people.apache.org/~andyc/neko/doc/html/settings.html

# values below are commented out as they are the defaults anyway

#http\://xml.org/sax/features/namespaces=true
#http\://cyberneko.org/html/features/balance-tags=true
#http\://cyberneko.org/html/features/override-doctype=false
#http\://cyberneko.org/html/features/insert-doctype=false
#http\://cyberneko.org/html/features/override-namespaces=false
#http\://cyberneko.org/html/features/insert-namespaces=false
#http\://cyberneko.org/html/features/balance-tags/ignore-outside-content=false
#http\://cyberneko.org/html/features/balance-tags/document-fragment=false
#http\://cyberneko.org/html/features/scanner/cdata-sections=false
#http\://apache.org/xml/features/scanner/notify-char-refs=false
#http\://apache.org/xml/features/scanner/notify-builtin-refs=false
#http\://cyberneko.org/html/features/scanner/notify-builtin-refs=false
#http\://cyberneko.org/html/features/scanner/fix-mswindows-refs=false
#http\://cyberneko.org/html/features/scanner/ignore-specified-charset=false
#http\://cyberneko.org/html/features/scanner/script/strip-comment-delims=false
#http\://cyberneko.org/html/features/scanner/script/strip-cdata-delims=false
#http\://cyberneko.org/html/features/scanner/style/strip-comment-delims=false
#http\://cyberneko.org/html/features/scanner/style/strip-cdata-delims=false
#http\://cyberneko.org/html/features/augmentations=false
#http\://cyberneko.org/html/features/report-errors=false
#http\://cyberneko.org/html/properties/default-encoding=Windows-1252
# NB Neko default for names/elems is "upper", but generator/transformer override this
#http\://cyberneko.org/html/properties/names/elems=lower
#http\://cyberneko.org/html/properties/names/attrs=lower
#http\://cyberneko.org/html/properties/doctype/pubid=-//W3C//DTD HTML 4.01 Transitional//EN
#http\://cyberneko.org/html/properties/doctype/sysid=http://www.w3.org/TR/html4/loose.dtd
#http\://cyberneko.org/html/properties/namespaces-uri=http://www.w3.org/1999/xhtml
