|
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.