Solved

xsi:nil and xsi:type attribute order in an element. Does it matter?

Posted on 2007-11-27
1
838 Views
Last Modified: 2012-06-27
Hi,

I have a strange error with my integration platform (webMethods). When i send xsi:nil="true" in an element the element only gets parsed as null if xsi:nil="true" is the last attribute in the element.

I have made a small web service just to test it. It will print out the input after the integration platform have parsed it from xml to its internal format.
This is how the different request looks like, coupled with the printouts of the variable value (notice that the only change in the request is the middle row that I have put two lank rows around.).

Request 1:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:jak="http://www.test.com/icc/tip/test/jakothun">
   <soapenv:Header/>
   <soapenv:Body>
      <jak:nillableTest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <jakobTest.nillableTest.docs_x003A_myNillableTestDoc xsi:type="prin:__myNillableTestDoc" xmlns:prin="http://localhost/jakobTest/nillableTest/flow/printPayload">

            <optionalAndNotNull xsi:type="xsd:string" xsi:nil="true" />

         </jakobTest.nillableTest.docs_x003A_myNillableTestDoc>
      </jak:nillableTest>
   </soapenv:Body>
</soapenv:Envelope>

Answer1: (parsed value outputted to a log):
optionalAndNotNull = null

Request2:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:jak="http://www.test.com/icc/tip/test/jakothun">
   <soapenv:Header/>
   <soapenv:Body>
      <jak:nillableTest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <jakobTest.nillableTest.docs_x003A_myNillableTestDoc xsi:type="prin:__myNillableTestDoc" xmlns:prin="http://localhost/jakobTest/nillableTest/flow/printPayload">

            <optionalAndNotNull xsi:nil="true" xsi:type="xsd:string" />

         </jakobTest.nillableTest.docs_x003A_myNillableTestDoc>
      </jak:nillableTest>
   </soapenv:Body>
</soapenv:Envelope>

Answer2:
optionalAndNotNull = ''
(empty string with two ' around)

Now to the question. Is there any XML experts out here that know if the w3c XML standard specify anything about which order xsi:nil attributes must be specified to be correct and always parsed correctly by good xml tools?
Or is this just a silly bug in my integration platform, that I should report to them instead?
0
Comment
Question by:sawdustwilly
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 125 total points
ID: 20359533
order of attributes should not be important in XML terms.
A set of attributes is an unordered nodeset
Any application that requires a specific attribute to be the last attribute in the row is erroneous
so you should report this to the integration platform vendor

cheers

Geert
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Client Need Led Us to RSS I recently had an investment company ask me how they might notify their constituents about their newsworthy publications.  Probably you would think "Facebook" or "Twitter" but this is an interesting client.  Their cons…
Browsing the questions asked to the Experts of this forum, you will be amazed to see how many times people are headaching about monster regular expressions (regex) to select that specific part of some HTML or XML file they want to extract. The examp…
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…

630 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question