The difference is necessary because we need to handle elements with "reusable" types defined like this:

```
      <element name="tradePriceRequest" type="TradePriceRequest" />
      <complexType name="xsd1:TradePriceRequest">
        <complexContent>
          <extension base="xsd1:BaseRequest">
            <sequence>
              <element name="tickerSymbol" type="xs:string" maxOccurs="5"/>
              <element name="specialTickerSymbol" type="xsd2:TickerSymbol" maxOccurs="unbounded"/>
            </sequence>
            <attribute name="id" type="xs:string"/>
          </extension>
        </complexContent>
      </complexType>
```

and also elements with "inline" type definitions like:

```
      <element name="TradePrice">
         <complexType>
           <all>
             <element name="xsd3:price" type="xs:float"/>
           </all>
         </complexType>
      </element>
```

But yeah, that check in `LolSoap::WSDL::Element` is not great.