01: package org.objectweb.celtix.tools.extensions.xmlformat;
02:
03: import java.io.PrintWriter;
04: import java.io.Serializable;
05:
06: import javax.wsdl.Definition;
07: import javax.wsdl.WSDLException;
08: import javax.wsdl.extensions.ExtensibilityElement;
09: 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,
20: ExtensionDeserializer, Serializable {
21:
22: XMLUtils xmlUtils = new XMLUtils();
23:
24: public void marshall(Class parentType, QName elementType,
25: ExtensibilityElement extension, PrintWriter pw,
26: Definition def, ExtensionRegistry extReg)
27: throws WSDLException {
28:
29: XMLFormat xmlFormat = (XMLFormat) extension;
30: StringBuffer sb = new StringBuffer(300);
31: sb.append("<" + xmlUtils.writeQName(def, elementType) + " ");
32: if (xmlFormat.getRootNode() != null) {
33: sb.append(ToolConstants.XMLBINDING_ROOTNODE + "=\""
34: + xmlUtils.writeQName(def, xmlFormat.getRootNode())
35: + "\"");
36: }
37: sb.append(" />");
38: pw.print(sb.toString());
39: pw.println();
40: }
41:
42: public ExtensibilityElement unmarshall(Class parentType,
43: QName elementType, Element el, Definition def,
44: ExtensionRegistry extReg) throws WSDLException {
45:
46: XMLFormat xmlFormat = (XMLFormat) extReg.createExtension(
47: parentType, elementType);
48: xmlFormat.setElement(el);
49: xmlFormat.setElementType(elementType);
50: xmlFormat.setDocumentBaseURI(def.getDocumentBaseURI());
51: XMLFormatParser xmlBindingParser = new XMLFormatParser();
52: xmlBindingParser.parseElement(def, xmlFormat, el);
53: return xmlFormat;
54: }
55:
56: }
|