WSDLアクセッサ
Zend_Soap_WsdlコンストラクタZend_Soap_Wsdlコンストラクタは3つのパラメータをとります:
addMessage()メソッドaddMessage($name, $parts)メソッドは、新しいメッセージの説明をWSDL文書に加えます。 (/definitions/message 要素) Zend_Soap_ServerおよびZend_Soap_Clientの機能に関して、 各々のメッセージはメソッドと対応します。
型マッピングの管理は addTypes()や addTypes()、 および addComplexType()メソッド(下記参照)を用いて実行されます。
addPortType()メソッドaddPortType($name)メソッドは指定されたポートタイプ名で WSDL文書 (/definitions/portType) に新規のポートタイプを追加します。 Zend_Soap_Serverの実装に関して定義されるウェブサービスメソッドのセットと結びつきます。 詳しくはhttp://www.w3.org/TR/wsdl#_porttypesをご覧ください。 addPortOperation()メソッドaddPortOperation($portType, $name, $input = false, $output = false, $fault = false) メソッドは、新しいポート・オペレーションをWSDL文書 (/definitions/portType/operation) の 指定されたポート・タイプに加えます。 各々のポート・オペレーションはZend_Soap_Server実装では、 クラス・メソッド(ウェブサービスがクラスに基づくならば) または関数(ウェブサービスがメソッドセットに基づくならば)に対応します。
それも、指定されたパラメータ、
詳しくはhttp://www.w3.org/TR/wsdl#_request-responseをご覧ください。 addBinding()メソッドaddBinding($name, $portType)メソッドは、新しいバインディングをWSDL文書 (/definitions/binding) に加えます。 'binding' WSDL文書ノードでは、 メッセージ形式と特定のportTypeによって定義されるオペレーションとメッセージに関するプロトコル詳細を定義します。 (http://www.w3.org/TR/wsdl#_bindingsをご覧ください) メソッドはバインディング・ノードをつくって、それを返します。 それから、実際のデータで満たすために使われるかもしれません。
Zend_Soap_Serverの実装ではWSDL文書の 'binding' 要素のために addBindingOperation()メソッドaddBindingOperation($binding, $name, $input = false, $output = false, $fault = false) メソッドはバインディング要素 (/definitions/binding/operation) に指定された名前で操作を追加します。
指定されたパラメータに従って、
入力・出力・false値を持つ 'operation' 要素を加えるために、
入力( Zend_Soap_Serverの実装で、 'soap:body' 要素を '<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> として定義している入出力エントリで、 ウェブサービス・メソッドごとに対応するバインディング・エントリを加えます。 詳しくはhttp://www.w3.org/TR/wsdl#_bindingsをご覧ください。 addSoapBinding()メソッドaddSoapBinding($binding, $style = 'document', $transport = 'http://schemas.xmlsoap.org/soap/http') メソッドは、指定されたスタイルとトランスポート(Zend_Soap_Serverの実装では、HTTPについてRPCスタイルを使用します)で SOAPバインディング項目 ('soap:binding') をバインディング要素(それは、あるポートタイプにすでにリンクされます)に追加します。 '/definitions/binding/soap:binding' 要素は、 バインディングがSOAPプロトコル形式に束縛されることを示すのに用いられます。 詳しくはhttp://www.w3.org/TR/wsdl#_bindingsをご覧ください。 addSoapOperation()メソッドaddSoapOperation($binding, $soap_action)メソッドは、 SOAP操作項目 ('soap:operation') を指定されたアクションでバインディング要素に加えます。 'soap:operation' 要素の 'style' 属性は、(RPC指向か文書指向の)プログラミング・モデルが addSoapBinding()メソッドを使用しているかもしれないので使われません。 '/definitions/binding/soap:operation' 要素の 'soapAction' 属性は、 この操作のためにSOAPActionヘッダの値を指定します。 この属性はHTTPを通じたSOAPで必須です。 他のトランスポートのために指定してはいけません。
Zend_Soap_Serverの実装では、SOAP操作アクション名のために
詳しくはhttp://www.w3.org/TR/wsdl#_soap:operationをご覧ください。 addService()メソッドaddService($name, $port_name, $binding, $location)メソッドは 指定したウェブサービス名やポートタイプ及びバインディング、ロケーションとともに WSDL文書に '/definitions/service' 要素を追加します。 WSDL 1.1では、サービスごとにいくつかのポートタイプ(操作のセット)を持つことができます。 この能力はZend_Soap_Serverの実装では使われず、 Zend_Soap_Wsdlクラスでサポートされません。 Zend_Soap_Serverの実装に使用します:
$name がクラスを使うウェブサービス定義モードのためのクラス名と
関数のセットを使うウェブサービス定義モードのためのスクリプト名前であるところ。
詳しくはhttp://www.w3.org/TR/wsdl#_servicesをご覧ください。 型のマッピングZend_Soap WSDLアクセッサの実装では、PHPとSOAP型の間で以下の型マッピングを使用します:
xsd: が "http://www.w3.org/2001/XMLSchema" ネームスペースであるところでは、
soap-enc: は "http://schemas.xmlsoap.org/soap/encoding/" ネームスペースで、
tns: はサービスのための "target namespace" です。
型情報の取得getType($type)メソッドは、指定された PHP 型をマップするために用いられるかもしれません:
複雑な型の情報を追加するaddComplexType($type)メソッドは、 複雑な型(PHPクラス)をWSDL文書に追加するために使われます。 メソッド・パラメータの対応する複雑な型を追加するか、型を返すために、 getType()メソッドによってそれは自動的に使われます。
その検出とビルドのアルゴリズムは、複雑な型に対して現在実装中の検出ストラテジーに基づきます。
文字列でのクラス名指定、
または、コンストラクタの第3パラメータとしてZend_Soap_Wsdl_Strategy_Interfaceを実装したインスタンス、
または、Zend_Soap_Wsdlの
addComplexType()メソッドは、指定されたPHPクラスの名前で、 記述された複雑な型ごとに '/definitions/types/xsd:schema/xsd:complexType' 要素を生成します。 クラスのプロパティは、プロパティをWSDL記述にインクルードしておくために、記述されたPHP型でdocblock部を持っていなければなりません。 addComplexType()は型がWSDL文書の型セクションの範囲内ですでに記述されるかどうか調べます。 このメソッドが型定義部で2回以上再帰で呼ばれると、それは重複を防ぎます。 詳しくはhttp://www.w3.org/TR/wsdl#_typesをご覧ください。 addDocumentation()メソッドaddDocumentation($input_node, $documentation)メソッドは、 オプションの 'wsdl:document' 要素を用いて人間の読める文書を追加します。 '/definitions/binding/soap:binding' 要素は、 バインディングがSOAPプロトコル構成にバインドされることを示すために使われます。 詳しくはhttp://www.w3.org/TR/wsdl#_documentationをご覧ください。 確定したWSDL文書を取得toXML()や toDomDocument()および dump($filename = false)メソッドは、 WSDL文書をXMLやDOMの構造もしくはファイルとして取得するために使われるかもしれません。 [1]はスクリプトの
()
として定義されます。
[3]
デフォルトで、は複雑な型のための検出アルゴリズムとして
クラスで生成されます。
AutoDiscoverコンストラクタの最初のパラメータは、
を実装した、
どんな複雑な型ストラテジーでも、クラスの名前を持つ文字列でもとります。
との後方互換性のために、
ブール変数は、以下の方法で解析されます:
もし TRUE なら、、
もし FALSE なら、。
|