고민해봤는데요?
패치나 컴포넌트 문제는 아닌것같아 인터넷에서 검색해 보았는데
코드기어 사이트에서 옥난님일아 같은 문제로 고민하는 분이 계신 것 같더라구요.
그중 최종답변 내용과 URL을 올려드릴께요.
[답변]
I have solved this problem in Delphi 6 using the option ioHasNamespace only. So the code looks as follows:
InvRegistry.RegisterInvokeOptions(TypeInfo(DmsService), ioHasNamespace);
The HTTP request includes the namespace and calling the Web Service works:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:createFolder xmlns:NS1="http://webservice.logicaldoc.com/">
<username xsi:type="xsd:string">admin</username>
<password xsi:type="xsd:string">admin</password>
<name xsi:type="xsd:string">myFirstFolder</name>
<parent xsi:type="xsd:long">5</parent>
</NS1:createFolder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
출처URL: https://forums.codegear.com/thread.jspa?threadID=7181
도움이 되실지 모르겠네요. ^^ 즐프하시길...
>첨부파일을 참고해 보세요
>
>>soap 통신인데요.. 얼마전에 땅콩맨님이 갈켜주신 사이트를 참조하여 wsdl 를 구성해서 해봤더니 함수호출까지는 되는데 파라미터값이 상대서버에 널값으로 들간다고 하네요~!
>>테스트를 해보니
>>널값이 안가게 하려면 namespace(NS1) 이걸 다 붙이던지 또는 다 빼면 되네요!
>>생성된 xml은 델파이에서 자동만들어진건데 수정할수 있는 방법이 없네요..
>>이런 문제를 어떻게 처리해야할지 방법좀 갈켜주~~~세요~!!! 꼭 좀~~부탁드려요~~ 꾸벅
>>
>>※혹시 패치나 컨퍼넌트를 다를것을 쓰거나 그래야 되는건지 아니면 다른방법이 또 있는지
>>도대체 모르겠어요~ !!
>>
>>========안되는 예(델파이7에서 자동생성된)===============
>><?xml version="1.0"?>
>> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
>> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>> <NS1:ConfirmOrderInfo_Dev xmlns:NS1="urn:testWsd_l-ServiceSoap">
>> <ID xsi:type="xsd:string">aaaa</ID>
>> <PW xsi:type="xsd:string">bbbb</PW>
>> <OrderNo xsi:type="xsd:string">123456789</OrderNo>
>> <YN xsi:type="xsd:string">Y</YN>
>> </NS1:ConfirmOrderInfo_Dev>
>> </SOAP-ENV:Body>
>> </SOAP-ENV:Envelope>
>>
>>========잘되는 예(자동생성된자료에서 네임스페이스를 지운)===============
>><?xml version="1.0"?>
>> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
>> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>> <ConfirmOrderInfo_Dev xmlns="http://tempuri.org/">
>> <ID xsi:type="xsd:string">aaaa</ID>
>> <PW xsi:type="xsd:string">bbbb</PW>
>> <OrderNo xsi:type="xsd:string">123456789</OrderNo>
>> <YN xsi:type="xsd:string">Y</YN>
>> </ConfirmOrderInfo_Dev>
>> </SOAP-ENV:Body>
>> </SOAP-ENV:Envelope>
>