I wish WS-MetadataExchange weren't so hard-wired to Policy, WSDL, Schema. My version of WS-Metadata exchange would be as follows. Feel free to extrapolate from there.
The thing I *don't* like about my suggestion is that when I think about the implementation, of said service, a naive implementation would tend toward switch case or lookup tables, which aren't evil but close. That isn't to say that there isn't a reasonable, clean implementation, but rather that implementations would tend toward less flexible implementations:
show me what you've got
<s12:Envelope
xmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/jef-mex/GetMetaDataList</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:GetMetaDataList />
</s12:Body>
</s12:Envelope>
a list of what you've gotxmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/jef-mex/GetMetaDataList</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:GetMetaDataList />
</s12:Body>
</s12:Envelope>
<s12:Envelope
xmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/jef-mex/MetaDataList</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:MetaDataList>
<mex:MetaData ns="http://schemas.xmlsoap.org/wsdl/"/>
<mex:MetaData ns="http://http://www.ascc.net/xml/schematron"/>
<mex:MetaData ns="http://http://www.w3.org/2001/XMLSChema"/>
<mex:MetaData ns="http://schemas.xmlsoap.org/ws/2002/12/policy"/>
</mex:MetaDataList>
</s12:Body>
</s12:Envelope>
give this specific one, pleasexmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/jef-mex/MetaDataList</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:MetaDataList>
<mex:MetaData ns="http://schemas.xmlsoap.org/wsdl/"/>
<mex:MetaData ns="http://http://www.ascc.net/xml/schematron"/>
<mex:MetaData ns="http://http://www.w3.org/2001/XMLSChema"/>
<mex:MetaData ns="http://schemas.xmlsoap.org/ws/2002/12/policy"/>
</mex:MetaDataList>
</s12:Body>
</s12:Envelope>
<s12:Envelope
xmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/08/jef-mex/MetaDataRequest
</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:MetaDataRequest ns="http://schemas.xmlsoap.org/wsdl/"/>
</s12:Body>
</s12:Envelope>
xmlns:s12='http://www.w3.org/2003/05/soap-envelope'
xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing'
xmlns:mex='http://schemas.xmlsoap.org/ws/2004/08/jef-mex' >
<s12:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/08/jef-mex/MetaDataRequest
</wsa:Action>
<!-- yada yada -->
</s12:Header>
<s12:Body>
<mex:MetaDataRequest ns="http://schemas.xmlsoap.org/wsdl/"/>
</s12:Body>
</s12:Envelope>
Comments