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

Reply via email to