从Wsdl到PHP:不能为xml-ex -c14n导入模式错误


Wsdl to PHP: Can't import schema error for xml-exc-c14n

我正在尝试使用wsdl2php.php脚本从wsdl文件生成php文件。以前,当我没有在SOAP服务中使用WS-Security时,一切都很好。

每次当我运行脚本,我得到错误:

PHP Fatal error: SOAP-ERROR: Parsing Schema: can't import schema from 'http://www.w3.org/2001/10/xml-exc-c14n#'

我不知道是否有php库或包丢失或没有…有人能帮我吗?

我的wsdl文件看起来像:

<types>
 <schema targetNamespace="http://tempuri.org/myService.xsd"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"
  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
  xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  xmlns:myService="http://tempuri.org/myService.xsd"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified">
  <import namespace="http://www.w3.org/2001/10/xml-exc-c14n#" schemaLocation="http://www.w3.org/2001/10/xml-exc-c14n#"/>
  <import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
  <import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/2001/04/xmlenc#"/>
  <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/2000/09/xmldsig#"/>
  <import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
....
....

您是否尝试在浏览器中打开url http://www.w3.org/2001/10/xml-exc-c14n# ?你会看到,它指向一个网页,而不是一个架构作为下一个http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd做。在任何情况下,使用wsdl2php或WsdlToPhp都会触发此错误。