org.apache.axis.utils

Class XMLUtils

public class XMLUtils extends Object

Nested Class Summary
static classXMLUtils.ParserErrorHandler
Field Summary
protected static booleanenableParserReuse
static StringhttpAuthCharEncoding
protected static Loglog
Method Summary
static Element[]asElementArray(List list)
Converts a List with org.w3c.dom.Element objects to an Array with org.w3c.dom.Element objects.
static Stringbase64encode(byte[] bytes)
static voidDocumentToStream(Document doc, OutputStream out)
static StringDocumentToString(Document doc)
turn a whole DOM document into XML
static voidDocumentToWriter(Document doc, Writer writer)
static voidElementToStream(Element element, OutputStream out)
static StringElementToString(Element element)
turn an element into an XML fragment
static voidElementToWriter(Element element, Writer writer)
static NodefindNode(Node node, QName name)
Find a Node with a given QName
static StringgetChildCharacterData(Element parentEl)
Concat all the text and cdata node children of this elem and return the resulting text. (by Matt Duftler)
static DocumentBuildergetDocumentBuilder()
Gets a DocumentBuilder
static InputSourcegetEmptyInputSource()
static StringgetEncoding(MessageContext msgContext)
Get the current encoding in effect
static StringgetEncoding()
Get the current encoding in effect
static StringgetEncoding(Message message, MessageContext msgContext)
static StringgetEncoding(Message message, MessageContext msgContext, XMLEncoder defaultEncoder)
static QNamegetFullQNameFromString(String str, Node e)
Return a QName when passed a string like "foo:bar" by mapping the "foo" prefix to a namespace in the context of the given Node.
static StringgetInnerXMLString(Element element)
get the inner XML inside an element as a string.
static InputSourcegetInputSourceFromURI(String uri)
Utility to get the bytes uri.
static StringgetNamespace(String prefix, Node e, Node stopNode)
Searches for the namespace URI of the given prefix in the given DOM range.
static StringgetNamespace(String prefix, Node e)
static StringgetPrefix(String uri, Node e)
static QNamegetQNameFromString(String str, Node e)
Return a QName when passed a string like "foo:bar" by mapping the "foo" prefix to a namespace in the context of the given Node.
static SAXParsergetSAXParser()
Get a SAX parser instance from the JAXP factory.
static StringgetStringForQName(QName qname, Element e)
Return a string for a particular QName, mapping a new prefix if necessary.
static XMLEncodergetXMLEncoder(MessageContext msgContext)
Get the current XMLEncoder
static XMLEncodergetXMLEncoder(String encoding)
Get the XMLEncoder for specific encoding
static voidinitSAXFactory(String factoryClassName, boolean namespaceAware, boolean validating)
Initialize the SAX parser factory.
static DocumentnewDocument()
Get an empty new Document
static DocumentnewDocument(InputSource inp)
Get a new Document read from the input source
static DocumentnewDocument(InputStream inp)
Get a new Document read from the input stream
static DocumentnewDocument(String uri)
Get a new Document read from the indicated uri
static DocumentnewDocument(String uri, String username, String password)
Create a new document from the given URI, use the username and password if the URI requires authentication.
static voidnormalize(Node node)
Trim all new lines from text nodes.
static voidprivateElementToWriter(Element element, Writer writer, boolean omitXMLDecl, boolean pretty)
static voidPrettyDocumentToStream(Document doc, OutputStream out)
static StringPrettyDocumentToString(Document doc)
static voidPrettyDocumentToWriter(Document doc, Writer writer)
static voidPrettyElementToStream(Element element, OutputStream out)
static voidPrettyElementToWriter(Element element, Writer writer)
static voidreleaseDocumentBuilder(DocumentBuilder db)
Releases a DocumentBuilder
static voidreleaseSAXParser(SAXParser parser)
Return a SAX parser for reuse.
static InputSourcesourceToInputSource(Source source)
Utility to get the bytes uri
static ElementStringToElement(String namespace, String name, String string)
Convert a simple string to an element with a text node
static Stringtrim(String str)
static StringxmlEncodeString(String orig)
Encode a string appropriately for XML.

Field Detail

enableParserReuse

protected static boolean enableParserReuse

httpAuthCharEncoding

public static final String httpAuthCharEncoding

log

protected static Log log

Method Detail

asElementArray

public static Element[] asElementArray(List list)
Converts a List with org.w3c.dom.Element objects to an Array with org.w3c.dom.Element objects.

Parameters: list List containing org.w3c.dom.Element objects

Returns: Element[] Array with org.w3c.dom.Element objects

base64encode

public static final String base64encode(byte[] bytes)

DocumentToStream

public static void DocumentToStream(Document doc, OutputStream out)

DocumentToString

public static String DocumentToString(Document doc)
turn a whole DOM document into XML

Parameters: doc DOM document

Returns: string representation of the document, including XML declaration

DocumentToWriter

public static void DocumentToWriter(Document doc, Writer writer)

ElementToStream

public static void ElementToStream(Element element, OutputStream out)

ElementToString

public static String ElementToString(Element element)
turn an element into an XML fragment

Parameters: element

Returns: stringified element

ElementToWriter

public static void ElementToWriter(Element element, Writer writer)

findNode

public static Node findNode(Node node, QName name)
Find a Node with a given QName

Parameters: node parent node name QName of the child we need to find

Returns: child node

getChildCharacterData

public static String getChildCharacterData(Element parentEl)
Concat all the text and cdata node children of this elem and return the resulting text. (by Matt Duftler)

Parameters: parentEl the element whose cdata/text node values are to be combined.

Returns: the concatanated string.

getDocumentBuilder

public static DocumentBuilder getDocumentBuilder()
Gets a DocumentBuilder

Returns: DocumentBuilder

Throws: ParserConfigurationException

getEmptyInputSource

public static InputSource getEmptyInputSource()

getEncoding

public static String getEncoding(MessageContext msgContext)
Get the current encoding in effect

Returns: string

getEncoding

public static String getEncoding()
Get the current encoding in effect

Returns: string

getEncoding

public static String getEncoding(Message message, MessageContext msgContext)

getEncoding

public static String getEncoding(Message message, MessageContext msgContext, XMLEncoder defaultEncoder)

getFullQNameFromString

public static QName getFullQNameFromString(String str, Node e)
Return a QName when passed a string like "foo:bar" by mapping the "foo" prefix to a namespace in the context of the given Node. If default namespace is found it is returned as part of the QName.

Returns: a QName generated from the given string representation

getInnerXMLString

public static String getInnerXMLString(Element element)
get the inner XML inside an element as a string. This is done by converting the XML to its string representation, then extracting the subset between beginning and end tags.

Parameters: element

Returns: textual body of the element, or null for no inner body

getInputSourceFromURI

public static InputSource getInputSourceFromURI(String uri)
Utility to get the bytes uri. Does NOT handle authenticated URLs, use getInputSourceFromURI(uri, username, password)

Parameters: uri the resource to get

See Also: XMLUtils

getNamespace

public static String getNamespace(String prefix, Node e, Node stopNode)
Searches for the namespace URI of the given prefix in the given DOM range. The namespace is not searched in parent of the "stopNode". This is usefull to get all the needed namespaces when you need to ouput only a subtree of a DOM document.

Parameters: prefix the prefix to find e the starting node stopNode null to search in all the document or a parent node where the search must stop.

Returns: null if no namespace is found, or the namespace URI.

getNamespace

public static String getNamespace(String prefix, Node e)

getPrefix

public static String getPrefix(String uri, Node e)

getQNameFromString

public static QName getQNameFromString(String str, Node e)
Return a QName when passed a string like "foo:bar" by mapping the "foo" prefix to a namespace in the context of the given Node.

Returns: a QName generated from the given string representation

getSAXParser

public static SAXParser getSAXParser()
Get a SAX parser instance from the JAXP factory.

Returns: a SAXParser instance.

getStringForQName

public static String getStringForQName(QName qname, Element e)
Return a string for a particular QName, mapping a new prefix if necessary.

getXMLEncoder

public static XMLEncoder getXMLEncoder(MessageContext msgContext)
Get the current XMLEncoder

Returns: XMLEncoder

getXMLEncoder

public static XMLEncoder getXMLEncoder(String encoding)
Get the XMLEncoder for specific encoding

Returns: XMLEncoder

initSAXFactory

public static void initSAXFactory(String factoryClassName, boolean namespaceAware, boolean validating)
Initialize the SAX parser factory.

Parameters: factoryClassName The (optional) class name of the desired SAXParserFactory implementation. Will be assigned to the system property javax.xml.parsers.SAXParserFactory unless this property is already set. If null, leaves current setting alone. namespaceAware true if we want a namespace-aware parser validating true if we want a validating parser

newDocument

public static Document newDocument()
Get an empty new Document

Returns: Document

Throws: ParserConfigurationException if construction problems occur

newDocument

public static Document newDocument(InputSource inp)
Get a new Document read from the input source

Returns: Document

Throws: ParserConfigurationException if construction problems occur SAXException if the document has xml sax problems IOException if i/o exceptions occur

newDocument

public static Document newDocument(InputStream inp)
Get a new Document read from the input stream

Returns: Document

Throws: ParserConfigurationException if construction problems occur SAXException if the document has xml sax problems IOException if i/o exceptions occur

newDocument

public static Document newDocument(String uri)
Get a new Document read from the indicated uri

Returns: Document

Throws: ParserConfigurationException if construction problems occur SAXException if the document has xml sax problems IOException if i/o exceptions occur

newDocument

public static Document newDocument(String uri, String username, String password)
Create a new document from the given URI, use the username and password if the URI requires authentication.

Parameters: uri the resource to get username basic auth username password basic auth password

Throws: ParserConfigurationException if construction problems occur SAXException if the document has xml sax problems IOException if i/o exceptions occur

normalize

public static void normalize(Node node)
Trim all new lines from text nodes.

Parameters: node

privateElementToWriter

public static void privateElementToWriter(Element element, Writer writer, boolean omitXMLDecl, boolean pretty)

PrettyDocumentToStream

public static void PrettyDocumentToStream(Document doc, OutputStream out)

PrettyDocumentToString

public static String PrettyDocumentToString(Document doc)

PrettyDocumentToWriter

public static void PrettyDocumentToWriter(Document doc, Writer writer)

PrettyElementToStream

public static void PrettyElementToStream(Element element, OutputStream out)

PrettyElementToWriter

public static void PrettyElementToWriter(Element element, Writer writer)

releaseDocumentBuilder

public static void releaseDocumentBuilder(DocumentBuilder db)
Releases a DocumentBuilder

Parameters: db

releaseSAXParser

public static void releaseSAXParser(SAXParser parser)
Return a SAX parser for reuse.

Parameters: parser A SAX parser that is available for reuse

sourceToInputSource

public static InputSource sourceToInputSource(Source source)
Utility to get the bytes uri

Parameters: source the resource to get

StringToElement

public static Element StringToElement(String namespace, String name, String string)
Convert a simple string to an element with a text node

Parameters: namespace - element namespace name - element name string - value of the text node

Returns: element - an XML Element, null if no element was created

trim

public static String trim(String str)

xmlEncodeString

public static String xmlEncodeString(String orig)
Encode a string appropriately for XML.

Parameters: orig the String to encode

Returns: a String in which XML special chars are repalced by entities

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.