Javadoc update
diff --git a/src/org/apache/xml/serializer/DOM3Serializer.java b/src/org/apache/xml/serializer/DOM3Serializer.java
index 11a81f8..b79ef91 100644
--- a/src/org/apache/xml/serializer/DOM3Serializer.java
+++ b/src/org/apache/xml/serializer/DOM3Serializer.java
@@ -23,37 +23,184 @@
 

 import java.io.IOException;

 

-import org.w3c.dom.Node;

 import org.w3c.dom.DOMErrorHandler;

+import org.w3c.dom.Node;

 import org.w3c.dom.ls.LSSerializerFilter;

 

 /**

  * Interface for a DOM serializer capable of serializing DOMs as specified in 

- * the DOM Level 3 Save Recommendation.

+ * the DOM Level 3 Save Recommendation. This interface is not intended to be used

+ * by an end user, but rather by an XML parser that is implementing the DOM 

+ * Level 3 Load and Save APIs.

+ * <p>

+ * 

+ * See the DOM Level 3 Load and Save interface at <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">LSSeializer</a>.

+ * 

+ * For a list of configuration parameters for DOM Level 3 see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>.

+ * For additional configuration parameters available with the DOM Level 3 Load and Save API LSSerializer see

+ * <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSerializer config</a>.

+ * <p>

+ * The following example uses a DOM3Serializer indirectly, through an an XML

+ * parser that uses this class as part of its implementation of the DOM Level 3

+ * Load and Save APIs, and is the prefered way to serialize with DOM Level 3 APIs.

+ * <p>

+ * Example:

+ * <pre>

+ *    public class TestDOM3 {

+ *

+ *    public static void main(String args[]) throws Exception {

+ *        // Get document to serialize

+ *        TestDOM3 test = new TestDOM3();

+ *        

+ *        // Serialize using standard DOM Level 3 Load/Save APIs        

+ *        System.out.println(test.testDOM3LS());

+ *    }

+ *

+ *    public org.w3c.dom.Document getDocument() throws Exception {

+ *        // Create a simple DOM Document.

+ *        javax.xml.parsers.DocumentBuilderFactory factory = 

+ *            javax.xml.parsers.DocumentBuilderFactory.newInstance();

+ *        javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();

+ *        byte[] bytes = "<parent><child/></parent>".getBytes();

+ *        java.io.InputStream is = new java.io.ByteArrayInputStream(bytes);

+ *        org.w3c.dom.Document doc = builder.parse(is);

+ *        return doc;

+ *    }

+ *    

+ *    //

+ *    // This method uses standard DOM Level 3 Load Save APIs:

+ *    //   org.w3c.dom.bootstrap.DOMImplementationRegistry

+ *    //   org.w3c.dom.ls.DOMImplementationLS

+ *    //   org.w3c.dom.ls.DOMImplementationLS

+ *    //   org.w3c.dom.ls.LSSerializer

+ *    //   org.w3c.dom.DOMConfiguration

+ *    //   

+ *    // The only thing non-standard in this method is the value set for the

+ *    // name of the class implementing the DOM Level 3 Load Save APIs,

+ *    // which in this case is:

+ *    //   org.apache.xerces.dom.DOMImplementationSourceImpl

+ *    //

+ *

+ *    public String testDOM3LS() throws Exception {

+ *        

+ *        // Get a simple DOM Document that will be serialized.

+ *        org.w3c.dom.Document docToSerialize = getDocument();

+ *

+ *        // Get a factory (DOMImplementationLS) for creating a Load and Save object.

+ *        System.setProperty(org.w3c.dom.bootstrap.DOMImplementationRegistry.PROPERTY,

+ *                "org.apache.xerces.dom.DOMImplementationSourceImpl");

+ *        org.w3c.dom.ls.DOMImplementationLS impl = 

+ *            (org.w3c.dom.ls.DOMImplementationLS) 

+ *            org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance().getDOMImplementation("LS");

+ *

+ *        // Use the factory to create an object (LSSerializer) used to 

+ *        // write out or save the document.

+ *        org.w3c.dom.ls.LSSerializer writer = impl.createLSSerializer();

+ *        org.w3c.dom.DOMConfiguration config = writer.getDomConfig();

+ *        config.setParameter("format-pretty-print", Boolean.TRUE);

+ *        

+ *        // Use the LSSerializer to write out or serialize the document to a String.

+ *        String serializedXML = writer.writeToString(docToSerialize);

+ *        return serializedXML;

+ *    }

+ *    

+ *    }  // end of class TestDOM3

+ * </pre>

  * <p>

  * The DOM3Serializer is a facet of a serializer and is obtained from the

  * asDOM3Serializer() method of the org.apache.xml.serializer.Serializer interface. 

  * A serializer may or may not support a level 3 DOM serializer, if it does not then the 

  * return value from asDOM3Serializer() is null.

  * <p>

+ * Using the DOM3Serializer interface directly is discouraged for use by end users.

+ * <p>

  * Example:

  * <pre>

- * Document     doc;

- * Serializer   ser;

- * OutputStream os;

- * DOMErrorHandler handler;

- * 

- * ser = ...;

- * os = ...;

- * handler = ...;

+ *   public class TestDOM3 {

  *

- * ser.setOutputStream( os );

- * DOM3Serialzier dser = (DOM3Serialzier)ser.asDOM3Serializer();

- * dser.setErrorHandler(handler);

- * dser.serialize(doc);

+ *   public static void main(String args[]) throws Exception {

+ *       // Get document to serialize

+ *       TestDOM3 test = new TestDOM3();

+ *       

+ *       // Serialize using implementation specific

+ *       // non-standard serialization

+ *       // APIs (use standard DOM Level 3 if you can) 

+ *       System.out.println(test.testDOM3Xalan());

+ *   }

+ *   

+ *   //

+ *   // This method uses non-standard, implementation specific

+ *   // classes:

+ *   //   org.apache.xml.serializer.OutputPropertiesFactory

+ *   //   org.apache.xml.serializer.SerializerFactory

+ *   //   org.apache.xml.serializer.Serializer

+ *   //   org.apache.xml.serializer.DOM3Serializer

+ *   // to serialize a Document.

+ *   // 

+ *   // These classes are intended to be used by an XML

+ *   // parser to implement Load Save support for DOM Level 3.

+ *   // They are not intended for use by an end user.

+ *   //

+ *   public String testDOM3Xalan() throws Exception {

+ *       // Get a simple DOM Document that will be serialized.

+ *       org.w3c.dom.Document doc = getDocument();

+ *    

+ *       // Get the default properties for serializing XML

+ *       java.util.Properties configProps = org.apache.xml.serializer.OutputPropertiesFactory

+ *               .getDefaultMethodProperties("xml");

+ *       

+ *       // Get a Serializer from the non-standard factory

+ *       org.apache.xml.serializer.Serializer ser = org.apache.xml.serializer.SerializerFactory

+ *               .getSerializer(configProps);

+ *       java.io.StringWriter sw = new java.io.StringWriter();

+ *       // Set the writer where the Serializer should write its output to.

+ *       ser.setWriter(sw);

+ *    

+ *       // Configure the Serializer with additional non-standard properties

+ *       // for DOM Level 3 serialization:

+ *       java.util.Properties props = new java.util.Properties();

+ *       props.setProperty(

+ *               "{http://www.w3.org/TR/DOM-Level-3-LS}format-pretty-print",

+ *               "explicit:yes");

+ *       ser.setOutputFormat(props);

+ *    

+ *       // Cast the Serializer to a DOM3Serializer and use it to serialize the Document.

+ *       org.apache.xml.serializer.DOM3Serializer dser = (org.apache.xml.serializer.DOM3Serializer) ser

+ *               .asDOM3Serializer();

+ *       dser.serializeDOM3(doc);

+ *       String serializedXML = sw.toString();

+ *       return serializedXML;

+ *   }

+ *   

+ *   }  // end of class TestDOM3

+ *   

  * </pre>

+ * <p>

+ * If a DOM3Serializer is used directly (not through the DOM Level 3 API LSSerializer,

+ * then the configuration properties for DOM Level 3 are supported:

+ * <ul>

+ * <li> "cdata-sections"

+ * <li> "comments"

+ * <li> "element-content-whitespace"

+ * <li> "entities"

+ * <li> "infoset"

+ * <li> "namespaces"

+ * <li> "namespace-declarations"

+ * <li> "split-cdata-sections"

+ * <li> "well-formed"

+ * </ul>

+ * <p>

+ * Also the following propertes for DOM Level 3 Load and Save are supported:

+ * <ul>

+ * <li> "{http://www.w3.org/TR/DOM-Level-3-LS}format-pretty-print" 

+ * <li> "format-pretty-print"

+ * <li> "xml-declaration"

+ * </ul>

  * 

+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration">DOMConfiguration</a>

+ * @see <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer-config">LSSerializer</a>

  * @see org.apache.xml.serializer.Serializer

+ * @see org.apache.xml.serializer.DOMSerializer

  * 

  * @xsl.usage general

  *