/*
 * 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.
 */
package org.apache.commons.configuration.builder;

import javax.xml.parsers.DocumentBuilder;

import org.xml.sax.EntityResolver;

/**
 * <p>Definition of a parameters interface for XML configurations.</p>
 * <p>The {@code XMLConfiguration} class defines a bunch of additional properties
 * related to XML processing.</p>
 *
 * @version $Id$
 * @since 2.0
 * @param <T> the type of the result of all set methods for method chaining
 */
public interface XMLBuilderProperties<T>
{
    /**
     * Allows setting the {@code DocumentBuilder} for parsing an XML document.
     * This is the most flexible way of customizing XML processing.
     * @param docBuilder the {@code DocumentBuilder} to use
     * @return a reference to this object for method chaining
     */
    T setDocumentBuilder(DocumentBuilder docBuilder);

    /**
     * Allows setting the {@code EntityResolver} which maps entity references
     * during XML parsing.
     * @param resolver the {@code EntityResolver} to use
     * @return a reference to this object for method chaining
     */
    T setEntityResolver(EntityResolver resolver);

    /**
     * Sets the public ID of the DOCTYPE declaration.
     * @param pubID the public ID
     * @return a reference to this object for method chaining
     */
    T setPublicID(String pubID);

    /**
     * Sets the system ID of the DOCTYPE declaration.
     * @param sysID the system ID
     * @return a reference to this object for method chaining
     */
    T setSystemID(String sysID);

    /**
     * Sets a flag whether schema/DTD validation should be performed.
     * @param f the validation flag
     * @return a reference to this object for method chaining
     */
    T setValidating(boolean f);

    /**
     * Sets the value of the schemaValidation flag. This flag determines whether
     * DTD or Schema validation should be used.
     * @param f the flag value, <b>true</b> for schema validation, <b>false</b> for DTD validation
     * @return a reference to this object for method chaining
     */
    T setSchemaValidation(boolean f);
}

@@ -935,16 +935,20 @@
 *%0A * %3Cp%3E
+%0A * 
 Definiti
@@ -999,16 +999,20 @@
 rations.
+%0A * 
 %3C/p%3E%0A * 
@@ -1014,16 +1014,20 @@
 %3E%0A * %3Cp%3E
+%0A * 
 The %7B@co
@@ -1123,16 +1123,20 @@
 cessing.
+%0A * 
 %3C/p%3E%0A *%0A
@@ -1440,24 +1440,31 @@
 processing.%0A
+     *%0A
      * @para
@@ -1745,24 +1745,31 @@
 ML parsing.%0A
+     *%0A
      * @para
@@ -1988,32 +1988,39 @@
 PE declaration.%0A
+     *%0A
      * @param pu
@@ -2199,24 +2199,31 @@
 eclaration.%0A
+     *%0A
      * @para
@@ -2422,24 +2422,31 @@
  performed.%0A
+     *%0A
      * @para
@@ -2705,24 +2705,31 @@
 ld be used.%0A
+     *%0A
      * @para
@@ -2791,24 +2791,38 @@
 %3Cb%3Efalse%3C/b%3E
+%0A     *       
  for DTD val

Formatting.