Duplicate complexType definition in generated WSDL for type defined in external
schema
--------------------------------------------------------------------------------------
Key: XFIRE-395
URL: http://jira.codehaus.org/browse/XFIRE-395
Project: XFire
Type: Bug
Reporter: Wouter
Assigned to: Dan Diephouse
XFire 20060509 snapshot
When we define some complex types explicitly in an external XSD and have this
xsd included in the generated WSDL, an invalid WSDL is generated: included
types are defined twice (XML Spy says: Duplicate values for unique/key identity
constraint 'type').
SERVICE DEFINITION in xfire-servlet.xml:
<bean name="dataXFireService"
class="org.codehaus.xfire.spring.remoting.XFireExporter">
<property name="serviceBean"><ref bean="dataService"/></property>
<property name="serviceFactory"><ref
bean="xfire.annotationServiceFactory"/></property>
<property name="schemas">
<list>
<value>xsd/types-adjusted.xsd</value>
</list>
</property>
</bean>
EXTERNAL TYPE DEFINITIONS in types-adjusted.xsd:
<xsd:complexType name="DataTypeMetadata" />
<xsd:complexType name="XmlDataTypeMetadata">
<xsd:complexContent>
<xsd:extension base="ns1:DataTypeMetadata">
<xsd:sequence>
<xsd:element name="schema" type="xsd:string" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BinaryFileDataTypeMetadata">
<xsd:complexContent>
<xsd:extension base="ns1:DataTypeMetadata">
<xsd:sequence>
<xsd:element name="mimeType" type="xsd:string"
/>
<xsd:element name="originalFileName"
type="xsd:string" />
<xsd:element name="size" type="xsd:integer" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
SNIPPET FROM GENERATED WSDL (DataService?wsdl)
<wsdl:types>
<xsd:schema targetNamespace="http://types.func.nl"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- START OF INCLUDED TYPE DEFINITIONS -->
<xsd:complexType abstract="true" name="DataTypeMetadata" />
<xsd:complexType name="XmlDataTypeMetadata">
<xsd:complexContent>
<xsd:extension base="ns1:DataTypeMetadata">
<xsd:sequence>
<xsd:element name="schema" type="xsd:string" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BinaryFileDataTypeMetadata">
<xsd:complexContent>
<xsd:extension base="ns1:DataTypeMetadata">
<xsd:sequence>
<xsd:element name="mimeType" type="xsd:string" />
<xsd:element name="originalFileName" type="xsd:string" />
<xsd:element name="size" type="xsd:integer" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- END OF INCLUDED TYPE DEFINITIONS -->
...
<xsd:complexType name="DataTypeMetadata" />
</xsd:schema>
...
</wsdl:types>
Note: the duplicate type being abstract is irrelevant - the same problem occurs
when the abstract="true" attribute is left out in the xsd.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira