/* IDOMFactory.java
Purpose:
Description:
History:
2001/10/25 11:32:45, Create, Tom M. Yeh.
Copyright (C) 2001 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.idom.input;
import org.zkoss.idom.*;
/**
* A DOM factory. It is the interface used by SaxBuild to create
* corresponding vertices. By implementing this interface or
* overriding DefaultDomFactory, caller could create a set of
* vertices other than the default ones.
*
* @author tomyeh
* @see SAXBuilder
*/
public interface IDOMFactory {
/**
* Creates an Attribute without namespace.
*/
public Attribute newAttribute(String lname, String value);
/**
* Creates an Attribute with namespace.
*/
public Attribute newAttribute(Namespace ns, String lname, String value);
/**
* Creates a CData.
*/
public CData newCData(String text);
/**
* Creates a Comment.
*/
public Comment newComment(String text);
/**
* Creates a DocType.
*
* @param elementName the root element's name
* @param publicId the public Id; null for empty
* @param systemId the system Id; null for empty
*/
public DocType newDocType(String elementName, String publicId, String systemId);
/**
* Creates a Document.
*
* @param docType the document type; null for not available
*/
public Document newDocument(Element rootElement, DocType docType);
/**
* Creates an Element with a namespace.
*/
public Element newElement(Namespace ns, String lname);
/**
* Creates an Element without namespace.
*/
public Element newElement(String lname);
/**
* Creates a processing instruction.
*
* @param data the raw data; null for empty
*/
public ProcessingInstruction
newProcessingInstruction(String target, String data);
/**
* Creates an EntityReference.
*
* @param name the entity reference's name
*/
public EntityReference newEntityRef(String name);
/**
* Creates a Text.
*/
public Text newText(String text);
}