|
Axis 2 example source code file (OMElementStreamWriterTest.java)
The Axis 2 OMElementStreamWriterTest.java source code
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.axis2.databinding.utils.writer;
import junit.framework.TestCase;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.stream.XMLStreamReader;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axis2.databinding.utils.ConverterUtil;
import org.apache.axis2.databinding.utils.BeanUtil;
public class OMElementStreamWriterTest extends TestCase {
private int prefixNum;
public void testGetOMElement() {
OMElementStreamWriter omElementStreamWriter = new OMElementStreamWriter();
try {
writeStartElement(null, "test1", omElementStreamWriter);
writeStartElement("http://apach.temp.uri", "test2", omElementStreamWriter);
writeStartElement("http://apach.temp.uri1", "test3", omElementStreamWriter);
omElementStreamWriter.writeCharacters("test string3");
writeAttribute("http://apach.temp.uri", "attribute1", "attrubteValue1", omElementStreamWriter);
writeQNames(new QName[]{new QName("http://axis2.apach.org1", "testQName"),
new QName("http://axis2.apach.org2", "testQName2")}, omElementStreamWriter);
omElementStreamWriter.writeEndElement();
writeStartElement("http://apach.temp.uri1", "test4", omElementStreamWriter);
writeAttribute(null, "attribute1", "attrubteValue1", omElementStreamWriter);
writeAttribute("ns1", "http://apach.temp.uri", "attribute1", "attrubteValue1", omElementStreamWriter);
omElementStreamWriter.writeCharacters("test string4");
omElementStreamWriter.writeEndElement();
writeStartElement("http://temp.new.org", "testattributeElement", omElementStreamWriter);
writeQNameAttribute(null, "testQname", new QName("http://temp.new.org", "testQName"), omElementStreamWriter);
writeQName(new QName("http://axis2.apach.org", "testQName"), omElementStreamWriter);
omElementStreamWriter.writeEndElement();
omElementStreamWriter.writeEndElement();
omElementStreamWriter.writeEndElement();
OMElement omElement = omElementStreamWriter.getOMElement();
System.out.println("OM String ==> " + omElement.toString());
XMLStreamReader xmlReader = omElement.getXMLStreamReader();
StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(xmlReader);
OMElement result = stAXOMBuilder.getDocumentElement();
System.out.println("OM result ==> " + result.toString());
} catch (XMLStreamException e) {
fail();
}
}
private String generatePrefix(String string) {
return "ns" + ++prefixNum;
}
private void writeStartElement(String namespace, String localName, XMLStreamWriter xmlWriter) throws XMLStreamException {
if ((namespace != null) && ! namespace.equals("")) {
java.lang.String prefix = xmlWriter.getPrefix(namespace);
if (prefix == null) {
prefix = "ns" + ++prefixNum;
xmlWriter.writeStartElement(prefix, localName, namespace);
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
} else {
xmlWriter.writeStartElement(namespace, localName);
}
} else {
xmlWriter.writeStartElement(localName);
}
}
private void writeAttribute(String prefix, String namespace, String attName,
String attValue, XMLStreamWriter xmlWriter)
throws XMLStreamException {
if (xmlWriter.getPrefix(namespace) == null) {
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
}
xmlWriter.writeAttribute(namespace, attName, attValue);
}
private void writeAttribute(String namespace, String attName,
String attValue, XMLStreamWriter xmlWriter) throws XMLStreamException {
if ((namespace == null) || namespace.equals("")) {
xmlWriter.writeAttribute(attName, attValue);
} else {
registerPrefix(xmlWriter, namespace);
xmlWriter.writeAttribute(namespace, attName, attValue);
}
}
private void writeQNameAttribute(String namespace, String attName,
QName qname, XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
String attributeNamespace = qname.getNamespaceURI();
String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
if (attributePrefix == null) {
attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
}
java.lang.String attributeValue;
if (attributePrefix.trim().length() > 0) {
attributeValue = attributePrefix + ":" + qname.getLocalPart();
} else {
attributeValue = qname.getLocalPart();
}
if ((namespace != null) && namespace.equals("")) {
xmlWriter.writeAttribute(attName, attributeValue);
} else {
if (namespace != null) {
registerPrefix(xmlWriter, namespace);
}
xmlWriter.writeAttribute(namespace, attName, attributeValue);
}
}
private void writeQName(QName qname,
XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
String namespaceURI = qname.getNamespaceURI();
if (namespaceURI != null) {
String prefix = xmlWriter.getPrefix(namespaceURI);
if (prefix == null) {
prefix = generatePrefix(namespaceURI);
xmlWriter.writeNamespace(prefix, namespaceURI);
xmlWriter.setPrefix(prefix, namespaceURI);
}
if (prefix.trim().length() > 0) {
xmlWriter.writeCharacters(prefix + ":" + ConverterUtil.convertToString(qname));
} else {
// i.e this is the default namespace
xmlWriter.writeCharacters(ConverterUtil.convertToString(qname));
}
} else {
xmlWriter.writeCharacters(ConverterUtil.convertToString(qname));
}
}
private void writeQNames(QName[] qnames,
XMLStreamWriter xmlWriter) throws XMLStreamException {
if (qnames != null) {
// we have to store this data until last moment since it is not possible to write any
// namespace data after writing the charactor data
StringBuffer stringToWrite = new StringBuffer();
String namespaceURI = null;
String prefix = null;
for (int i = 0; i < qnames.length; i++) {
if (i > 0) {
stringToWrite.append(" ");
}
namespaceURI = qnames[i].getNamespaceURI();
if (namespaceURI != null) {
prefix = xmlWriter.getPrefix(namespaceURI);
if ((prefix == null) || (prefix.length() == 0)) {
prefix = generatePrefix(namespaceURI);
xmlWriter.writeNamespace(prefix, namespaceURI);
xmlWriter.setPrefix(prefix, namespaceURI);
}
if (prefix.trim().length() > 0) {
stringToWrite.append(prefix).append(":").append(ConverterUtil.convertToString(qnames[i]));
} else {
stringToWrite.append(ConverterUtil.convertToString(qnames[i]));
}
} else {
stringToWrite.append(ConverterUtil.convertToString(qnames[i]));
}
}
xmlWriter.writeCharacters(stringToWrite.toString());
}
}
private String registerPrefix(XMLStreamWriter xmlWriter, String namespace) throws XMLStreamException {
String prefix = xmlWriter.getPrefix(namespace);
if (prefix == null) {
prefix = generatePrefix(namespace);
while (xmlWriter.getNamespaceContext().getNamespaceURI(prefix) != null) {
prefix = BeanUtil.getUniquePrefix();
}
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
}
return prefix;
}
}
Other Axis 2 examples (source code examples)Here is a short list of links related to this Axis 2 OMElementStreamWriterTest.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.