You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Tom Fennelly <tf...@eircom.net> on 2005/07/26 17:03:42 UTC

Issues implementing the Serializer.writeSchema method...

Hi.

Just looking for a little help when implementing this method.  Basically I
seem to be getting something other than what I expected in the WSDL - and in
the wrong location.

I have the method implemented as follows (see target WSD entry in comments):
============================================================================
========
	public Element writeSchema(Class javaType, Types types) throws Exception {
		Element complexType = types.createElement("complexType");
		Element sequence;
		Element element;

		/*	Target WSDL entry:
			<complexType name="Customer">
				<sequence>
					<element name="number" type="xsd:long"/>
					<element name="name" type="xsd:string"/>
					<element name="address" type="xsd:string"/>
				</sequence>
			</complexType>
		 */

		complexType.setAttribute("name", "Customer");
		sequence = types.createElement("sequence");
		complexType.appendChild(sequence);

		// Add the fields
		element = types.createElement(FIELD_NUMBER, "xsd:long", false, false,
sequence.getOwnerDocument());
		sequence.appendChild(element);
		element = types.createElement(FIELD_NAME, "xsd:string", false, false,
sequence.getOwnerDocument());
		sequence.appendChild(element);
		element = types.createElement(FIELD_ADDRESS, "xsd:string", false, false,
sequence.getOwnerDocument());
		sequence.appendChild(element);

		return complexType;
	}
============================================================================
========

The following is what's being output in the WSDL:
============================================================================
========
			<complexType name="local">
				<sequence>
					<element name="number" type="xsd:long"/>
					<element name="name" type="xsd:string"/>
					<element name="address" type="xsd:string"/>
				</sequence>
			</complexType>
============================================================================
========

Note <complexType name="local"> instead of <complexType name="Customer">.
Anyone any idea what I'm doing wrong here?

Using apache Axis v1.2.1.

Also, a related question....

How do I get writeSchema to output the above in the the appropriate <schema
targetNamespace="..."> section within the resulting WSDL?

Regards,

Tom.