NuSoap PHP一个非空值

时间:2014-11-05 17:44:56

标签: web-services soapui nusoap

这是一个非常独特的问题。所以我使用NuSoap与肥皂服务进行通信。一切都很好。我没有错误,但这里是奇怪的地方。该服务正在通过Soap UI正确提交,但不是我的代码:(

有一个XML字段:

<xs:element name="NameX" default="Yes" type="ns0:NameXType" minOccurs="0"/>

这是WSDL中的定义

<xs:simpleType name="NameXType">
  <xs:restriction base="xs:string">
    <xs:enumeration value=""/>
    <xs:enumeration value="Yes"/>
  </xs:restriction>
</xs:simpleType>

我假设上面的XML意味着它可以取值为“是”或“”(没有/ null)。

现在在我的代码中我这样做:

$result = $client->call('functionName', 
          array(
            'API_Status' => 'None',
              'AuthenticationInfo' => array(
                'userName' => $username,
                'password' => $password
              ),
            'Category' => 'Application',

            <!-- Problem Here -->
            'NameX' => null,
            <!-- Problem Here -->

            'Customer_DB_ID' => 'XXX',
            'Details' => 'External User Web Request',
            'Group' => 'NHLBI-CBI-WEB_Support',
            'Impact' => '4-Minor/Localize',
            'Item' => $classify,
            'Record_Type' => 'Support Request',
            'Short_Description' => $subject,
            'Status' => 'New',
            'Type' => 'Website',
            'Urgency' => '3-Medium',
            'Work_Log' => $message,
          ), $namespace = 'urn:Service', $soapAction = 'localhost/soapAction', $style = 'document', $use = 'literal' );

所以说,问题在于,在我正在开发的表单的所有提交中,此NameX字段作为默认答案“是”继续进入。我正式说我迷路了,不知道怎么办。

现在很奇怪,这个NameX字段是一个测试字段。如果是,则只有应用程序的管理员才能看到提交。如果为null,则所有用户都可以看到它。

糟糕的是,我被指责为这个烂摊子。我不知道下一步该做什么。

以下是将NameX字段成功提交为“”的输出应该如何显示。:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Service">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:Create>
         <urn:AuthenticationInfo>
            <urn:userName>username</urn:userName>
            <urn:password>password</urn:password>
         </urn:AuthenticationInfo>
         <urn:Category>Application</urn:Category>
         <!--Optional:-->
         <urn:Customer_ID>12345</urn:Customer_ID>
         <urn:Details>Test</urn:Details>
         <urn:Group>Support</urn:Group>
         <urn:Impact>None</urn:Impact>
         <urn:Item>Test</urn:Item>
         <urn:Record_Type>Support Request</urn:Record_Type>
         <urn:Short_Description>Testing the short description</urn:Short_Description>
         <urn:Status>New</urn:Status>

         <!--THis is the field giving me issues:-->
         <ns0:NameX/>
         <!--THis is the field giving me issues:-->

         <urn:Type>Website</urn:Type>
         <urn:Urgency>3-Medium</urn:Urgency>
         <urn:Work_Log>Test work notes...Hello Testing...New</urn:Work_Log>
      </urn:Create>
   </soapenv:Body>
</soapenv:Envelope>

感谢任何帮助。谢谢!我希望我没有遗漏任何东西。如果您需要更多代码,我可以帮您解决。

1 个答案:

答案 0 :(得分:0)

所以我想出了修复!!!!!

我没有从URL调用,而是在本地保存了wsdl并删除了给我提问的字段。现在应用程序正在运行!!

我知道这是一个奇怪的问题,但我想我会尝试一下......