## org.dom4j
Class DocumentFactory

    java.lang.Object
      org.dom4j.DocumentFactory

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  BeanDocumentFactory, DatatypeDocumentFactory, DatatypeElementFactory, DOMDocumentFactory, IndexedDocumentFactory, NonLazyDocumentFactory, UserDataDocumentFactory

public class DocumentFactory
extends Object
implements Serializable

`DocumentFactory` is a collection of factory methods to allow easy custom building of DOM4J trees. The default tree that is built uses a doubly linked tree.

The tree built allows full XPath expressions from anywhere on the tree.

Author:
  James Strachan
See Also:
  Serialized Form

Field Summary
`protected QNameCache` `cache`

Constructor Summary
`DocumentFactory()`

Method Summary
`Attribute` `createAttribute(Element owner, QName qname, String value)`
`Attribute` `createAttribute(Element owner, String name, String value)`
`CDATA` `createCDATA(String text)`
`Comment` `createComment(String text)`
`DocumentType` `createDocType(String name, String publicId, String systemId)`
`Document` `createDocument()`
`Document` `createDocument(Element rootElement)`
`Document` `createDocument(String encoding)` DOCUMENT ME!
`Element` `createElement(QName qname)`
`Element` `createElement(String name)`
`Element` `createElement(String qualifiedName, String namespaceURI)`
`Entity` `createEntity(String name, String text)`
`Namespace` `createNamespace(String prefix, String uri)`
`Pattern` `createPattern(String xpathPattern)` `createPattern` parses the given XPath expression to create an XSLT style `Pattern`instance which can then be used in an XSLT processing model.
`ProcessingInstruction` `createProcessingInstruction(String target, Map data)`
`ProcessingInstruction` `createProcessingInstruction(String target, String data)`
`QName` `createQName(String localName)`
`QName` `createQName(String localName, Namespace namespace)`
`QName` `createQName(String qualifiedName, String uri)`
`QName` `createQName(String name, String prefix, String uri)`
`protected QNameCache` `createQNameCache()` Factory method to create the QNameCache.
`protected static DocumentFactory` `createSingleton(String className)` `createSingleton` creates the singleton instance from the given class name.
`Text` `createText(String text)`
`XPath` `createXPath(String xpathExpression)` `createXPath` parses an XPath expression and creates a new XPath `XPath` instance.
`XPath` `createXPath(String xpathExpression, org.jaxen.VariableContext variableContext)` `createXPath` parses an XPath expression and creates a new XPath `XPath` instance.
`NodeFilter` `createXPathFilter(String xpathFilterExpression)` `createXPathFilter` parses a NodeFilter from the given XPath filter expression.
`NodeFilter` `createXPathFilter(String xpathFilterExpression, org.jaxen.VariableContext variableContext)` `createXPathFilter` parses a NodeFilter from the given XPath filter expression.
`static DocumentFactory` `getInstance()` Access to singleton implementation of DocumentFactory which is used if no DocumentFactory is specified when building using the standard builders.
`List` `getQNames()` Returns a list of all the QName instances currently used by this document factory
`Map` `getXPathNamespaceURIs()` DOCUMENT ME!
`protected void` `init()`
`protected QName` `intern(QName qname)` DOCUMENT ME!
`void` `setXPathNamespaceURIs(Map namespaceURIs)` Sets the namespace URIs to be used by XPath expressions created by this factory or by nodes associated with this factory.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### cache

    protected transient QNameCache cache

Constructor Detail

### DocumentFactory

    public DocumentFactory()

Method Detail

### getInstance

    public static DocumentFactory getInstance()

  Access to singleton implementation of DocumentFactory which is used if no DocumentFactory is specified when building using the standard builders.

  Returns:
    the default singleon instance

### createDocument

    public Document createDocument()

### createDocument

    public Document createDocument(String encoding)

  DOCUMENT ME!

  Parameters:
    `encoding` - DOCUMENT ME!
  Returns:
    DOCUMENT ME!
  Since:
    1.5

### createDocument

    public Document createDocument(Element rootElement)

### createDocType

    public DocumentType createDocType(String name,
                                      String publicId,
                                      String systemId)

### createElement

    public Element createElement(QName qname)

### createElement

    public Element createElement(String name)

### createElement

    public Element createElement(String qualifiedName,
                                 String namespaceURI)

### createAttribute

    public Attribute createAttribute(Element owner,
                                     QName qname,
                                     String value)

### createAttribute

    public Attribute createAttribute(Element owner,
                                     String name,
                                     String value)

### createCDATA

    public CDATA createCDATA(String text)

### createComment

    public Comment createComment(String text)

### createText

    public Text createText(String text)

### createEntity

    public Entity createEntity(String name,
                               String text)

### createNamespace

    public Namespace createNamespace(String prefix,
                                     String uri)

### createProcessingInstruction

    public ProcessingInstruction createProcessingInstruction(String target,
                                                             String data)

### createProcessingInstruction

    public ProcessingInstruction createProcessingInstruction(String target,
                                                             Map data)

### createQName

    public QName createQName(String localName,
                             Namespace namespace)

### createQName

    public QName createQName(String localName)

### createQName

    public QName createQName(String name,
                             String prefix,
                             String uri)

### createQName

    public QName createQName(String qualifiedName,
                             String uri)

### createXPath

    public XPath createXPath(String xpathExpression)
                      throws InvalidXPathException

  `createXPath` parses an XPath expression and creates a new XPath `XPath` instance.

  Parameters:
    `xpathExpression` - is the XPath expression to create
  Returns:
    a new `XPath` instance
  Throws:
    `InvalidXPathException` - if the XPath expression is invalid

### createXPath

    public XPath createXPath(String xpathExpression,
                             org.jaxen.VariableContext variableContext)

  `createXPath` parses an XPath expression and creates a new XPath `XPath` instance.

  Parameters:
    `xpathExpression` - is the XPath expression to create
    `variableContext` - is the variable context to use when evaluating the XPath
  Returns:
    a new `XPath` instance

### createXPathFilter

    public NodeFilter createXPathFilter(String xpathFilterExpression,
                                        org.jaxen.VariableContext variableContext)

  `createXPathFilter` parses a NodeFilter from the given XPath filter expression. XPath filter expressions occur within XPath expressions such as `self::node()[ filterExpression ]`

  Parameters:
    `xpathFilterExpression` - is the XPath filter expression to create
    `variableContext` - is the variable context to use when evaluating the XPath
  Returns:
    a new `NodeFilter` instance

### createXPathFilter

    public NodeFilter createXPathFilter(String xpathFilterExpression)

  `createXPathFilter` parses a NodeFilter from the given XPath filter expression. XPath filter expressions occur within XPath expressions such as `self::node()[ filterExpression ]`

  Parameters:
    `xpathFilterExpression` - is the XPath filter expression to create
  Returns:
    a new `NodeFilter` instance

### createPattern

    public Pattern createPattern(String xpathPattern)

  `createPattern` parses the given XPath expression to create an XSLT style `Pattern`instance which can then be used in an XSLT processing model.

  Parameters:
    `xpathPattern` - is the XPath pattern expression to create
  Returns:
    a new `Pattern` instance

### getQNames

    public List getQNames()

  Returns a list of all the QName instances currently used by this document factory

  Returns:
    DOCUMENT ME!

### getXPathNamespaceURIs

    public Map getXPathNamespaceURIs()

  DOCUMENT ME!

  Returns:
    the Map of namespace URIs that will be used by by XPath expressions to resolve namespace prefixes into namespace URIs. The map is keyed by namespace prefix and the value is the namespace URI. This value could well be null to indicate no namespace URIs are being mapped.

### setXPathNamespaceURIs

    public void setXPathNamespaceURIs(Map namespaceURIs)

  Sets the namespace URIs to be used by XPath expressions created by this factory or by nodes associated with this factory. The keys are namespace prefixes and the values are namespace URIs.

  Parameters:
    `namespaceURIs` - DOCUMENT ME!

### createSingleton

    protected static DocumentFactory createSingleton(String className)

  `createSingleton` creates the singleton instance from the given class name.

  Parameters:
    `className` - is the name of the DocumentFactory class to use
  Returns:
    a new singleton instance.

### intern

    protected QName intern(QName qname)

  DOCUMENT ME!

  Parameters:
    `qname` - DOCUMENT ME!
  Returns:
    the cached QName instance if there is one or adds the given qname to the cache if not

### createQNameCache

    protected QNameCache createQNameCache()

  Factory method to create the QNameCache. This method should be overloaded if you wish to use your own derivation of QName.

  Returns:
    DOCUMENT ME!

### init

    protected void init()

Copyright © 2001-2005 MetaStuff Ltd.. All Rights Reserved.