Having just gone through a WSDL I was given in an effort to make SOAP::WSDL parse it, I found the following:
This XSD snippet does not parse:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:foo:xml:ns:importtest"
xmlns:tns="urn:foo:xml:ns:importtest"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<xsd:complexType name="type2">
<xsd:sequence>
<xsd:element name="dog1" type="xsd:string"/>
<xsd:element name="age" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="type3">
<xsd:complexContent>
<xsd:extension base="tns:type2"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
...while this does:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:foo:xml:ns:importtest"
xmlns:tns="urn:foo:xml:ns:importtest"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<xsd:complexType name="type2">
<xsd:sequence>
<xsd:element name="dog1" type="xsd:string"/>
<xsd:element name="age" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="type3>
<xsd:complexContent>
<xsd:extension base="tns:type2"/>
<xsd:sequence/>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
(Note the addition of the <xsd:sequence> placeholder in the second example). Is SOAP::WSDL's behavior correct here?
Thanks,
Noah