Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1699

Show
Ignore:
Timestamp:
08/09/06 21:35:27 (2 years ago)
Author:
nahi
Message:

classDefCreator crash for a WSDL containing a complexType that extends another complexType which is itself an extension of simpleContent. fixes #231.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/wsdl/xmlSchema/complexExtension.rb

    r1691 r1699  
    11# WSDL4R - XMLSchema complexType extension definition for WSDL. 
    2 # Copyright (C) 2005  NAKAMURA, Hiroshi <nahi@ruby-lang.org>. 
     2# Copyright (C) 2005, 2006  NAKAMURA, Hiroshi <nahi@ruby-lang.org>. 
    33 
    44# This program is copyrighted free software by NAKAMURA, Hiroshi.  You can 
     
    5454    if @base == ::SOAP::ValueArrayName 
    5555      :TYPE_ARRAY 
     56    elsif content 
     57      :TYPE_STRUCT 
    5658    else 
    5759      basetype.check_type 
  • trunk/test/wsdl/ref/expectedProduct.rb

    r1698 r1699  
    155155  end 
    156156end 
     157 
     158# {urn:ref}Document 
     159#   contains SOAP::SOAPString 
     160class Document < ::String 
     161  @@schema_attribute = { 
     162    XSD::QName.new(nil, "ID") => "SOAP::SOAPString" 
     163  } 
     164 
     165  def xmlattr_ID 
     166    (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")] 
     167  end 
     168 
     169  def xmlattr_ID=(value) 
     170    (@__xmlattr ||= {})[XSD::QName.new(nil, "ID")] = value 
     171  end 
     172 
     173  def initialize(*arg) 
     174    super 
     175    @__xmlattr = {} 
     176  end 
     177end 
     178 
     179# {urn:ref}DerivedChoice_BaseSimpleContent 
     180class DerivedChoice_BaseSimpleContent 
     181  @@schema_type = "DerivedChoice_BaseSimpleContent" 
     182  @@schema_ns = "urn:ref" 
     183  @@schema_attribute = { 
     184    XSD::QName.new(nil, "attrStringExt") => "SOAP::SOAPString" 
     185  } 
     186  @@schema_element = [ :choice, 
     187    ["varStringExt", ["SOAP::SOAPString", XSD::QName.new(nil, "varStringExt")]], 
     188    ["varFloatExt", ["SOAP::SOAPFloat", XSD::QName.new(nil, "varFloatExt")]] 
     189  ] 
     190 
     191  attr_accessor :varStringExt 
     192  attr_accessor :varFloatExt 
     193 
     194  def xmlattr_attrStringExt 
     195    (@__xmlattr ||= {})[XSD::QName.new(nil, "attrStringExt")] 
     196  end 
     197 
     198  def xmlattr_attrStringExt=(value) 
     199    (@__xmlattr ||= {})[XSD::QName.new(nil, "attrStringExt")] = value 
     200  end 
     201 
     202  def initialize(varStringExt = nil, varFloatExt = nil) 
     203    @varStringExt = varStringExt 
     204    @varFloatExt = varFloatExt 
     205    @__xmlattr = {} 
     206  end 
     207end 
  • trunk/test/wsdl/ref/product.wsdl

    r1698 r1699  
    9090        </complexType> 
    9191      </element> 
     92 
     93      <complexType name="Document"> 
     94        <simpleContent> 
     95          <extension base="string"> 
     96            <attribute name="ID" type="xsd:string"/> 
     97          </extension> 
     98        </simpleContent> 
     99      </complexType> 
     100 
     101      <complexType name="DerivedChoice_BaseSimpleContent"> 
     102        <complexContent mixed="false"> 
     103          <extension base="tns:Document"> 
     104            <choice> 
     105              <element name="varStringExt" type="xsd:string"/> 
     106              <element name="varFloatExt" type="xsd:float"/> 
     107            </choice> 
     108            <attribute name="attrStringExt" type="xsd:string"/> 
     109          </extension> 
     110        </complexContent> 
     111      </complexType> 
    92112    </xsd:schema> 
    93113  </types>