org.apache.axis.utils

Class XMLUtils


public class XMLUtils
extends java.lang.Object

Nested Class Summary

static class
XMLUtils.ParserErrorHandler

Field Summary

protected static boolean
enableParserReuse
static String
httpAuthCharEncoding
protected static Log
log

Method Summary

static void
DocumentToStream(Document doc, OutputStream out)
static String
DocumentToString(Document doc)
turn a whole DOM document into XML
static void
DocumentToWriter(Document doc, Writer writer)
static void
ElementToStream(Element element, OutputStream out)
static String
ElementToString(Element element)
turn an element into an XML fragment
static void
ElementToWriter(Element element, Writer writer)
static void
PrettyDocumentToStream(Document doc, OutputStream out)
static String
PrettyDocumentToString(Document doc)
static void
PrettyDocumentToWriter(Document doc, Writer writer)
static void
PrettyElementToStream(Element element, OutputStream out)
static void
PrettyElementToWriter(Element element, Writer writer)
static Element
StringToElement(String namespace, String name, String string)
Convert a simple string to an element with a text node
static Element[]
asElementArray(List list)
Converts a List with org.w3c.dom.Element objects to an Array with org.w3c.dom.Element objects.
static String
base64encode(byte[] bytes)
static Node
findNode(Node node, QName name)
Find a Node with a given QName
static String
getChildCharacterData(Element parentEl)
Concat all the text and cdata node children of this elem and return the resulting text.
static DocumentBuilder
getDocumentBuilder()
Gets a DocumentBuilder
static InputSource
getEmptyInputSource()
static String
getEncoding()
Get the current encoding in effect
static String
getEncoding(Message message, MessageContext msgContext)
static String
getEncoding(Message message, MessageContext msgContext, XMLEncoder defaultEncoder)
static String
getEncoding(MessageContext msgContext)
Get the current encoding in effect
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.
static String
getInnerXMLString(Element element)
get the inner XML inside an element as a string.
static InputSource
getInputSourceFromURI(String uri)
Utility to get the bytes uri.
static String
getNamespace(String prefix, Node e)
static String
getNamespace(String prefix, Node e, Node stopNode)
Searches for the namespace URI of the given prefix in the given DOM range.
static String
getPrefix(String uri, Node e)
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.
static SAXParser
getSAXParser()
Get a SAX parser instance from the JAXP factory.
static String
getStringForQName(QName qname, Element e)
Return a string for a particular QName, mapping a new prefix if necessary.
static XMLEncoder
getXMLEncoder(String encoding)
Get the XMLEncoder for specific encoding
static XMLEncoder
getXMLEncoder(MessageContext msgContext)
Get the current XMLEncoder
static void
initSAXFactory(String factoryClassName, boolean namespaceAware, boolean validating)
Initialize the SAX parser factory.
static Document
newDocument()
Get an empty new Document
static Document
newDocument(InputSource inp)
Get a new Document read from the input source
static Document
newDocument(InputStream inp)
Get a new Document read from the input stream
static Document
newDocument(String uri)
Get a new Document read from the indicated uri
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.
static void
normalize(Node node)
Trim all new lines from text nodes.
static void
privateElementToWriter(Element element, Writer writer, boolean omitXMLDecl, boolean pretty)
static void
releaseDocumentBuilder(DocumentBuilder db)
Releases a DocumentBuilder
static void
releaseSAXParser(SAXParser parser)
Return a SAX parser for reuse.
static InputSource
sourceToInputSource(Source source)
Utility to get the bytes uri
static String
trim(String str)
static String
xmlEncodeString(String orig)
Encode a string appropriately for XML.

Field Details

enableParserReuse

protected static boolean enableParserReuse

httpAuthCharEncoding

public static final String httpAuthCharEncoding

log

protected static Log log

Method Details

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)

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)

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

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)

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()
            throws ParserConfigurationException
Gets a DocumentBuilder
Returns:
DocumentBuilder

getEmptyInputSource

public static InputSource getEmptyInputSource()

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)

getEncoding

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

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:
getInputSourceFromURI(String uri, String username, String password)

getNamespace

public static String getNamespace(String prefix,
                                  Node e)

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.

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(String encoding)
Get the XMLEncoder for specific encoding
Returns:
XMLEncoder

getXMLEncoder

public static XMLEncoder getXMLEncoder(MessageContext msgContext)
Get the current XMLEncoder
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()
            throws ParserConfigurationException
Get an empty new Document
Returns:
Document

newDocument

public static Document newDocument(InputSource inp)
            throws ParserConfigurationException,
                   SAXException,
                   IOException
Get a new Document read from the input source
Returns:
Document

newDocument

public static Document newDocument(InputStream inp)
            throws ParserConfigurationException,
                   SAXException,
                   IOException
Get a new Document read from the input stream
Returns:
Document

newDocument

public static Document newDocument(String uri)
            throws ParserConfigurationException,
                   SAXException,
                   IOException
Get a new Document read from the indicated uri
Returns:
Document

newDocument

public static Document newDocument(String uri,
                                   String username,
                                   String password)
            throws ParserConfigurationException,
                   SAXException,
                   IOException
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

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)

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

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 © 2005 Apache Web Services Project. All Rights Reserved.