Issue 6631: element hierarchy is not valid
Issue 6634: The section "Typedef" needs an example with a no basic type
Issue 6638: there should NOT be a ¡°_target¡± element defined
Issue 7743: Section 1.2.8.2
Issue 7744: Section 1.2.8.5
Issue 7832: CORBA Object Reference Schema
Issue 7834: CORBA Source Annotation Namespace in schema
Issue 7835: Example WSDL Does not verify
Issue 8755: Section: 1.2.11
Issue 8806: Section: 1.2.7.10
Issue 8807: xsd:url type not defined in schema
Issue 12172: Section: 7
Issue 6631: element hierarchy is not valid (wsdlcorba-rtf)
Click here for this issue's archive.
Nature: Clarification
Severity: Significant
Summary: In the WS-I mapping of IDL sequence, the following element hierarchy is not valid : complexType / complexContent / sequence / element ('sequence' MUST NOT be a child of a 'complexContent')
A valid hierarchy is : complexType / sequence / element
Same issue for arrays in section 1.2.7.6.
Resolution: Remove the erroneous "complexContent" level from the hierarchy for both section 1.2.7.5 and 1.2.7.6.
Revised Text: in 1.2.7.5
Change: on page 1-11
"
<xsd:complexType name="Example.longSeq">
<xsd:complexContent>
<xsd:sequence>
"
to:
"
<xsd:complexType name="Example.longSeq">
<xsd:sequence>
"
change:
"
<xsd:complexType name="Example.strSeq">
<xsd:complexContent>
<xsd:sequence>
"
to:
"
<xsd:complexType name="Example.strSeq">
<xsd:sequence>
"
on page 1-12 Change:
"
<xsd.complexType name="Example.structSeq">
<xsd:complexContent>
<xsd:sequence>
"
to:
"
<xsd.complexType name="Example.structSeq">
<xsd:sequence>
"
In 1.2.7.6:
Change, on page :1-13:
"
<xsd:complexType name="Example.arrayLong" >
<xsd:complexContent >
<xsd:sequence >
"
to:
"
<xsd:complexType name="Example.arrayLong" >
<xsd:sequence >
"
change:
"
<xsd:complexType name="S.field_ArrayOfint">
<xsd:complexContent >
<xsd:sequence >
"
to:
"
<xsd:complexType name="S.field_ArrayOfint">
<xsd:sequence >
"
Chairs Note: during editing the convenience document, the following two productions also had a need to remove the complexContent lines :
change:
"
<xsd:complexType name="ArrayOfint">
<xsd:complexContent >
<xsd:sequence >
"
to:
"
<xsd:complexType name="ArrayOfint">
<xsd:sequence >
"
change:
"
<xsd:complexType name="matrix">
<xsd:complexContent >
<xsd:sequence >
"
to:
"
<xsd:complexType name="matrix">
<xsd:sequence >
"
Actions taken:
November 18, 2003: received issue
March 10, 2005: closed issue
Issue 6634: The section "Typedef" needs an example with a no basic type (wsdlcorba-rtf)
Click here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary: The section "Typedef" needs an example with a no basic type, like following :
// IDL struct S { long dummy; }; typedef S S_t;
// XSD <xsd:complexType name="S"> <xsd:sequence> <xsd:element name="dummy" type="xsd:int" maxOccurs="1" minOccurs="1" /> </xsd:sequence> </xsd:complexType>
<xsd:complexType name="S_t"> <xsd:complexContent> <xsd:restriction base="tns:S"> <xsd:sequence> <xsd:element name="dummy" type="xsd:int" maxOccurs="1" minOccurs="1" /> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType>
Resolution: Add the proposed example to the revision text
Revised Text: Add the following example to section 1.2.7.3:
"
// IDL
struct S { long dummy; };
typedef S S_t;
// XSD
<xsd:complexType name="S">
xsd:sequence>
xsd:element name="dummy" type="xsd:int" maxOccurs="1" minOccurs="1" />
/xsd:sequence>
</xsd:complexType>
<xsd:complexType name="S_t">
xsd:complexContent>
xsd:restriction base="tns:S">
xsd:sequence>
xsd:element name="dummy" type="xsd:int" maxOccurs="1" minOccurs="1" />
/xsd:sequence>
/xsd:restriction>
/xsd:complexContent>
</xsd:complexType>
"
Actions taken:
November 20, 2003: received issue
March 10, 2005: closed issue
Issue 6638: there should NOT be a ¡°_target¡± element defined (wsdlcorba-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: In the example, bar operation defined in SomeInterface are mapped as the following:
<message name="Example.SomeInterface.bar" >
<part name="_target" type="CORBA:Reference"/>
<part name="pi" type="xsd:float"/>
</message>
But according to the mapping rule in Section 1.2.8.2, there should NOT be a ¡°_target¡± element defined in the message. Whats more, CORBA::Reference has not been defined in the specification.
Proposed solution: Please make sure that ¡°_target¡± is required or optional.
Resolution: see above
Revised Text: In 1.2.8.5 , on page 1-25, change:
"
<message name="Example.SomeInterface.bar" >
<part name="_target" type="CORBA:Reference"/>
<part name="pi" type="xsd:float"/>
</message>
<message name="
"
to:
"
<message name="Example.SomeInterface.bar" >
<part name="pi" type="xsd:float"/>
</message>
<message name="
"
on page 1-26 change:
"
<!-- port for Example.SomeInterface -->
<portType name="Example.SomeInterface">
<operation name="bar" parameterOrder="_target pi">
"
to:
"
<!-- port for Example.SomeInterface -->
<portType name="Example.SomeInterface">
<operation name="bar" >
"
Actions taken:
November 25, 2003: received issue
March 10, 2005: closed issue
Discussion: Delete the erroneous target element, it is a holdover from one of the pre merged specs contributions
Issue 7743: Section 1.2.8.2 (wsdlcorba-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary: Section 1.2.8.2
In the example(Page 1-22, top), "readonly" attribute is mapped as follows:
<operation name="_get_longAttr" >
<output message="tns:MyAttrs._get_longAttrResponse"/>
<fault message=¡±tns:CORBA.SystemException¡±/>
</operation>
But in most of the SOAP specification implementations(Axis, .NET 1.1 etc.), the format like this means the
operation is a 'notify' operation.
Proposed solution: Maybe we should map as follows:
<message name=¡±longAttrRequest¡±>
</message>
<operation name=¡±_get_longAttr¡±>
<input message=¡±tns:longAttrRequest¡± />
<output message=¡±tns:MyAttrs._get_longAttrResponse¡±/>
<fault message=¡°tns:CORBA.SystemException¡±>
</operation>
Resolution: Close as Duplicate of Issue 6996
Revised Text:
Actions taken:
September 13, 2004: received issue
December 3, 2004: closed issue
Issue 7744: Section 1.2.8.5 (wsdlcorba-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: In the example:
<portType name="Example.SomeInterface">
<operation name="bar" parameterOrder="_target pi">
<input message="tns:Example.SomeInterface.bar"/>
<output message="tns:Example.SomeInterface.barResponse"/>
<fault message="_exception.Example.BadRecord"/>
<fault message="_exception.Example.UnknownError"/>
<fault message=¡±tns:CORBA.SystemException¡±/>
</operation>
</portType>
Most of the WSDL2java tool will use element'name' as a parameter's name. So, on receiving the WSDL as above (page
1-25), most WSDL2java tool will report an error in process for mapping WSDL to java.
Proposed solution: Maybe we should add a 'name' attribute in the fault element. For example, consider the
following IDL:
module Example{
exception BadRecord{
String why;
};
Interface SomeInterface{
Long bar(in float pi) raises(BadRecord),UnknownError
}
}
It should be mapped to:
<portType name="example.SomeInterface">
<operation name="bar" >
<input message="tns:Example.SomeInterface.bar" />
<output message="tns:Example.SomeInterface.barResonse"/>
<fault message="_exception.Wxample.BadRecord" name="badRecord"/>
<fault message="_exception.Example.UnknownError" name="error"/>
<fault message="tns:CORBA.SystemException" name="systemError"/>
</operation>
</portType>
Resolution: : Accept proposed change from source
Revised Text: In section 1.2.8.5:
On page 1-26, Change:
"
<fault message="_exception.Example.BadRecord"/>
<fault message="_exception.Example.UnknownError"/>
<fault message="tns:CORBA.SystemException"/>
"
to:
<fault message="_exception.Example.BadRecord" name="Example.BadRecord"/>
<fault message="_exception.Example.UnknownError" name="Example.UnknownError"/>
<fault message="corba:CORBA.SystemException name="CORBA.SystemException"/>
"
On pages 1-20, 1-21 (twice), 1-22 (twice), 1-23, and 1-24 (twice), of section 1.2.8.2
Change:
"
<fault message="tns:CORBA.SystemException"/>
"
to:
"
<fault message="corba:CORBA.SystemException" name="CORBA.SystemException" />
"
Actions taken:
September 13, 2004: received issue
March 10, 2005: closed issue
Discussion: WSDL 1.1 states the following:
"
2.4.5 Names of Elements within an Operation
The name attribute of the input and output elements provides a unique name among all input and output elements within the enclosing port type.
In order to avoid having to name each input and output element within an operation, WSDL provides some default values based
on the operation name. If the name attribute is not specified on a one-way or notification message, it defaults to the name of the operation.
If the name attribute is not specified on the input or output messages of a request-response or solicit-response operation, the name defaults
to the name of the operation with "Request"/"Solicit" or "Response" appended, respectively.
Each fault element must be named to allow a binding to specify the concrete format of the fault message. The name of the fault element is
unique within the set of faults defined for the operation.
"
Thus, to obey wsdl we have to accept the proposed change.
Also, all messages in the example operation definition need to be namespace qualified
Issue 7832: CORBA Object Reference Schema (wsdlcorba-rtf)
Click here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom@coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Corba IDL to WSDL interworking: ptc/03-11-02 Section 1.2.5: Object References The text states that the object reference maps to a sequence of URLs. However the schema has a maxOccurs=1 for the element. Solution Proposed by Submitter: In Section 1.2.5 change: “ <xsd:complexType name="ObjectReference"> <xsd:sequence> <xsd:element name="url" type="xsd:url" maxOccurs="1" minOccurs="1"/> </xsd:sequence> </xsd:complexType> “ to “ <xsd:complexType name="ObjectReference"> <xsd:sequence> <xsd:element name="url" type="xsd:url" minOccurs="1"/> </xsd:sequence> </xsd:complexType> “
Corba IDL to WSDL interworking: ptc/03-11-02
Section 1.2.3: Identifying the Source IDL
The text states that the annotation elements are in the CORBA namespace.
However both schema have the wrong targetNamespace.
The erroneous schema namespace information should be deleted. Put all the corba namespace type and element definitions in a single normative schema section and file.
Solution Proposed by Submitter:
In Section 1.2.3:
On pages 1-3 and 1-4
Delete the first four lines of each schema:
“
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.omg.org/IDL-MAPPED"
elementFormDefault="qualified" attributeFormDefault="unqualified">
“
and delete the final line of each schema:
“
</xsd:schema>
Add the following new normative schema for the CORBA namespace, gathering all the type and element definitions spread throughout the document (the schema for objectReference, from issue xxxx, is fixed in this new schema):
<?xml version="1.0" encoding="utf-8"?>
<!--
WSDL for IDL to WSDL CORBA Namespace
Name: corba.wsdl
-->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:corba="http://www.omg.org/IDL-WSDL/1.0/" targetNamespace="http://www.omg.org/IDL-WSDL/1.0/" name="corba">
<types>
<xsd:schema targetNamespace="http://www.omg.org/IDL-WSDL/1.0/">
<xsd:element name="SourceIDL" >
<xsd:annotation>
<xsd:documentation>IDL/WSDL Mapping Info</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="source" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="version" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SourceRepositoryID" >
<xsd:annotation>
<xsd:documentation>IDL Mapped Repository ID </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="repositoryID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="version" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ObjectReference">
<xsd:sequence>
<xsd:element name="url" type="xsd:url" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CORBA.TypeCode">
<xsd:sequence>
<xsd:element name="definition" type="xsd:url" maxOccurs="1" minOccurs="1"/>
<xsd:element name="typename" type="xsd:string" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CORBA.Any">
<xsd:sequence>
<xsd:element name="type" type="corba:CORBA.TypeCode" maxOccurs="1" minOccurs="1"/>
<xsd:element name="value" type="xsd:anyType" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="CORBA.completion_status">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="COMPLETED_YES"/>
<xsd:enumeration value="COMPLETED_NO"/>
<xsd:enumeration value="COMPLETED_MAYBE"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="CORBA.SystemException">
<xsd:sequence>
<xsd:element name="minor" type="xsd:unsignedInt" maxOccurs="1" minOccurs="1"/>
<xsd:element name="completion_status" type="corba:CORBA.completion_status" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="CORBA.SystemExceptionMessage">
<part name="_return" type="corba:CORBA.SystemException"/>
</message>
</definitions>
Corba IDL to WSDL interworking: ptc/03-11-02 Section 1.2.8 and 1.2.9 have several example wsdl descriptions. However, these are not in the proper format for a wsdl description. They should be editorially fixed in the Document, and made availalbe as informative files. Solution Proposed by Submitter: In Section 1.2.8 and 1.2.9 fix the wsdl descriptions to validate with the wsdl schema, and make them available as files. The RTF chair will make these files available in time for the vote on this issue.
The unknown type "xsd:url" must be replaced by "xsd:anyURI" in corba.wsdl. There are 2 occurences : <element name="url" ... <element name="definition" ...
The section "ValueType" needs to describe inheritance. The order between member (not inherited, inherited, indirectly inherited) must be defined. // IDL valuetype sampleY : sampleX { public char c; }; // XSD <xsd:complexType name="sampleY"> <xsd:sequence> <xsd:element name="a" maxOccurs="1" minOccurs="1" type="xsd:short"/> <xsd:element name="b" maxOccurs="1" minOccurs="1" type="xsd:int"/> <xsd:element name="c" maxOccurs="1" minOccurs="1" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="optional"/> </xsd:complexType>
I have some notes and questions to CORBA IDL to WSDL mapping. 1. corba.wsdl contains xsd:url type. But this type is not defined in schema. There is only xsd:anyURI. I think corba.wsdl is not valid wsdl!!! 2. TypeCode is mapped to url to wsdl document and type name. Why TypeCode is not mapped to QName? 3. Any is mapped to CORBA:TypeCode and xsd:any. I think better is mapping to xsd:any. Type is defined by xsi:type attribute in soap message. 4. Object reference is mapped to sequence of url. But this urls are urls to CORBA interfaces. It is not usefull for me. I neednot return corba reference (it is irrelevant for soap client), I need to return address of webservice or whole EndpointReference from ws-addresing, which transform soap messages to calls on this CORBA::reference. 5. Contact information for this specification mars@omg.org is not valid.
· Item 1 is duplicate of Issue 8755 (which was resolved with proposed change to "xsd:anyURI") · Item 2: current mapping works, proposed change is an enhancement which is out of scope for RTF. · Item 3: current mapping works. The full typecode is used to convey complete type information in the representation of CORBA Any. Proposed change is out of scope of RTF. · Item 4: current mapping works. Proposed change to use ws-addressing EPR is an enhancement which is out of scope for RTF.
The OMG specification [[http://www.omg.org/technology/documents/formal/WSDL_CORBA.htm|WSDL-SOAP to CORBA Interworking]] Version 1.0 (formal/04-04-01) includes several typos and formal errors. In chapter 7.4.3 (Restriction to WSDL Type System) the type //negativeInteger// missing in the list and the //PositiveInteger// item should not have the capital "P". The situation is very same in the following IDL module type definitions. In the chapter 7.4.4 (Mapping to enumerators) the authors of the specification missed one IDL limitations. It is not possible to have the same items in two or more different enums. For example if we have: <!--WSDL --> <simpleType name="X" restriction base="string"> <enumeration value = "A" /> <enumeration value = "B" /> <enumeration value = "C" /> </simpleType name> <!--WSDL --> <simpleType name="Y" restriction base="string"> <enumeration value = "A" /> <!--error, A is already defined--> </simpleType name> As you can see it is not possible to have an A enumeration item in both X and Y enums while using IDL. We must use prefixes here -- I do recommend to use //X_A, X_B, X_C and Y_A// names for enum items in this case. In the chapter 7.5 (Mapping for Complex XML Schema Types) I am missing the mapping for empty complex types. Sometimes it is useful to create empty complex types (for example empty sequence). One of our customers use empty sequences for implementing empty responses in oneway service bus operations. We have used an empty struct with a dummy wstring type which is always empty and called //T_dummy//. There is a typo in the example in 7.5.5 chapter Mapping Attributes of Complex Type: <xsd:complexType> taggedShort <xsd:simpleContent> <xsd:extension base="xsd:short"> <xsd:attribute name="type" tag="xsd:string" use="optional"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> The first line should be //<xsd:complexType name="taggedShort"// and the generated IDL example has a typo in the last type: // OMG IDL struct taggedShort { short value; sequence<wstring> tag; }; The last type should be called "type" and not "tag". The correct version follows. // OMG IDL struct taggedShort { short value; sequence<wstring> type; };