1 package org.objectweb.celtix.tools.extensions.xmlformat; 2 3 import java.io.PrintWriter ; 4 import java.io.Serializable ; 5 6 import javax.wsdl.Definition; 7 import javax.wsdl.WSDLException; 8 import javax.wsdl.extensions.ExtensibilityElement; 9 import javax.wsdl.extensions.ExtensionDeserializer; 10 import javax.wsdl.extensions.ExtensionRegistry; 11 import javax.wsdl.extensions.ExtensionSerializer; 12 import javax.xml.namespace.QName ; 13 14 import org.w3c.dom.Element ; 15 16 import org.objectweb.celtix.helpers.XMLUtils; 17 import org.objectweb.celtix.tools.common.ToolConstants; 18 19 public class XMLFormatSerializer implements ExtensionSerializer, ExtensionDeserializer, Serializable { 20 21 XMLUtils xmlUtils = new XMLUtils(); 22 23 public void marshall(Class parentType, QName elementType, ExtensibilityElement extension, PrintWriter pw, 24 Definition def, ExtensionRegistry extReg) throws WSDLException { 25 26 XMLFormat xmlFormat = (XMLFormat)extension; 27 StringBuffer sb = new StringBuffer (300); 28 sb.append("<" + xmlUtils.writeQName(def, elementType) + " "); 29 if (xmlFormat.getRootNode() != null) { 30 sb.append(ToolConstants.XMLBINDING_ROOTNODE + "=\"" 31 + xmlUtils.writeQName(def, xmlFormat.getRootNode()) + "\""); 32 } 33 sb.append(" />"); 34 pw.print(sb.toString()); 35 pw.println(); 36 } 37 38 public ExtensibilityElement unmarshall(Class parentType, QName elementType, Element el, Definition def, 39 ExtensionRegistry extReg) throws WSDLException { 40 41 XMLFormat xmlFormat = (XMLFormat)extReg.createExtension(parentType, elementType); 42 xmlFormat.setElement(el); 43 xmlFormat.setElementType(elementType); 44 xmlFormat.setDocumentBaseURI(def.getDocumentBaseURI()); 45 XMLFormatParser xmlBindingParser = new XMLFormatParser(); 46 xmlBindingParser.parseElement(def, xmlFormat, el); 47 return xmlFormat; 48 } 49 50 } 51 | Popular Tags |