in my factory we use a legacy system that works as middleware.
It can get htpp requests and through a workflow system interact with other systems, database, servers, etc.
Unfortunately it does not support web services technology.
The system accepts in input xml sent via http-post from caller systems, and convalidate them through a dtd.
We fake webservice on a handmade way: we homebuild a wsdl
and after some tries we refine the dtd construction seeing the xml that arrives from the caller.
The problem is when the number of caller is major than one, because the xml that arrive to the system are slightly different and can violate the dtd.
For instance the header can change, the namespace can be <SOAP-ENV:ENVELOPE> or <soapenv:envelope>
This is enough to break the dtd and cause the system to raise an error
I don't know if I have explained well the problem.
How can we solve this problem? Is it advisable to build a some kind of bridge between "the world" and our system? how?
Any suggestion is welcome.
Thanks in advance
If the above is not applicable, then:
How are you processing the XML from the incoming requests?
If you are receiving valid XML and use some XML processing framework to process the XML, then I do not see why you should have problems?
Joined: Jan 02, 2007
thank you for the answer and for the link.
the xml is validated through a dtd validator (operation done by the legacy system automatically).
The fact is that we distribute a wsdl to several companies, and we get several xml depending on the system that elaborate the Wsdl.
Some of them are not recognized as valid by the dtd validator.
Hope I have clarified a bit the issue...
Joined: Oct 04, 2006
Have you considered using an adapter service in front of the legacy system?
The adapter service would be responsible for accepting requests in all different formats and, if needed, transform them to a format accepted by the legacy system.