Hi there
I hoping to get a "theoritica lly that's possible" kind of answer here!
What I'm trying to achieve is the ability to present a different schema to
the service consumer based on some sort of Id
unique to the consumer. So:
Consumer A : WSDL A
Consumer B : WSDL B
Consumer C : WSDL C
These schemas aren't going to be known until runtime.
I've created a WSDL extension that will allow me to get so far. By writing a
class that implements the IWsdlExportExte nsion interface,
I can write a specific implementation of IWsdlExportExte nsion.ExportCon tract
and within it:
XmlSchemaSet schemaSet = exporter.Genera tedXmlSchemas;
foreach (ServiceDescrip tion wsdl in exporter.Genera tedWsdlDocument s)
{
// Or trot off to db with some form of Id and get the schema from a database
XmlReader reader = new XmlTextReader(@ "C:\\TestSchema A.xsd");
XmlSchema schema = XmlSchema.Read( reader, null);
wsdl.Types.Sche mas.Add(schema) ;
}
And add the unique part of the schema in that way, but I don't think this is
the way as there is no way to pass through
any additional information other than:
Is this kind of approach actually possible in theory?
Joe
I hoping to get a "theoritica lly that's possible" kind of answer here!
What I'm trying to achieve is the ability to present a different schema to
the service consumer based on some sort of Id
unique to the consumer. So:
Consumer A : WSDL A
Consumer B : WSDL B
Consumer C : WSDL C
These schemas aren't going to be known until runtime.
I've created a WSDL extension that will allow me to get so far. By writing a
class that implements the IWsdlExportExte nsion interface,
I can write a specific implementation of IWsdlExportExte nsion.ExportCon tract
and within it:
XmlSchemaSet schemaSet = exporter.Genera tedXmlSchemas;
foreach (ServiceDescrip tion wsdl in exporter.Genera tedWsdlDocument s)
{
// Or trot off to db with some form of Id and get the schema from a database
XmlReader reader = new XmlTextReader(@ "C:\\TestSchema A.xsd");
XmlSchema schema = XmlSchema.Read( reader, null);
wsdl.Types.Sche mas.Add(schema) ;
}
And add the unique part of the schema in that way, but I don't think this is
the way as there is no way to pass through
any additional information other than:
Is this kind of approach actually possible in theory?
Joe
Comment