scalaxb требует отсутствующий тип
Я пытаюсь использовать scalaxb для создания веб-службы из двух файлов wsdl. Вот файлы: https://services.pwsdemo.com/WSDL/PwsDemo_creditcardtransactionservice.xml.
https://services.pwsdemo.com/WSDL/PwsDemo_creditcardmanagementservice.xml
Я загрузил его на свой локальный компьютер и выполнил следующую команду:$ scalaxb PwsDemo_creditcardmanagementservice.xml PwsDemo_creditcardtransactionservice.xml -p delta
Я получил ошибку:Referenced type {http://schemas.datacontract.org/2004/07/ThreeDelta.Web.Services.ECLinx.Definitions}ClientCredentials was not found.
У меня есть класс ClientCredentials в моем коде, это действительно просто:
class Halo_3Delta_Request_ClientCredentials
{
protected $ClientCode;
protected $UserName;
protected $Password;
public function __construct($clientCode, $username, $password)
{
$this->ClientCode = $clientCode;
$this->UserName = $username;
$this->Password = $password;
}
}
Что было бы хорошим способом предоставить недостающий тип?
Обновить:
Я нашел это определение типа, уже присутствующее в файлах wsdl:
<xs:complexType name="ClientCredentials">
<xs:sequence>
<xs:element minOccurs="0" name="ClientCode" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="Password" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Поэтому я думаю, что теперь вопрос заключается в том, как переставить эти файлы, чтобы они прошли проверку.
1 ответ
Ошибка только в структуре XML.
Вот два файла, переставленные так, чтобы их можно было проанализировать с помощью scalaxb: