Issue Details (XML | Word | Printable)

Key: TUSCANY-1297
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Matthew Peters
Votes: 0
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Tuscany

xsi:type in generated XML causes it not to validate/load into: visual studio or Mindreef SOAPscope

Created: 23/May/07 04:14 PM   Updated: 14/Jun/07 10:38 AM
Return to search
Component/s: C++ SDO
Affects Version/s: Cpp-Next
Fix Version/s: Cpp-Next

Time Tracking:
Not Specified

Environment: any

Resolution Date: 13/Jun/07 12:15 PM


 Description  « Hide
We use SDO to build and generate WSDL. We use the standard WSDL and SOAP schemas (schemata?) to build the model then add port, operation, binding etc. elements, then serialise the lot to XML. There are occasional xsi:type attributes in the serialised XML which cause the WSDL not to validate or load in visual studio. Here is a snippet from WSDL that we have generated in this way:

<binding name="Labnet_API_LabnetOnline_001_ImplementationBinding"
type="tns2:Labnet_API_LabnetOnline_001_ImplementationPortType">
    <operation name="getRestorations">
      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>

      <tns3:operation xsi:type="tns3:tOperation" soapAction=""/>
    </operation>
<tns3:binding xsi:type="tns3:tBinding"
transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>

These xsi:type attributes cause this WSDL to fail to load. I quote one of our users:

> MS Visual Studio (I'm using Visual Web Dev 2005 Express Edition) will
> not import a SCA generated WSDL. It complains that it does not validate
> because of the following element attributes:

> xsi:type="tns3:tBody" of <tns3:body>
> xsi:type="tns3:tAddress" of <tns3:address>

> Stripping out these attributes resolved the VS WSDL import problem.

and a different bug report but the same problem:

> WSDL generated does not validate (ran against the oXygen editor and
Mindreef SOAPscope).

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #546667 Tue Jun 12 23:26:38 UTC 2007 robbinspg TUSCANY-1297 Write open properties in "correct" place
This fix will write any open properties after the declared properties of the first Type in the
extension chain that is an Open Type, then the remaining declared properties.

This handles the case where a Type extends an Open type and is therefore implicitly open itself
but is not explicitly open, i.e. it has no "any" elements in schema terms. Any open properties
should be written before declared properties of the implicitly open type.

I also added some common namespace declarations so when serialising a wsdl document for example
you will now see soap:, wsdl: etc. instead of tns4:, tns5: etc.
Files Changed
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.h
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h

Repository Revision Date User Message
ASF #546760 Wed Jun 13 07:10:48 UTC 2007 robbinspg TUSCANY-1297 Do not write xsi:type information for global elements
Files Changed
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp

Repository Revision Date User Message
ASF #546761 Wed Jun 13 07:12:18 UTC 2007 robbinspg TUSCANY-1297 Do not write xsi:type information for global elements
Files Changed
MODIFY /incubator/tuscany/cpp/sdo/runtime/core/test/loadload-output.txt