The WSDL that is generated by Siebel for inbound web services is lacking some internal schema imports. The .NET SOAP tooling gives some warnings, but works around it. Some other toolkits refuse to work with the schema. Passing the WSDL through this XSLT transform fixes the problem:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>
<xsl:output method="xml" indent="no"/>
<xsl:template match="xsd:schema[@targetNamespace='http://siebel.com/asi/']">
<xsd:schema>
<xsl:copy-of select="@*" />
</xsd:schema>
<xsd:import>
<xsl:attribute name="namespace">
<xsl:value-of select="//xsd:schema/@targetNamespace"/>
</xsl:attribute>
</xsd:import>
<xsl:copy-of select="node()"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
0 comments:
Post a Comment