PHP SoapServer を使用して、wsdl で XSD 要素を動作させることができないようです。私が読んだすべてによると、他のいくつかの企業が「緩い型付き」wsdlsをどのように実装しているかを見ています。レコード情報を取得および送信するには、以下で十分です。
<complexType name="Record">
<sequence>
<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</sequence>
</complexType>
残念ながら、php SoapServer クラスは、厳密に定義されていない要素を破棄しているようです。私が取得するのは、作成リクエストで空のレコードであり、検索/フィルターリクエストで空のレコードを送信しますが、フィールドは SoapServer 処理の前に明らかにそこにあります。
このように欠落しているフィールドを具体的に定義すると...
<complexType name="Record">
<sequence>
<element name="FirstName" type="xsd:string" minOccurs="0"/>
<element name="LastName" type="xsd:string" minOccurs="0"/>
<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</sequence>
</complexType>
その後、すべてがうまくいき、それらのフィールドがクライアントとの間で受け渡されます。何か不足していますか?すべての名前空間オプション ##any、##local などと processContents オプションを試しました。スキーマに詳細が記載されているかどうかに関係なく、レコードの追加フィールドを送信/返すことができるようにしたいだけです。