From f7ca8c7ac8718899c1ab36513aaf3853a4514816 Mon Sep 17 00:00:00 2001
From: wei <>
Date: Fri, 12 Jan 2007 05:53:43 +0000
Subject: Fixed a number of SOAP bugs.

---
 framework/3rdParty/WsdlGen/Wsdl.php          | 17 +++++++++--------
 framework/3rdParty/WsdlGen/WsdlMessage.php   |  4 ++--
 framework/3rdParty/WsdlGen/WsdlOperation.php | 14 +++++++-------
 3 files changed, 18 insertions(+), 17 deletions(-)

(limited to 'framework/3rdParty')

diff --git a/framework/3rdParty/WsdlGen/Wsdl.php b/framework/3rdParty/WsdlGen/Wsdl.php
index 4b94fbb4..1c754200 100644
--- a/framework/3rdParty/WsdlGen/Wsdl.php
+++ b/framework/3rdParty/WsdlGen/Wsdl.php
@@ -105,6 +105,7 @@ class Wsdl
                      xmlns:tns="'.$this->targetNamespace.'"
                      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+					 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                      xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"></definitions>';
 
 		$dom = new DOMDocument();
@@ -128,7 +129,7 @@ class Wsdl
 	public function addTypes(DomDocument $dom)
 	{
 		if (!count($this->types)) return;
-		$types = $dom->createElement('types');
+		$types = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:types');
 		$schema = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:schema');
 		$schema->setAttribute('targetNamespace', $this->targetNamespace);
 		foreach($this->types as $type => $elements)
@@ -139,10 +140,10 @@ class Wsdl
 			{
 				$complexContent = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:complexContent');
 				$restriction = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:restriction');
-				$restriction->setAttribute('base', 'SOAP-ENC:Array');
+				$restriction->setAttribute('base', 'soap-enc:Array');
 				$attribute = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:attribute');
-				$attribute->setAttribute('ref', "SOAP-ENC:arrayType");
-				$attribute->setAttribute('arrayType', 'tns:' . substr($type, 0, strlen($type) - 5) . '[]');
+				$attribute->setAttribute('ref', "soap-enc:arrayType");
+				$attribute->setAttribute('wsdl:arrayType', 'tns:' . substr($type, 0, strlen($type) - 5) . '[]');
 				$restriction->appendChild($attribute);
 				$complexContent->appendChild($restriction);
 				$complexType->appendChild($complexContent);
@@ -183,7 +184,7 @@ class Wsdl
 	 */
 	protected function addPortTypes(DOMDocument $dom)
 	{
-		$portType = $dom->createElement('portType');
+		$portType = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:portType');
 		$portType->setAttribute('name', $this->serviceName.'PortType');
 
 		$this->definitions->appendChild($portType);
@@ -199,7 +200,7 @@ class Wsdl
 	 */
 	protected function addBindings(DOMDocument $dom)
 	{
-		$binding = $dom->createElement('binding');
+		$binding = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:binding');
 		$binding->setAttribute('name', $this->serviceName.'Binding');
 		$binding->setAttribute('type', 'tns:'.$this->serviceName.'PortType');
 
@@ -222,10 +223,10 @@ class Wsdl
 	 */
 	protected function addService(DomDocument $dom)
 	{
-		$service = $dom->createElement('service');
+		$service = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:service');
 		$service->setAttribute('name', $this->serviceName.'Service');
 
-		$port = $dom->createElement('port');
+		$port = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:port');
 		$port->setAttribute('name', $this->serviceName.'Port');
 		$port->setAttribute('binding', 'tns:'.$this->serviceName.'Binding');
 
diff --git a/framework/3rdParty/WsdlGen/WsdlMessage.php b/framework/3rdParty/WsdlGen/WsdlMessage.php
index 74165dae..4d044dd0 100644
--- a/framework/3rdParty/WsdlGen/WsdlMessage.php
+++ b/framework/3rdParty/WsdlGen/WsdlMessage.php
@@ -62,12 +62,12 @@ class WsdlMessage
 	 */
 	public function getMessageElement(DOMDocument $dom)
 	{
-		$message = $dom->createElement('message');
+		$message = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:message');
 		$message->setAttribute('name', $this->name);
 		
 		foreach ($this->parts as $part) {
 			if (isset($part['name'])) {
-				$partElement = $dom->createElement('part');
+				$partElement = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:part');
 				$partElement->setAttribute('name', $part['name']);
 				$partElement->setAttribute('type', $part['type']);
 				$message->appendChild($partElement);
diff --git a/framework/3rdParty/WsdlGen/WsdlOperation.php b/framework/3rdParty/WsdlGen/WsdlOperation.php
index ae561a16..20a10db8 100644
--- a/framework/3rdParty/WsdlGen/WsdlOperation.php
+++ b/framework/3rdParty/WsdlGen/WsdlOperation.php
@@ -81,13 +81,13 @@ class WsdlOperation
 	 */
 	public function getPortOperation(DomDocument $dom)
 	{
-		$operation = $dom->createElement('operation');
+		$operation = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:operation');
 		$operation->setAttribute('name', $this->operationName);
 		
-		$documentation = $dom->createElement('documentation', htmlentities($this->documentation));
-		$input = $dom->createElement('input');
+		$documentation = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:documentation', htmlentities($this->documentation));
+		$input = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:input');
 		$input->setAttribute('message', 'tns:'.$this->inputMessage->getName());
-		$output = $dom->createElement('output');
+		$output = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:output');
 		$output->setAttribute('message', 'tns:'.$this->outputMessage->getName());
 		
 		$operation->appendChild($documentation);
@@ -107,7 +107,7 @@ class WsdlOperation
 	 */
 	public function getBindingOperation(DomDocument $dom, $namespace, $style='rpc')
 	{
-		$operation = $dom->createElement('operation');
+		$operation = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:operation');
 		$operation->setAttribute('name', $this->operationName);
 		
 		$soapOperation = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/soap/', 'soap:operation');
@@ -115,8 +115,8 @@ class WsdlOperation
 		$soapOperation->setAttribute('soapAction', $namespace.'#'.$method);
 		$soapOperation->setAttribute('style', $style);
 		
-		$input = $dom->createElement('input');
-		$output = $dom->createElement('output');
+		$input = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:input');
+		$output = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/', 'wsdl:output');
 		
 		$soapBody = $dom->createElementNS('http://schemas.xmlsoap.org/wsdl/soap/', 'soap:body');
 		$soapBody->setAttribute('use', 'encoded');
-- 
cgit v1.2.3