массивы — Как добавить атрибут типа в запросе PHP SoapClient

Мне нужно использовать службу SOAP с использованием экземпляра SoapClient в PHP.

Выдает эту ошибку проверки:

+«ValidationError»: «cvc-type.2: определение типа не может быть
аннотация для элемента ns1: риск. «

Как мне добавить type атрибут для массива, например так (первая строка, определение типа):

<xs1:risk xsi:type="xs:Car">
<xs:base7>
<xs:base7code>00054030014</xs:base7code>
</xs:base7>
<xs:plate>8726CJR</xs:plate>
<xs:matriculationDate>2003-06-15</xs:matriculationDate>
<xs:purchaseDate>2003-06-15</xs:purchaseDate>
<xs:postalCode>03550</xs:postalCode>
<xs:town>SANT JOAN D'ALACANT</xs:town>
<xs:trailer>false</xs:trailer>
<xs:garageType>10</xs:garageType>
<xs:yearKilometers>28</xs:yearKilometers>
<xs:habitualDriver>
<xs1:identificationType>2</xs1:identificationType>
<xs1:identification>85858585E</xs1:identification>
<xs1:birthDate>1978-11-09</xs1:birthDate>
<xs1:gender>1</xs1:gender>
<xs1:personPermissionDate>1997-03-02</xs1:personPermissionDate>
<xs1:personExpeditionZone>1</xs1:personExpeditionZone>
<xs1:personMaritalStatus>3</xs1:personMaritalStatus>
</xs:habitualDriver>
<xs:owner>
<xs1:identificationType>2</xs1:identificationType>
<xs1:identification>85858585E</xs1:identification>
</xs:owner>
</xs1:risk>

0

Решение

Этот скрипт преобразует ваш 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>';
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector