Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add some documentation (for me) on WSDL parsing namespaces in client mode |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f8d98804f84a34a4e567d224821b6ec6 |
User & Date: | oehhar 2017-11-03 15:11:10.127 |
Context
2017-11-03 15:27 | Wrong } nesting in comment check-in: 3632fc3da6 user: oehhar tags: trunk | |
2017-11-03 15:18 | merged trunk check-in: b774fc3821 user: oehhar tags: rfe-dcce437d7aa5e64a | |
2017-11-03 15:11 | Add some documentation (for me) on WSDL parsing namespaces in client mode check-in: f8d98804f8 user: oehhar tags: trunk | |
2017-11-03 11:19 | WSCall: also extend the output node name search to multiple message root nodes in the response Ticket [21f41e22bc] check-in: 170d9d7c59 user: oehhar tags: trunk | |
Changes
Changes to ClientSide.tcl.
︙ | ︙ | |||
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 | $tmpdoc xslt $::WS::Utils::xsltSchemaDom wsdlDoc $tmpdoc delete # save top node in variable wsdlNode $wsdlDoc documentElement wsdlNode set nsCount 1 set targetNs [$wsdlNode getAttribute targetNamespace] set ::WS::Utils::targetNs $targetNs dict set nsDict url $targetNs tns$nsCount foreach itemList [$wsdlNode attributes xmlns:*] { set ns [lindex $itemList 0] set url [$wsdlNode getAttribute xmlns:$ns] if {[dict exists $nsDict url $url]} { set tns [dict get $nsDict url $url] } else { ## | > > > > > > > > > > > > > > > > > > > > > > > | 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 | $tmpdoc xslt $::WS::Utils::xsltSchemaDom wsdlDoc $tmpdoc delete # save top node in variable wsdlNode $wsdlDoc documentElement wsdlNode set nsCount 1 set targetNs [$wsdlNode getAttribute targetNamespace] set ::WS::Utils::targetNs $targetNs ## ## Build the namespace prefix dict ## # nsDict contains two tables: # 1) Lookup URI, get internal prefix # url <URI> <tns> # 2) Lookup wsdl namespace prefix, get internal namespace prefix # tns <ns> <tns> # <URI>: unique ID, mostly URL # <ns>: namespace prefix used in wsdl # <tns> internal namespace prefix which allows to use predefined prefixes # not to clash with the wsdl prefix in <ns> # Predefined: # - tns1 : targetNamespace # - w: http://schemas.xmlsoap.org/wsdl/ # - d: http://schemas.xmlsoap.org/wsdl/soap/ # - xs: http://www.w3.org/2001/XMLSchema # # The top node <wsdl:definitions # targetNamespace="http://www.webserviceX.NET/"> # xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/ ...> # contains the target namespace and all namespace definitions dict set nsDict url $targetNs tns$nsCount # returns {wsdl wsdl {}} ....} for the upper example. foreach itemList [$wsdlNode attributes xmlns:*] { set ns [lindex $itemList 0] set url [$wsdlNode getAttribute xmlns:$ns] if {[dict exists $nsDict url $url]} { set tns [dict get $nsDict url $url] } else { ## |
︙ | ︙ |