To Henrik Thostrup Jensen
I am very sorry for our inconvenient log file and ambiguous indication about name space problem.
We developed our web services with JAX-WS2.0 based Metro engine, which supports WSDL to Java generation tool.
To confirm the usage of name spaces in NSI messages, we also used AXIS2 and CFX engines to generate two more Java source codes from the WSDL document.
All three engines generated the same reservationRequest message which has two name spaces as attributes of the reservationRequest element and does not have prefixes for all children elements(e.g., requesterNSA, providerNSA, …):
<ns5:reservationRequest xmlns:ns2="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:ns3="http://www.w3.org/2001/04/xmlenc#"
xmlns:ns4="http://www.w3.org/2000/09/xmldsig#"
xmlns:ns5="http://schemas.ogf.org/nsi/2011/07/connection/interface"
xmlns:ns6="http://schemas.ogf.org/nsi/2011/07/connection/types">
<ns5:correlationId>78729d97-8264-4a4b-ad53-8fec5ad529fb</ns5:correlationId>
<ns5:replyTo>http://220.69.240.218:2000/kreonet/ConnectionServiceRequester</ns5:replyTo>
<ns6:reservation>
<requesterNSA>urn:ogf:network:NSnetwork:kreonet</requesterNSA>
<providerNSA>urn:ogf:network:NSnetwork:dynamicKL</providerNSA>
<reservation>
Our implementation utilizes Metro engine to parse NSI messages.
For your latest trail with ns2 name space for all children elements of reservation element,
Metro engine returns null value when our implementation asks it to parse requesterNSA element of your reservationRequest message.
Syntax error was marked in our log because of null value.
We also have great difficulty to understand why Metro engine returns null value.
When we use AXIS2(Jaxb) to parse your message, it returns an exception with unexpected element cause.
To fix out this problem, we are studying unprefixed attribute (http://www.rpbourret.com/xml/NamespaceMyths.htm#myth4), but we felt deeply our limitation about WSDL and name space knowledge.
We sincerely ask someone to give us some comments about this problem.
Best regards.
Hi
(sorry for mixing my ndgf and nordunet mail addresses, use htj@nordu.net if in doubt, but they end up the same place :-) ).Okay. Do you think it would be possible to add some information to the log. It is very difficult to understand the errors currently loged.
On Mon, 5 Sep 2011, ???(YoungWook Cha) wrote:
SyntaxError(Cause : ProviderNSA) was not generated by URN problem.
This error was generated by the name space mismatch.
[snip]
I want to show you a query message from autoBahn that was recently dumped by our log system.
You can find out that ns2 and ns6 name spaces are defined as attributes of the queryRequest element.
[snip]
The following is a reservationRequest message generated by dynamicKL, which has two name spaces defined as attributes of the reservationRequest element.
I fail to see the problem. This is a slightly odd, but semantically okay for specifying the default xml namespace for an element and its children. See http://www.w3.org/TR/xml-names/#defaulting
In case of your message, ns1 is defined in the Envelope element.
On the other hand, default name space("http://schemas.ogf.org/nsi/2011/07/connection/types") is defined in the reservation element.
Will you check out the usage of name spaces?
I ran the SOAP envelope through an XML parser, and dumped the tree. It looks like this:
<SOAP-ENV:Envelope
xmlns:ns0="http://schemas.ogf.org/nsi/2011/07/connection/types"
xmlns:ns1="http://schemas.ogf.org/nsi/2011/07/connection/interface"
xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns2:Body>
<ns1:reservationRequest>
<ns1:correlationId>56561926991634759038257507539181676754</ns1:correlationId>
<ns1:replyTo>http://orval.grid.aau.dk:7080/NSI/services/ConnectionService</ns1:replyTo>
<reservation xmlns="http://schemas.ogf.org/nsi/2011/07/connection/types">
<requesterNSA>urn:ogf:network:nsa:OpenNSA-testclient</requesterNSA>
<providerNSA>urn:ogf:network:nsa:Martinique-DynamicKL</providerNSA>
<reservation>
<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.ogf.org/nsi/2011/07/connection/interface" xmlns:ns2="http://schemas.ogf.org/nsi/2011/07/connection/types">
<ns0:Header />
<ns0:Body>
<ns1:reservationRequest>
<ns1:correlationId>urn:uuid:d41e5c6a-d7ff-11e0-ac34-00144f20a8d2</ns1:correlationId> <ns2:reservation>
<ns2:requesterNSA>urn:ogf:network:nsa:OpenNSA-testclient</ns2:requesterNSA>
<ns2:providerNSA>urn:ogf:network:nsa:Aruba-OpenNSA</ns2:providerNSA>
<ns2:reservation>
<ns2:globalReservationId>gid-0962</ns2:globalReservationId>
<ns2:description>Test Connection</ns2:description>
<ns2:connectionId>conn-510</ns2:connectionId>
<ns2:serviceParameters>
<ns2:schedule>
<ns2:startTime>2011-09-05T20:46:19Z</ns2:startTime>
<ns2:endTime>2011-09-05T20:48:19Z</ns2:endTime>
</ns2:schedule>
<ns2:bandwidth>
<ns2:desired>1000</ns2:desired>
</ns2:bandwidth>
</ns2:serviceParameters>
<ns2:path>
<ns2:directionality>unidirectional</ns2:directionality>
<ns2:sourceSTP>
<ns2:stpId>urn:ogf:network:stp:Aruba:A1</ns2:stpId>
</ns2:sourceSTP>
<ns2:destSTP>
<ns2:stpId>urn:ogf:network:stp:Martinique:M3</ns2:stpId>
</ns2:destSTP>
</ns2:path>
</ns2:reservation>
</ns2:reservation>
</ns1:reservationRequest>
</ns0:Body>
</ns0:Envelope>
This uses more common xmlns declarations, but is sementically identical. I tried using the above payload instead, but it fails with the same message.
If I'm doing something wrong, could you point it out clearly, and try to show how it should look like instead.