如何在 PHP 中使用 NuSoap 设置属性?

发布于 2024-11-25 08:45:12 字数 2518 浏览 2 评论 0原文

我正在与 nuSoap 合作构建一个肥皂服务器。 但我无法按照我想要的方式获得属性。

我想要作为返回值:

<return xsi:type="tns:Taxatie">
    <EmailAdres OptIn="1" xsi:type="tns:string">[email protected]</EmailAdres>
</return>

我得到:

<return xsi:type="tns:Taxatie">
    <EmailAdres OptIn="1" xsi:type="tns:EmailAdres">
        <EmailAdres xsi:type="xsd:string">[email protected]</EmailAdres>
    </EmailAdres>
</return>

有人知道我必须改变什么吗?

或者我应该如何设置数组?

这是我的测试代码:

<?php
require_once("nusoap.php");
$soapserver = new nusoap_server();
$soapserver->configureWSDL('thijs.test', 'urn:thijs.test');

$soapserver->wsdl->addComplexType(
    'Taxatie',
    'complexType',
    'struct',
    'all',
    '',
    array(
        'EmailAdres' => array('name' => 'EmailAdres', 'type' => 'tns:EmailAdres')
    )
);

$soapserver->wsdl->addComplexType(
    'EmailAdres',
    'simpleType',
    'struct',
    'all',
    '',
    array(
        "EmailAdres" => array('name' => 'EmailAdres', 'type' => 'xsd:string', 'minOccurs' => 0)
    ),
    array(
        'OptIn' => array('name' => 'OptIn', 'type' => 'xsd:boolean', 'use' => 'required')
    )
);

$soapserver->register('taxatie',                    // method name
    array(),          // input parameters
    array('return' => 'tns:Taxatie'),    // output parameters
    'urn:thijs.test',                         // namespace
    'urn:thijs.test#taxatie',                   // soapaction
    'rpc',                                    // style
    'encoded',                                // use
    'return something'        // documentation
);

class taxatie
{
    var $EmailAdres = null;

    function taxatie()
    {
        $this->EmailAdres = new emailadres();
    }
}

class emailadres
{
    var $EmailAdres = '[email protected]';
    var $OptIn = true;
}

function taxatie()
{
    return new taxatie();
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$soapserver->service($HTTP_RAW_POST_DATA);

提前致谢

I am working with nuSoap to build a soap server.
But i cant get the attributes the way i want.

I would like as return value:

<return xsi:type="tns:Taxatie">
    <EmailAdres OptIn="1" xsi:type="tns:string">[email protected]</EmailAdres>
</return>

And i get:

<return xsi:type="tns:Taxatie">
    <EmailAdres OptIn="1" xsi:type="tns:EmailAdres">
        <EmailAdres xsi:type="xsd:string">[email protected]</EmailAdres>
    </EmailAdres>
</return>

anyone know what i must change?

Or how I should set up the arrays?

This is my test code:

<?php
require_once("nusoap.php");
$soapserver = new nusoap_server();
$soapserver->configureWSDL('thijs.test', 'urn:thijs.test');

$soapserver->wsdl->addComplexType(
    'Taxatie',
    'complexType',
    'struct',
    'all',
    '',
    array(
        'EmailAdres' => array('name' => 'EmailAdres', 'type' => 'tns:EmailAdres')
    )
);

$soapserver->wsdl->addComplexType(
    'EmailAdres',
    'simpleType',
    'struct',
    'all',
    '',
    array(
        "EmailAdres" => array('name' => 'EmailAdres', 'type' => 'xsd:string', 'minOccurs' => 0)
    ),
    array(
        'OptIn' => array('name' => 'OptIn', 'type' => 'xsd:boolean', 'use' => 'required')
    )
);

$soapserver->register('taxatie',                    // method name
    array(),          // input parameters
    array('return' => 'tns:Taxatie'),    // output parameters
    'urn:thijs.test',                         // namespace
    'urn:thijs.test#taxatie',                   // soapaction
    'rpc',                                    // style
    'encoded',                                // use
    'return something'        // documentation
);

class taxatie
{
    var $EmailAdres = null;

    function taxatie()
    {
        $this->EmailAdres = new emailadres();
    }
}

class emailadres
{
    var $EmailAdres = '[email protected]';
    var $OptIn = true;
}

function taxatie()
{
    return new taxatie();
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$soapserver->service($HTTP_RAW_POST_DATA);

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流星番茄 2024-12-02 08:45:12

为什么不简单地返回一个数组而不是使用复杂类型?

例如

$resultarray['taxatie'] = array(
  'EmailAdres'  => $row["EmailAdres"], 
  'tagcount'    => $row["tagcount"], 
  'OptIn'       => $row["OptIn"]
);

Why not simply return an array instead of using complex type?

e.g

$resultarray['taxatie'] = array(
  'EmailAdres'  => $row["EmailAdres"], 
  'tagcount'    => $row["tagcount"], 
  'OptIn'       => $row["OptIn"]
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文