function serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType) {
		$this->debug("serializeComplexTypeAttributes for XML Schema type $ns:$uqType");
		$xml = '';
		if (isset($typeDef['extensionBase'])) {
			$nsx = $this->getPrefix($typeDef['extensionBase']);
			$uqTypex = $this->getLocalPart($typeDef['extensionBase']);
			if ($this->getNamespaceFromPrefix($nsx)) {
				$nsx = $this->getNamespaceFromPrefix($nsx);
			}
			if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) {
				$this->debug("serialize attributes for extension base $nsx:$uqTypex");
				$xml .= $this->serializeComplexTypeAttributes($typeDefx, $value, $nsx, $uqTypex);
			} else {
				$this->debug("extension base $nsx:$uqTypex is not a supported type");
			}
		}
		if (isset($typeDef['attrs']) && is_array($typeDef['attrs'])) {
			$this->debug("serialize attributes for XML Schema type $ns:$uqType");
			if (is_array($value)) {
				$xvalue = $value;
			} elseif (is_object($value)) {
				$xvalue = get_object_vars($value);
			} else {
				$this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType");
				$xvalue = array();
			}
			foreach ($typeDef['attrs'] as $aName => $attrs) {
				if (isset($xvalue['!' . $aName])) {
					$xname = '!' . $aName;
					$this->debug("value provided for attribute $aName with key $xname");
				} elseif (isset($xvalue[$aName])) {
					$xname = $aName;
					$this->debug("value provided for attribute $aName with key $xname");
				} elseif (isset($attrs['default'])) {
					$xname = '!' . $aName;
					$xvalue[$xname] = $attrs['default'];
					$this->debug('use default value of ' . $xvalue[$aName] . ' for attribute ' . $aName);
				} else {
					$xname = '';
					$this->debug("no value provided for attribute $aName");
				}
				if ($xname) {
					$xml .=  " $aName=\"" . $this->expandEntities($xvalue[$xname]) . "\"";
				}
			} 
		} else {
			$this->debug("no attributes to serialize for XML Schema type $ns:$uqType");
		}
		return $xml;
	}
function serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType) {
		$this->debug("serializeComplexTypeAttributes for XML Schema type $ns:$uqType");
		$xml = '';
		if (isset($typeDef['extensionBase'])) {
			$nsx = $this->getPrefix($typeDef['extensionBase']);
			$uqTypex = $this->getLocalPart($typeDef['extensionBase']);
			if ($this->getNamespaceFromPrefix($nsx)) {
				$nsx = $this->getNamespaceFromPrefix($nsx);
			}
			if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) {
				$this->debug("serialize attributes for extension base $nsx:$uqTypex");
				$xml .= $this->serializeComplexTypeAttributes($typeDefx, $value, $nsx, $uqTypex);
			} else {
				$this->debug("extension base $nsx:$uqTypex is not a supported type");
			}
		}
		if (isset($typeDef['attrs']) && is_array($typeDef['attrs'])) {
			$this->debug("serialize attributes for XML Schema type $ns:$uqType");
			if (is_array($value)) {
				$xvalue = $value;
			} elseif (is_object($value)) {
				$xvalue = get_object_vars($value);
			} else {
				$this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType");
				$xvalue = array();
			}
			foreach ($typeDef['attrs'] as $aName => $attrs) {
				if (isset($xvalue['!' . $aName])) {
					$xname = '!' . $aName;
					$this->debug("value provided for attribute $aName with key $xname");
				} elseif (isset($xvalue[$aName])) {
					$xname = $aName;
					$this->debug("value provided for attribute $aName with key $xname");
				} elseif (isset($attrs['default'])) {
					$xname = '!' . $aName;
					$xvalue[$xname] = $attrs['default'];
					$this->debug('use default value of ' . $xvalue[$aName] . ' for attribute ' . $aName);
				} else {
					$xname = '';
					$this->debug("no value provided for attribute $aName");
				}
				if ($xname) {
					$xml .=  " $aName=\"" . $this->expandEntities($xvalue[$xname]) . "\"";
				}
			} 
		} else {
			$this->debug("no attributes to serialize for XML Schema type $ns:$uqType");
		}
		return $xml;
	}
function serializeComplexTypeAttributes ( $ typeDef , $ value , $ ns , $ uqType ) { $ this -> debug ( "serializeComplexTypeAttributes for XML Schema type $ns:$uqType" ) ; $ xml = '' ; if ( isset ( $ typeDef [ 'extensionBase' ] ) ) { $ nsx = $ this -> getPrefix ( $ typeDef [ 'extensionBase' ] ) ; $ uqTypex = $ this -> getLocalPart ( $ typeDef [ 'extensionBase' ] ) ; if ( $ this -> getNamespaceFromPrefix ( $ nsx ) ) { $ nsx = $ this -> getNamespaceFromPrefix ( $ nsx ) ; } if ( $ typeDefx = $ this -> getTypeDef ( $ uqTypex , $ nsx ) ) { $ this -> debug ( "serialize attributes for extension base $nsx:$uqTypex" ) ; $ xml .= $ this -> serializeComplexTypeAttributes ( $ typeDefx , $ value , $ nsx , $ uqTypex ) ; } else { $ this -> debug ( "extension base $nsx:$uqTypex is not a supported type" ) ; } } if ( isset ( $ typeDef [ 'attrs' ] ) && is_array ( $ typeDef [ 'attrs' ] ) ) { $ this -> debug ( "serialize attributes for XML Schema type $ns:$uqType" ) ; if ( is_array ( $ value ) ) { $ xvalue = $ value ; } elseif ( is_object ( $ value ) ) { $ xvalue = get_object_vars ( $ value ) ; } else { $ this -> debug ( "value is neither an array nor an object for XML Schema type $ns:$uqType" ) ; $ xvalue = array ( ) ; } foreach ( $ typeDef [ 'attrs' ] as $ aName => $ attrs ) { if ( isset ( $ xvalue [ '!' . $ aName ] ) ) { $ xname = '!' . $ aName ; $ this -> debug ( "value provided for attribute $aName with key $xname" ) ; } elseif ( isset ( $ xvalue [ $ aName ] ) ) { $ xname = $ aName ; $ this -> debug ( "value provided for attribute $aName with key $xname" ) ; } elseif ( isset ( $ attrs [ 'default' ] ) ) { $ xname = '!' . $ aName ; $ xvalue [ $ xname ] = $ attrs [ 'default' ] ; $ this -> debug ( 'use default value of ' . $ xvalue [ $ aName ] . ' for attribute ' . $ aName ) ; } else { $ xname = '' ; $ this -> debug ( "no value provided for attribute $aName" ) ; } if ( $ xname ) { $ xml .= " $aName=\"" . $ this -> expandEntities ( $ xvalue [ $ xname ] ) . "\"" ; } } } else { $ this -> debug ( "no attributes to serialize for XML Schema type $ns:$uqType" ) ; } return $ xml ; }
serializes the attributes for a complexType

@param array $typeDef our internal representation of an XML schema type (or element)
@param mixed $value a native PHP value (parameter value)
@param string $ns the namespace of the type
@param string $uqType the local part of the type
@return string value serialized as an XML string
@access private
serializes the attributes for a complexType