如何在PHP SoapClient请求中添加类型属性

如何在PHP SoapClient请求中添加类型属性,php,arrays,xml,soap,xsd,Php,Arrays,Xml,Soap,Xsd,我需要使用PHP中的SoapClient实例来使用SOAP服务 它抛出以下验证错误: +“ValidationError”:“cvc类型。2:类型定义不能为空。” 元素ns1的摘要:风险。” 如何将type属性添加到数组中,如下所示(第一行,类型定义): 00054030014 8726CJR 2003-06-15 2003-06-15 03550 圣琼·德拉坎特 假的 10 28 2. 85E 1978-11-09 1. 1997-03-02 1. 3. 2. 85E 此脚本将xml文件转换

我需要使用PHP中的SoapClient实例来使用SOAP服务

它抛出以下验证错误:

+“ValidationError”:“cvc类型。2:类型定义不能为空。” 元素ns1的摘要:风险。”

如何将
type
属性添加到数组中,如下所示(第一行,类型定义):


00054030014
8726CJR
2003-06-15
2003-06-15
03550
圣琼·德拉坎特
假的
10
28
2.
85E
1978-11-09
1.
1997-03-02
1.
3.
2.
85E

此脚本将xml文件转换为数组

class DaneParser 
 {
    public $arrayAttributes = array();
    public $attrName;

    public function __construct($xml) 
    {
        $this->parser = xml_parser_create();
        xml_set_object($this->parser, $this);
        xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
        xml_set_element_handler($this->parser, "startElement", "endElement");
        xml_set_character_data_handler($this->parser, "characterData");
        xml_parse($this->parser, $xml);
    }

    function startElement($parser, $name, $attributes) 
    {
         $name = explode(':',$name);
         $this->attrName = $name[1];
    }


    function endElement($parser, $name) 
    {

    }

    function characterData($parser, $data) 
    {
        if(!isset($this->arrayAttributes[$this->attrName]))
            $this->arrayAttributes[$this->attrName] = $data;
    }

}//END class `enter code here`

//Open xml file
$xml = file_get_contents("xml1.xml");   

//run sax
$pp = new DaneParser($xml);

//Print array
echo '<pre>';
print_r($pp->arrayAttributes);
echo '</pre>';
class-DaneParser
{
public$arrayAttributes=array();
公共名称;
公共函数构造($xml)
{
$this->parser=xml\u parser\u create();
xml\u set\u对象($this->parser,$this);
xml\u parser\u set\u option($this->parser,xml\u option\u CASE\u FOLDING,0);
xml_集合_元素_处理程序($this->parser,“startElement”,“endElement”);
xml\u set\u character\u data\u处理程序($this->parser,“characterData”);
xml_parse($this->parser,$xml);
}
函数startElement($parser、$name、$attributes)
{
$name=分解(“:”,$name);
$this->attrName=$name[1];
}
函数endElement($parser,$name)
{
}
函数characterData($parser,$data)
{
如果(!isset($this->arrayAttributes[$this->attrName]))
$this->arrayAttributes[$this->attrName]=$data;
}
}//END class`在此处输入代码`
//打开xml文件
$xml=文件获取内容(“xml1.xml”);
//运行sax
$pp=新的DaneParser($xml);
//打印阵列
回声';
打印($pp->arrayAttributes);
回声';

你可以操作DOM元素,你能澄清你的问题吗?“像这样”像什么?对不起。我会澄清。。。我需要构造一个带有属性的数组(这很重要,如代码的第一行所示)。如果不可能,另一种方法是构造xml,然后转换为数组。。。服务器端是一个WSDL。欢迎任何帮助,谢谢!
class DaneParser 
 {
    public $arrayAttributes = array();
    public $attrName;

    public function __construct($xml) 
    {
        $this->parser = xml_parser_create();
        xml_set_object($this->parser, $this);
        xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
        xml_set_element_handler($this->parser, "startElement", "endElement");
        xml_set_character_data_handler($this->parser, "characterData");
        xml_parse($this->parser, $xml);
    }

    function startElement($parser, $name, $attributes) 
    {
         $name = explode(':',$name);
         $this->attrName = $name[1];
    }


    function endElement($parser, $name) 
    {

    }

    function characterData($parser, $data) 
    {
        if(!isset($this->arrayAttributes[$this->attrName]))
            $this->arrayAttributes[$this->attrName] = $data;
    }

}//END class `enter code here`

//Open xml file
$xml = file_get_contents("xml1.xml");   

//run sax
$pp = new DaneParser($xml);

//Print array
echo '<pre>';
print_r($pp->arrayAttributes);
echo '</pre>';