WS 開発のコンテキストでは、次のスキーマを使用します。
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Apporteurs">
<xs:complexType name="namedValue_t">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Prospect">
<xs:sequence>
<xs:element name="values" type="namedValue_t" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="origine" type="xs:string" />
<xs:attribute name="prenom" type="xs:string" />
<xs:attribute name="nom" type="xs:string" />
<xs:attribute name="departement" type="xs:int" />
</xs:complexType>
</xs:schema>
このスキーマの有効な XML は次のとおりです。
<?xml version="1.0"?>
<prospect
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="WS.xsd"
origine = "toto"
prenom = "Aubin"
nom = "MAHE"
departement = "33">
<values name="Prénom">Aubin</values>
<values name="Nom">MAHE</values>
</prospect>
この XML 値を PHP リテラルにコーディングする方法は?
次のことを試してみましたが、サーバーがこのデータで構築された WS 要求を処理できないため、よくわかりません。
$prospect = array(
'origine' => 'test-origine',
'prenom' => 'Aubin',
'nom' => 'MAHE',
'departement' => 33,
'values' => array());
$prospect['values'][] = array( 'name' => 'Prénom', 'value' => 'Aubin' );
$prospect['values'][] = array( 'name' => 'Nom' , 'value' => 'MAHE' );
最後の 2 行がコメント化されると、リクエストは正常に実行されます。