不是有效的 AllXsd 值

Posted

技术标签:

【中文标题】不是有效的 AllXsd 值【英文标题】:not a valid AllXsd value 【发布时间】:2011-02-23 08:50:01 【问题描述】:

我从 Soap 客户端请求中得到了这个:

异常:SoapFault 异常: [soap:Client] 服务器无法 读取请求。 ---> 有错误 在 XML 文档 (2, 273) 中。 ---> 的 字符串 '2010-5-24' 无效 AllXsd 值。在 /path/filinet.php:21 堆栈跟踪:#0 [内部函数]: SoapClient->__call('SubIdDetailsByO...', 数组)#1 /path/filinet.php(21): SoapClient->SubIdDetailsByOfferId(Array) #2 main

好像我发送的值不正确,如何在 php 中的 AllXsd 中格式化我的值?

这是我的代码:

<?php       
$start = isset($_GET['start']) ? $_GET['start'] : date("Y-m-d");
$end = isset($_GET['end']) ? $_GET['end'] : date("Y-m-d");

//define parameter array
$param = array('userName'=>'user', 'password'=>'pass', 'startDate' => $start, 'endDate' => $end, 'promotionId' => '');

//Get wsdl path
$serverPath = "https://webservices.filinet.com/affiliate/reports.asmx?WSDL";

 //Declare Soap client
 $client = new SoapClient($serverPath);
 try 
        //make the call
        $result = $client->SubIdDetailsByOfferId($param);
        //If error found display error
        if(isset($fault))
        
            echo "Error: ". $fault;
        
        //If no error display response
        else
        
            //Used to display raw XML in the Web Browser
            header("Content-Type: text/xml;");
            //SubIdDetailsResult = XML results
            echo $result->SubIdDetailsByOfferIdResult;
        
    
    catch(SoapFault $ex) 
        echo "<b>Exception:</b> ". $ex;
    
unset($client);
?>

【问题讨论】:

【参考方案1】:

AllXsd 值看起来像这样的 IIRC

2010-05-24T18:13:00

【讨论】:

【参考方案2】:

问题在于 $start 或 $end 的日期格式。除了使用 $_GET 从查询字符串中获取数据并将其发送过来之外,您还需要进行一些完整性检查以确保日期与所需的格式匹配

2010-05-24T13:46:00

不要使用 date("Y-m-d") 尝试使用:

$startDate = date("Y-m-d") . 'T' . date("H:i:s");

【讨论】:

【参考方案3】:

您需要使用 ISO 8601 日期格式date('c', strtotime($my_date));

http://php.net/date

【讨论】:

【参考方案4】:
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// get the date
$startDate = date("Y-m-d") . 'T' . date("H:i:s");

【讨论】:

【参考方案5】:

切入正题并使用

date('c');

【讨论】:

以上是关于不是有效的 AllXsd 值的主要内容,如果未能解决你的问题,请参考以下文章

将 SHAP 值聚合到特征集是不是有效?

GetTimeZoneInformation 的返回值对动态 DST 区域是不是也有效?

带有 SelectMultiple 小部件的 MultipleChoiceField “值 [...] 不是有效选择。”

创建 XML 时如何有效地检查 NSDictionay 键是不是具有值

在 setState() 中增加状态对象值是不是有效?不克隆对象?

为啥 ColdFusion 认为值“7+”是一个有效的整数值,我如何验证它不是?