Inheritance diagram for nusoap_base:Public Member Functions | |
| debug ($string) | |
| adds debug data to the class level debug string | |
| expandEntities ($val) | |
| expands entities, e.g. | |
| getError () | |
| returns error string if present | |
| setError ($str) | |
| sets error string | |
| isArraySimpleOrStruct ($val) | |
| detect if array is a simple array or a struct (associative array) | |
| serialize_val ($val, $name=false, $type=false, $name_ns=false, $type_ns=false, $attributes=false, $use='encoded') | |
| serializes PHP values in accordance w/ section 5. | |
| serializeEnvelope ($body, $headers=false, $namespaces=array(), $style='rpc', $use='encoded') | |
| serialize message | |
| formatDump ($str) | |
| contractQname ($qname) | |
| contracts a qualified name | |
| expandQname ($qname) | |
| expands a qualified name | |
| getLocalPart ($str) | |
| returns the local part of a prefixed string returns the original string, if not prefixed | |
| getPrefix ($str) | |
| returns the prefix part of a prefixed string returns false, if not prefixed | |
| getNamespaceFromPrefix ($prefix) | |
| pass it a prefix, it returns a namespace returns false if no namespace registered with the given prefix | |
| getPrefixFromNamespace ($ns) | |
| returns the prefix for a given namespace (or prefix) or false if no prefixes registered for the given namespace | |
| varDump ($data) | |
| debug ($string) | |
| adds debug data to the class level debug string | |
| expandEntities ($val) | |
| expands entities, e.g. | |
| getError () | |
| returns error string if present | |
| setError ($str) | |
| sets error string | |
| isArraySimpleOrStruct ($val) | |
| detect if array is a simple array or a struct (associative array) | |
| serialize_val ($val, $name=false, $type=false, $name_ns=false, $type_ns=false, $attributes=false, $use='encoded') | |
| serializes PHP values in accordance w/ section 5. | |
| serializeEnvelope ($body, $headers=false, $namespaces=array(), $style='rpc', $use='encoded') | |
| serialize message | |
| formatDump ($str) | |
| contractQname ($qname) | |
| contracts a qualified name | |
| expandQname ($qname) | |
| expands a qualified name | |
| getLocalPart ($str) | |
| returns the local part of a prefixed string returns the original string, if not prefixed | |
| getPrefix ($str) | |
| returns the prefix part of a prefixed string returns false, if not prefixed | |
| getNamespaceFromPrefix ($prefix) | |
| pass it a prefix, it returns a namespace returns false if no namespace registered with the given prefix | |
| getPrefixFromNamespace ($ns) | |
| returns the prefix for a given namespace (or prefix) or false if no prefixes registered for the given namespace | |
| varDump ($data) | |
Data Fields | |
| $title = 'NuSOAP' | |
| $version = '0.6.7' | |
| $revision = '$Revision: 6559 $' | |
| $error_str = false | |
| $debug_str = '' | |
| $charencoding = true | |
| $XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema' | |
| $soap_defencoding = 'ISO-8859-1' | |
| $namespaces | |
| $usedNamespaces = array() | |
| $typemap | |
| $xmlEntities | |
public
public
Definition at line 61 of file class.nusoap_base.php.
| nusoap_base::contractQname | ( | $ | qname | ) |
contracts a qualified name
| string | $string qname |
Definition at line 458 of file class.nusoap_base.php.
References getPrefixFromNamespace().
{
// get element namespace
//$this->xdebug("Contract $qname");
if (strrpos($qname, ':')) {
// get unqualified name
$name = substr($qname, strrpos($qname, ':') + 1);
// get ns
$ns = substr($qname, 0, strrpos($qname, ':'));
$p = $this->getPrefixFromNamespace($ns);
if ($p) {
return $p . ':' . $name;
}
return $qname;
} else {
return $qname;
}
}
Here is the call graph for this function:| nusoap_base::contractQname | ( | $ | qname | ) |
contracts a qualified name
| string | $string qname |
Definition at line 458 of file nusoap.php.
References getPrefixFromNamespace().
{
// get element namespace
//$this->xdebug("Contract $qname");
if (strrpos($qname, ':')) {
// get unqualified name
$name = substr($qname, strrpos($qname, ':') + 1);
// get ns
$ns = substr($qname, 0, strrpos($qname, ':'));
$p = $this->getPrefixFromNamespace($ns);
if ($p) {
return $p . ':' . $name;
}
return $qname;
} else {
return $qname;
}
}
Here is the call graph for this function:| nusoap_base::debug | ( | $ | string | ) |
adds debug data to the class level debug string
| string | $string debug data private |
Definition at line 144 of file class.nusoap_base.php.
Referenced by soap_parser::buildVal(), soap_client::call(), soap_transport_http::connect(), soap_transport_http::decodeChunked(), soapclientmime::getHTTPBody(), soap_client::getOperationData(), soap_transport_http::getResponse(), soap_server::invoke_method(), soap_server::parse_http_headers(), soap_server::parse_request(), XMLSchema::parseFile(), soapclientmime::parseResponse(), soap_client::parseResponse(), XMLSchema::parseString(), wsdl::parseWSDL(), soap_client::send(), soap_transport_http::send(), soap_server::send_response(), soap_transport_http::sendRequest(), soap_server::serialize_return(), serialize_val(), wsdl::serializeParameters(), wsdl::serializeRPCParameters(), wsdl::serializeType(), soap_transport_http::setCredentials(), soap_client::soap_client(), soap_parser::soap_parser(), soap_server::soap_server(), soap_transport_http::soap_transport_http(), wsdl::start_element(), soap_parser::start_element(), wsdl::wsdl(), XMLSchema::xdebug(), and XMLSchema::XMLSchema().
{
$this->debug_str .= get_class($this).": $string\n";
}
Here is the caller graph for this function:| nusoap_base::debug | ( | $ | string | ) |
adds debug data to the class level debug string
| string | $string debug data private |
Definition at line 144 of file nusoap.php.
{
$this->debug_str .= get_class($this).": $string\n";
}
| nusoap_base::expandEntities | ( | $ | val | ) |
expands entities, e.g.
changes '<' to '<'.
| string | $val The string in which to expand entities. private |
Definition at line 154 of file class.nusoap_base.php.
Referenced by serialize_val(), and wsdl::serializeType().
{
if ($this->charencoding) {
$val = str_replace('&', '&', $val);
$val = str_replace("'", ''', $val);
$val = str_replace('"', '"', $val);
$val = str_replace('<', '<', $val);
$val = str_replace('>', '>', $val);
}
return $val;
}
Here is the caller graph for this function:| nusoap_base::expandEntities | ( | $ | val | ) |
expands entities, e.g.
changes '<' to '<'.
| string | $val The string in which to expand entities. private |
Definition at line 154 of file nusoap.php.
{
if ($this->charencoding) {
$val = str_replace('&', '&', $val);
$val = str_replace("'", ''', $val);
$val = str_replace('"', '"', $val);
$val = str_replace('<', '<', $val);
$val = str_replace('>', '>', $val);
}
return $val;
}
| nusoap_base::expandQname | ( | $ | qname | ) |
expands a qualified name
| string | $string qname |
Definition at line 483 of file class.nusoap_base.php.
Referenced by wsdl::addComplexType(), wsdl::addSimpleType(), XMLSchema::schemaStartElement(), and wsdl::start_element().
{
// get element prefix
if(strpos($qname,':') && !ereg('^http://',$qname)){
// get unqualified name
$name = substr(strstr($qname,':'),1);
// get ns prefix
$prefix = substr($qname,0,strpos($qname,':'));
if(isset($this->namespaces[$prefix])){
return $this->namespaces[$prefix].':'.$name;
} else {
return $qname;
}
} else {
return $qname;
}
}
Here is the caller graph for this function:| nusoap_base::expandQname | ( | $ | qname | ) |
expands a qualified name
| string | $string qname |
Definition at line 483 of file nusoap.php.
{
// get element prefix
if(strpos($qname,':') && !ereg('^http://',$qname)){
// get unqualified name
$name = substr(strstr($qname,':'),1);
// get ns prefix
$prefix = substr($qname,0,strpos($qname,':'));
if(isset($this->namespaces[$prefix])){
return $this->namespaces[$prefix].':'.$name;
} else {
return $qname;
}
} else {
return $qname;
}
}
| nusoap_base::formatDump | ( | $ | str | ) |
Definition at line 446 of file class.nusoap_base.php.
{
$str = htmlspecialchars($str);
return nl2br($str);
}
| nusoap_base::formatDump | ( | $ | str | ) |
Definition at line 446 of file nusoap.php.
{
$str = htmlspecialchars($str);
return nl2br($str);
}
| nusoap_base::getError | ( | ) |
returns error string if present
Definition at line 171 of file nusoap.php.
{
if($this->error_str != ''){
return $this->error_str;
}
return false;
}
| nusoap_base::getError | ( | ) |
returns error string if present
Definition at line 171 of file class.nusoap_base.php.
Referenced by soap_client::call(), wsdl::parseWSDL(), and soap_client::send().
{
if($this->error_str != ''){
return $this->error_str;
}
return false;
}
Here is the caller graph for this function:| nusoap_base::getLocalPart | ( | $ | str | ) |
returns the local part of a prefixed string returns the original string, if not prefixed
| string |
Definition at line 508 of file class.nusoap_base.php.
Referenced by wsdl::addOperation(), XMLSchema::schemaStartElement(), wsdl::serialize(), wsdl::serializeType(), wsdl::start_element(), and soap_parser::start_element().
{
if($sstr = strrchr($str,':')){
// get unqualified name
return substr( $sstr, 1 );
} else {
return $str;
}
}
Here is the caller graph for this function:| nusoap_base::getLocalPart | ( | $ | str | ) |
returns the local part of a prefixed string returns the original string, if not prefixed
| string |
Definition at line 508 of file nusoap.php.
{
if($sstr = strrchr($str,':')){
// get unqualified name
return substr( $sstr, 1 );
} else {
return $str;
}
}
| nusoap_base::getNamespaceFromPrefix | ( | $ | prefix | ) |
pass it a prefix, it returns a namespace returns false if no namespace registered with the given prefix
| string |
Definition at line 541 of file class.nusoap_base.php.
Referenced by wsdl::addOperation(), XMLSchema::schemaStartElement(), and wsdl::serializeType().
{
if (isset($this->namespaces[$prefix])) {
return $this->namespaces[$prefix];
}
//$this->setError("No namespace registered for prefix '$prefix'");
return false;
}
Here is the caller graph for this function:| nusoap_base::getNamespaceFromPrefix | ( | $ | prefix | ) |
pass it a prefix, it returns a namespace returns false if no namespace registered with the given prefix
| string |
Definition at line 541 of file nusoap.php.
{
if (isset($this->namespaces[$prefix])) {
return $this->namespaces[$prefix];
}
//$this->setError("No namespace registered for prefix '$prefix'");
return false;
}
| nusoap_base::getPrefix | ( | $ | str | ) |
returns the prefix part of a prefixed string returns false, if not prefixed
| string |
Definition at line 525 of file nusoap.php.
References $pos.
| nusoap_base::getPrefix | ( | $ | str | ) |
returns the prefix part of a prefixed string returns false, if not prefixed
| string |
Definition at line 525 of file class.nusoap_base.php.
References $pos.
Referenced by wsdl::addOperation(), XMLSchema::schemaStartElement(), wsdl::serialize(), wsdl::serializeType(), and soap_parser::start_element().
Here is the caller graph for this function:| nusoap_base::getPrefixFromNamespace | ( | $ | ns | ) |
returns the prefix for a given namespace (or prefix) or false if no prefixes registered for the given namespace
| string |
Definition at line 557 of file nusoap.php.
{
foreach ($this->namespaces as $p => $n) {
if ($ns == $n || $ns == $p) {
$this->usedNamespaces[$p] = $n;
return $p;
}
}
return false;
}
| nusoap_base::getPrefixFromNamespace | ( | $ | ns | ) |
returns the prefix for a given namespace (or prefix) or false if no prefixes registered for the given namespace
| string |
Definition at line 557 of file class.nusoap_base.php.
Referenced by contractQname(), XMLSchema::schemaStartElement(), wsdl::serialize(), XMLSchema::serializeSchema(), wsdl::serializeType(), and wsdl::start_element().
{
foreach ($this->namespaces as $p => $n) {
if ($ns == $n || $ns == $p) {
$this->usedNamespaces[$p] = $n;
return $p;
}
}
return false;
}
Here is the caller graph for this function:| nusoap_base::isArraySimpleOrStruct | ( | $ | val | ) |
detect if array is a simple array or a struct (associative array)
| $val | The PHP array |
Definition at line 195 of file class.nusoap_base.php.
Referenced by serialize_val(), wsdl::serializeParameters(), wsdl::serializeRPCParameters(), and wsdl::serializeType().
{
$keyList = array_keys($val);
foreach ($keyList as $keyListValue) {
if (!is_int($keyListValue)) {
return 'arrayStruct';
}
}
return 'arraySimple';
}
Here is the caller graph for this function:| nusoap_base::isArraySimpleOrStruct | ( | $ | val | ) |
detect if array is a simple array or a struct (associative array)
| $val | The PHP array |
Definition at line 195 of file nusoap.php.
{
$keyList = array_keys($val);
foreach ($keyList as $keyListValue) {
if (!is_int($keyListValue)) {
return 'arrayStruct';
}
}
return 'arraySimple';
}
| nusoap_base::serialize_val | ( | $ | val, | |
| $ | name = false, |
|||
| $ | type = false, |
|||
| $ | name_ns = false, |
|||
| $ | type_ns = false, |
|||
| $ | attributes = false, |
|||
| $ | use = 'encoded' | |||
| ) |
serializes PHP values in accordance w/ section 5.
Type information is not serialized if $use == 'literal'.
Definition at line 212 of file nusoap.php.
References $type, $xml, debug(), expandEntities(), isArraySimpleOrStruct(), and serialize_val().
{
if(is_object($val) && get_class($val) == 'soapval'){
return $val->serialize($use);
}
$this->debug( "in serialize_val: $val, $name, $type, $name_ns, $type_ns, $attributes, $use");
// if no name, use item
$name = (!$name|| is_numeric($name)) ? 'soapVal' : $name;
// if name has ns, add ns prefix to name
$xmlns = '';
if($name_ns){
$prefix = 'nu'.rand(1000,9999);
$name = $prefix.':'.$name;
$xmlns .= " xmlns:$prefix=\"$name_ns\"";
}
// if type is prefixed, create type prefix
if($type_ns != '' && $type_ns == $this->namespaces['xsd']){
// need to fix this. shouldn't default to xsd if no ns specified
// w/o checking against typemap
$type_prefix = 'xsd';
} elseif($type_ns){
$type_prefix = 'ns'.rand(1000,9999);
$xmlns .= " xmlns:$type_prefix=\"$type_ns\"";
}
// serialize attributes if present
$atts = '';
if($attributes){
foreach($attributes as $k => $v){
$atts .= " $k=\"$v\"";
}
}
// serialize if an xsd built-in primitive type
if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){
if (is_bool($val)) {
if ($type == 'boolean') {
$val = $val ? 'true' : 'false';
} elseif (! $val) {
$val = 0;
}
} else if (is_string($val)) {
$val = $this->expandEntities($val);
}
if ($use == 'literal') {
return "<$name$xmlns>$val</$name>";
} else {
return "<$name$xmlns xsi:type=\"xsd:$type\">$val</$name>";
}
}
// detect type and serialize
$xml = '';
switch(true) {
case ($type == '' && is_null($val)):
if ($use == 'literal') {
// TODO: depends on nillable
$xml .= "<$name$xmlns/>";
} else {
$xml .= "<$name$xmlns xsi:nil=\"true\"/>";
}
break;
case (is_bool($val) || $type == 'boolean'):
if ($type == 'boolean') {
$val = $val ? 'true' : 'false';
} elseif (! $val) {
$val = 0;
}
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val</$name>";
}
break;
case (is_int($val) || is_long($val) || $type == 'int'):
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val</$name>";
}
break;
case (is_float($val)|| is_double($val) || $type == 'float'):
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val</$name>";
}
break;
case (is_string($val) || $type == 'string'):
$val = $this->expandEntities($val);
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val</$name>";
}
break;
case is_object($val):
$name = get_class($val);
foreach(get_object_vars($val) as $k => $v){
$pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use);
}
$xml .= '<'.$name.'>'.$pXml.'</'.$name.'>';
break;
break;
case (is_array($val) || $type):
// detect if struct or array
$valueType = $this->isArraySimpleOrStruct($val);
if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){
$i = 0;
if(is_array($val) && count($val)> 0){
foreach($val as $v){
if(is_object($v) && get_class($v) == 'soapval'){
$tt_ns = $v->type_ns;
$tt = $v->type;
} elseif (is_array($v)) {
$tt = $this->isArraySimpleOrStruct($v);
} else {
$tt = gettype($v);
}
$array_types[$tt] = 1;
$xml .= $this->serialize_val($v,'item',false,false,false,false,$use);
++$i;
}
if(count($array_types) > 1){
$array_typename = 'xsd:ur-type';
} elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) {
if ($tt == 'integer') {
$tt = 'int';
}
$array_typename = 'xsd:'.$tt;
} elseif(isset($tt) && $tt == 'arraySimple'){
$array_typename = 'SOAP-ENC:Array';
} elseif(isset($tt) && $tt == 'arrayStruct'){
$array_typename = 'unnamed_struct_use_soapval';
} else {
// if type is prefixed, create type prefix
if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){
$array_typename = 'xsd:' . $tt;
} elseif ($tt_ns) {
$tt_prefix = 'ns' . rand(1000, 9999);
$array_typename = "$tt_prefix:$tt";
$xmlns .= " xmlns:$tt_prefix=\"$tt_ns\"";
} else {
$array_typename = $tt;
}
}
$array_type = $i;
if ($use == 'literal') {
$type_str = '';
} else if (isset($type) && isset($type_prefix)) {
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\"";
}
// empty array
} else {
if ($use == 'literal') {
$type_str = '';
} else if (isset($type) && isset($type_prefix)) {
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = " xsi:type=\"SOAP-ENC:Array\"";
}
}
$xml = "<$name$xmlns$type_str$atts>".$xml."</$name>";
} else {
// got a struct
if(isset($type) && isset($type_prefix)){
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = '';
}
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>";
} else {
$xml .= "<$name$xmlns$type_str$atts>";
}
foreach($val as $k => $v){
// Apache Map
if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') {
$xml .= '<item>';
$xml .= $this->serialize_val($k,'key',false,false,false,false,$use);
$xml .= $this->serialize_val($v,'value',false,false,false,false,$use);
$xml .= '</item>';
} else {
$xml .= $this->serialize_val($v,$k,false,false,false,false,$use);
}
}
$xml .= "</$name>";
}
break;
default:
$xml .= 'not detected, got '.gettype($val).' for '.$val;
break;
}
return $xml;
}
Here is the call graph for this function:| nusoap_base::serialize_val | ( | $ | val, | |
| $ | name = false, |
|||
| $ | type = false, |
|||
| $ | name_ns = false, |
|||
| $ | type_ns = false, |
|||
| $ | attributes = false, |
|||
| $ | use = 'encoded' | |||
| ) |
serializes PHP values in accordance w/ section 5.
Type information is not serialized if $use == 'literal'.
Definition at line 212 of file class.nusoap_base.php.
References $type, $xml, debug(), expandEntities(), and isArraySimpleOrStruct().
Referenced by soap_client::call(), soapval::serialize(), soap_server::serialize_return(), serialize_val(), and wsdl::serializeType().
{
if(is_object($val) && get_class($val) == 'soapval'){
return $val->serialize($use);
}
$this->debug( "in serialize_val: $val, $name, $type, $name_ns, $type_ns, $attributes, $use");
// if no name, use item
$name = (!$name|| is_numeric($name)) ? 'soapVal' : $name;
// if name has ns, add ns prefix to name
$xmlns = '';
if($name_ns){
$prefix = 'nu'.rand(1000,9999);
$name = $prefix.':'.$name;
$xmlns .= " xmlns:$prefix=\"$name_ns\"";
}
// if type is prefixed, create type prefix
if($type_ns != '' && $type_ns == $this->namespaces['xsd']){
// need to fix this. shouldn't default to xsd if no ns specified
// w/o checking against typemap
$type_prefix = 'xsd';
} elseif($type_ns){
$type_prefix = 'ns'.rand(1000,9999);
$xmlns .= " xmlns:$type_prefix=\"$type_ns\"";
}
// serialize attributes if present
$atts = '';
if($attributes){
foreach($attributes as $k => $v){
$atts .= " $k=\"$v\"";
}
}
// serialize if an xsd built-in primitive type
if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){
if (is_bool($val)) {
if ($type == 'boolean') {
$val = $val ? 'true' : 'false';
} elseif (! $val) {
$val = 0;
}
} else if (is_string($val)) {
$val = $this->expandEntities($val);
}
if ($use == 'literal') {
return "<$name$xmlns>$val</$name>";
} else {
return "<$name$xmlns xsi:type=\"xsd:$type\">$val</$name>";
}
}
// detect type and serialize
$xml = '';
switch(true) {
case ($type == '' && is_null($val)):
if ($use == 'literal') {
// TODO: depends on nillable
$xml .= "<$name$xmlns/>";
} else {
$xml .= "<$name$xmlns xsi:nil=\"true\"/>";
}
break;
case (is_bool($val) || $type == 'boolean'):
if ($type == 'boolean') {
$val = $val ? 'true' : 'false';
} elseif (! $val) {
$val = 0;
}
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val</$name>";
}
break;
case (is_int($val) || is_long($val) || $type == 'int'):
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val</$name>";
}
break;
case (is_float($val)|| is_double($val) || $type == 'float'):
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val</$name>";
}
break;
case (is_string($val) || $type == 'string'):
$val = $this->expandEntities($val);
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>$val</$name>";
} else {
$xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val</$name>";
}
break;
case is_object($val):
$name = get_class($val);
foreach(get_object_vars($val) as $k => $v){
$pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use);
}
$xml .= '<'.$name.'>'.$pXml.'</'.$name.'>';
break;
break;
case (is_array($val) || $type):
// detect if struct or array
$valueType = $this->isArraySimpleOrStruct($val);
if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){
$i = 0;
if(is_array($val) && count($val)> 0){
foreach($val as $v){
if(is_object($v) && get_class($v) == 'soapval'){
$tt_ns = $v->type_ns;
$tt = $v->type;
} elseif (is_array($v)) {
$tt = $this->isArraySimpleOrStruct($v);
} else {
$tt = gettype($v);
}
$array_types[$tt] = 1;
$xml .= $this->serialize_val($v,'item',false,false,false,false,$use);
++$i;
}
if(count($array_types) > 1){
$array_typename = 'xsd:ur-type';
} elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) {
if ($tt == 'integer') {
$tt = 'int';
}
$array_typename = 'xsd:'.$tt;
} elseif(isset($tt) && $tt == 'arraySimple'){
$array_typename = 'SOAP-ENC:Array';
} elseif(isset($tt) && $tt == 'arrayStruct'){
$array_typename = 'unnamed_struct_use_soapval';
} else {
// if type is prefixed, create type prefix
if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){
$array_typename = 'xsd:' . $tt;
} elseif ($tt_ns) {
$tt_prefix = 'ns' . rand(1000, 9999);
$array_typename = "$tt_prefix:$tt";
$xmlns .= " xmlns:$tt_prefix=\"$tt_ns\"";
} else {
$array_typename = $tt;
}
}
$array_type = $i;
if ($use == 'literal') {
$type_str = '';
} else if (isset($type) && isset($type_prefix)) {
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\"";
}
// empty array
} else {
if ($use == 'literal') {
$type_str = '';
} else if (isset($type) && isset($type_prefix)) {
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = " xsi:type=\"SOAP-ENC:Array\"";
}
}
$xml = "<$name$xmlns$type_str$atts>".$xml."</$name>";
} else {
// got a struct
if(isset($type) && isset($type_prefix)){
$type_str = " xsi:type=\"$type_prefix:$type\"";
} else {
$type_str = '';
}
if ($use == 'literal') {
$xml .= "<$name$xmlns $atts>";
} else {
$xml .= "<$name$xmlns$type_str$atts>";
}
foreach($val as $k => $v){
// Apache Map
if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') {
$xml .= '<item>';
$xml .= $this->serialize_val($k,'key',false,false,false,false,$use);
$xml .= $this->serialize_val($v,'value',false,false,false,false,$use);
$xml .= '</item>';
} else {
$xml .= $this->serialize_val($v,$k,false,false,false,false,$use);
}
}
$xml .= "</$name>";
}
break;
default:
$xml .= 'not detected, got '.gettype($val).' for '.$val;
break;
}
return $xml;
}
Here is the call graph for this function:
Here is the caller graph for this function:| nusoap_base::serializeEnvelope | ( | $ | body, | |
| $ | headers = false, |
|||
| $ | namespaces = array(), |
|||
| $ | style = 'rpc', |
|||
| $ | use = 'encoded' | |||
| ) |
serialize message
| string | body | |
| string | headers optional | |
| array | namespaces optional | |
| string | style optional (rpc|document) | |
| string | use optional (encoded|literal) |
Definition at line 417 of file class.nusoap_base.php.
References $namespaces.
Referenced by soap_client::call(), and soap_server::serialize_return().
{
// TODO: add an option to automatically run utf8_encode on $body and $headers
// if $this->soap_defencoding is UTF-8. Not doing this automatically allows
// one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1
// serialize namespaces
$ns_string = '';
foreach(array_merge($this->namespaces,$namespaces) as $k => $v){
$ns_string .= " xmlns:$k=\"$v\"";
}
if($style == 'rpc' && $use == 'encoded') {
$ns_string = ' SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"' . $ns_string;
}
// serialize headers
if($headers){
$headers = "<SOAP-ENV:Header>".$headers."</SOAP-ENV:Header>";
}
// serialize envelope
return
'<?xml version="1.0" encoding="'.$this->soap_defencoding .'"?'.">".
'<SOAP-ENV:Envelope'.$ns_string.">".
$headers.
"<SOAP-ENV:Body>".
$body.
"</SOAP-ENV:Body>".
"</SOAP-ENV:Envelope>";
}
Here is the caller graph for this function:| nusoap_base::serializeEnvelope | ( | $ | body, | |
| $ | headers = false, |
|||
| $ | namespaces = array(), |
|||
| $ | style = 'rpc', |
|||
| $ | use = 'encoded' | |||
| ) |
serialize message
| string | body | |
| string | headers optional | |
| array | namespaces optional | |
| string | style optional (rpc|document) | |
| string | use optional (encoded|literal) |
Definition at line 417 of file nusoap.php.
References $namespaces.
{
// TODO: add an option to automatically run utf8_encode on $body and $headers
// if $this->soap_defencoding is UTF-8. Not doing this automatically allows
// one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1
// serialize namespaces
$ns_string = '';
foreach(array_merge($this->namespaces,$namespaces) as $k => $v){
$ns_string .= " xmlns:$k=\"$v\"";
}
if($style == 'rpc' && $use == 'encoded') {
$ns_string = ' SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"' . $ns_string;
}
// serialize headers
if($headers){
$headers = "<SOAP-ENV:Header>".$headers."</SOAP-ENV:Header>";
}
// serialize envelope
return
'<?xml version="1.0" encoding="'.$this->soap_defencoding .'"?'.">".
'<SOAP-ENV:Envelope'.$ns_string.">".
$headers.
"<SOAP-ENV:Body>".
$body.
"</SOAP-ENV:Body>".
"</SOAP-ENV:Envelope>";
}
| nusoap_base::setError | ( | $ | str | ) |
sets error string
Definition at line 184 of file nusoap.php.
{
$this->error_str = $str;
}
| nusoap_base::setError | ( | $ | str | ) |
sets error string
Definition at line 184 of file class.nusoap_base.php.
Referenced by soap_client::call(), soap_transport_http::connect(), soap_transport_http::getResponse(), XMLSchema::parseFile(), soapclientmime::parseResponse(), soap_client::parseResponse(), XMLSchema::parseString(), wsdl::parseWSDL(), soap_client::send(), soap_transport_http::send(), soap_transport_http::sendRequest(), wsdl::serializeParameters(), wsdl::serializeRPCParameters(), wsdl::serializeType(), soap_client::soap_client(), and soap_parser::soap_parser().
{
$this->error_str = $str;
}
Here is the caller graph for this function:| nusoap_base::varDump | ( | $ | data | ) |
Definition at line 567 of file nusoap.php.
References $data.
{
ob_start();
var_dump($data);
$ret_val = ob_get_contents();
ob_end_clean();
return $ret_val;
}
| nusoap_base::varDump | ( | $ | data | ) |
Definition at line 567 of file class.nusoap_base.php.
References $data.
Referenced by XMLSchema::addComplexType(), XMLSchema::addSimpleType(), soap_server::invoke_method(), XMLSchema::schemaStartElement(), soap_server::serialize_return(), wsdl::serializeParameters(), wsdl::serializeRPCParameters(), and wsdl::serializeType().
{
ob_start();
var_dump($data);
$ret_val = ob_get_contents();
ob_end_clean();
return $ret_val;
}
Here is the caller graph for this function:| nusoap_base::$charencoding = true |
Definition at line 70 of file class.nusoap_base.php.
| nusoap_base::$debug_str = '' |
Definition at line 67 of file class.nusoap_base.php.
| nusoap_base::$error_str = false |
Reimplemented in soap_client.
Definition at line 66 of file class.nusoap_base.php.
| nusoap_base::$namespaces |
array(
'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
'xsd' => 'http://www.w3.org/2001/XMLSchema',
'xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
'SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/',
'si' => 'http://soapinterop.org/xsd')
Reimplemented in soap_parser.
Definition at line 95 of file class.nusoap_base.php.
Referenced by serializeEnvelope(), and XMLSchema::XMLSchema().
| nusoap_base::$revision = '$Revision: 6559 $' |
Definition at line 65 of file class.nusoap_base.php.
| nusoap_base::$soap_defencoding = 'ISO-8859-1' |
Definition at line 87 of file class.nusoap_base.php.
| nusoap_base::$title = 'NuSOAP' |
Definition at line 63 of file class.nusoap_base.php.
| nusoap_base::$typemap |
array(
'http://www.w3.org/2001/XMLSchema' => array(
'string'=>'string','boolean'=>'boolean','float'=>'double','double'=>'double','decimal'=>'double',
'duration'=>'','dateTime'=>'string','time'=>'string','date'=>'string','gYearMonth'=>'',
'gYear'=>'','gMonthDay'=>'','gDay'=>'','gMonth'=>'','hexBinary'=>'string','base64Binary'=>'string',
'normalizedString'=>'string','token'=>'string','language'=>'','NMTOKEN'=>'','NMTOKENS'=>'','Name'=>'','NCName'=>'','ID'=>'',
'IDREF'=>'','IDREFS'=>'','ENTITY'=>'','ENTITIES'=>'','integer'=>'integer','nonPositiveInteger'=>'integer',
'negativeInteger'=>'integer','long'=>'integer','int'=>'integer','short'=>'integer','byte'=>'integer','nonNegativeInteger'=>'integer',
'unsignedLong'=>'','unsignedInt'=>'','unsignedShort'=>'','unsignedByte'=>'','positiveInteger'=>''),
'http://www.w3.org/1999/XMLSchema' => array(
'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double',
'float'=>'double','dateTime'=>'string',
'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'),
'http://soapinterop.org/xsd' => array('SOAPStruct'=>'struct'),
'http://schemas.xmlsoap.org/soap/encoding/' => array('base64'=>'string','array'=>'array','Array'=>'array'),
'http://xml.apache.org/xml-soap' => array('Map')
)
Definition at line 110 of file class.nusoap_base.php.
| nusoap_base::$usedNamespaces = array() |
Definition at line 101 of file class.nusoap_base.php.
Referenced by soap_client::call().
| nusoap_base::$version = '0.6.7' |
Definition at line 64 of file class.nusoap_base.php.
| nusoap_base::$xmlEntities |
array('quot' => '"','amp' => '&', 'lt' => '<','gt' => '>','apos' => "'")
Definition at line 135 of file class.nusoap_base.php.
| nusoap_base::$XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema' |
Definition at line 78 of file class.nusoap_base.php.
1.7.1