1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the  "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18/*
19 * $Id: DOMSerializer.java 475350 2006-11-15 18:39:15Z minchau $
20 */
21package org.apache.xml.serializer;
22
23import java.io.IOException;
24
25import org.w3c.dom.Node;
26
27/**
28 * Interface for a DOM serializer implementation.
29 * <p>
30 * The DOMSerializer is a facet of a serializer and is obtained from the
31 * asDOMSerializer() method of the ({@link Serializer}) interface.
32 * A serializer may or may not support a DOM serializer, if it does not then the
33 * return value from asDOMSerializer() is null.
34 * <p>
35 * Example:
36 * <pre>
37 * // Create a document to be serialized
38 * org.w3c.dom.Document doc = ...;
39 *
40 * // Create a Serializer that will be used
41 * // to serialize the document
42 * org.apache.xml.serializer.Serializer ser = ...;
43 *
44 * // Set the Writer to write output to, and
45 * // serialize the DOM using that Serializer
46 * java.io.StringWriter sw = new java.io.StringWriter();
47 * ser.setWriter(sw);
48 * DOMSerialzier dser = ser.asDOMSerializer();
49 * dser.serialize(doc);
50 *
51 * // Write out the serialized XML in the String.
52 * System.out.println(sw.toString());
53 * </pre>
54 *
55 * @see OutputPropertiesFactory
56 * @see SerializerFactory
57 * @see Serializer
58 *
59 * @xsl.usage general
60 *
61 */
62public interface DOMSerializer
63{
64    /**
65     * Serializes the DOM node. Throws an exception only if an I/O
66     * exception occured while serializing.
67     *
68     * This interface is a public API.
69     *
70     * @param node the DOM node to serialize
71     * @throws IOException if an I/O exception occured while serializing
72     */
73    public void serialize(Node node) throws IOException;
74}
75