I can’t figure out how to pass a complex type to a soap call. I thought
all you had to do was pass it as a hash, so I could do something like
this:
result = driver.GetArticle(‘Request’ => {‘ArticleId’ => ‘20061208’,
‘Email’ => ‘[email protected]’, ‘Password’ => ‘mypassword’})
Unfortunately I always get this error:
SOAP::Mapping::MappingError: nil not allowed: ArticleId
Here is the schema I am working with:
<xs:complexType name=“GetArticleRequestType”>
xs:sequence
<xs:element name=“ArticleId” type=“xs:string”/>
<xs:element name=“Email” type=“xs:string”/>
<xs:element name=“Password” type=“xs:string”/>
</xs:sequence>
</xs:complexType>
<xs:element name=“GetArticle” type=“tns:GetArticleType”/>
<xs:complexType name=“GetArticleType”>
xs:sequence
<xs:element minOccurs=“0” name=“Validate” type=“xs:string”/>
<xs:element minOccurs=“0” name=“XMLEscaping” type=“xs:string”/>
<xs:element maxOccurs=“unbounded” minOccurs=“0”
name=“Request” type=“tns:GetArticleRequestType”/>
<xs:element minOccurs=“0” name=“Shared”
type=“tns:GetArticleRequestType”/>
<xs:element minOccurs=“0” name=“SubscriptionId”
type=“xs:string”/>
</xs:sequence>
</xs:complexType>
Any help would be greatly appreciated