@@ -86,6 +86,7 @@ package body SOAP.Message.XML is
86
86
NS : Namespaces;
87
87
Strict : Boolean := True;
88
88
Style : WSDL.Schema.Binding_Style := WSDL.Schema.RPC;
89
+ Encoding : WSDL.Schema.Encoding_Style := WSDL.Schema.Encoded;
89
90
Schema : WSDL.Schema.Definition;
90
91
Enclosing : Unbounded_String; -- enclosing element type (array record)
91
92
end record ;
@@ -938,6 +939,10 @@ package body SOAP.Message.XML is
938
939
S.Enclosing := S.Wrapper_Name;
939
940
end Compute_Signature ;
940
941
942
+ -- Document style is always literal
943
+
944
+ S.Encoding := WSDL.Schema.Literal;
945
+
941
946
declare
942
947
use SOAP.Parameters;
943
948
use type DOM.Core.Node;
@@ -1193,9 +1198,6 @@ package body SOAP.Message.XML is
1193
1198
then To_String (S.Enclosing) & ' .' & Name
1194
1199
else To_String (S.Enclosing) & " .item" )
1195
1200
else Name);
1196
- Encoding : constant SOAP.Types.Encoding_Style :=
1197
- WSDL.Schema.Get_Encoding_Style
1198
- (S.Schema, To_String (S.Wrapper_Name));
1199
1201
1200
1202
Ref : constant DOM.Core.Node := SOAP.XML.Get_Ref (N);
1201
1203
Atts : constant DOM.Core.Named_Node_Map := Attributes (Ref);
@@ -1247,7 +1249,7 @@ package body SOAP.Message.XML is
1247
1249
begin
1248
1250
Parse_Namespaces (Ref, S.NS);
1249
1251
1250
- if Encoding = WSDL.Schema.Encoded then
1252
+ if S. Encoding = WSDL.Schema.Encoded then
1251
1253
XSI_Type :=
1252
1254
Get_Named_Item (Atts, SOAP.Name_Space.Name (S.NS.xsi) & " :type" );
1253
1255
@@ -1619,7 +1621,7 @@ package body SOAP.Message.XML is
1619
1621
end if ;
1620
1622
1621
1623
S.Wrapper_Name := To_Unbounded_String (Name);
1622
- S.Enclosing := S.Wrapper_Name ;
1624
+ S.Encoding := WSDL.Schema.Get_Encoding_Style (S.Schema, Name) ;
1623
1625
1624
1626
for K in 0 .. Length (NL) - 1 loop
1625
1627
if Item (NL, K).Node_Type /= DOM.Core.Text_Node then
0 commit comments