Issues for CORBA-WSDL/SOAP Finalization Task Force

To comment on any of these issues, send email to corbawsdl-ftf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 5785: CORBA-WSDL/SOAP: Section 1.2.2.1
Issue 5786: CORBA-WSDL/SOAP: Section 1.2.3
Issue 5787: Section 1.2.3 repository id inconsistency
Issue 5788: CORBA-WSDL/SOAP: section 1.2.4
Issue 5790: CORBA-WSDL/SOAP: Section 1.2.7.10
Issue 5791: CORBA-WSDL/SOAP: Section 1.2.7.10.3
Issue 5792: CORBA-WSDL/SOAP: section 1.2.8.2 , 1.2.8.4 and 1.2.8.5
Issue 5793: CORBA-WSDL/SOAP: Section 1.2.7.4
Issue 6613: CORBA fixed types
Issue 6994: 'CORBA to WSDL/SOAP Section 1.2.8.2
Issue 6995: 'CORBA to WSDL/SOAP: example for operation mapping
Issue 6996: CORBA to WSDL/SOAP: example for attributes mapping

Issue 5785: CORBA-WSDL/SOAP: Section 1.2.2.1 (corbawsdl-ftf)

Click here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.2.1 -
tns is a single namespace for all mapped IDL from the entire corba
world.
The module names for IDL across this vast namespace, need to be
sufficiently qualified with pre-fixes (such as Type ID, or Pragma
Prefix) to avoid module name collisions.


Proposed Resolution: FTF needs to determine appropriate prefixes or
namespaces to assure module name uniqueness in the generated WSDL

Resolution: see above
Revised Text: Remove the following text from the “tns” row of the table in 1.2.2.1 “ (There are still some issues to be addressed at the FTF stage around how we should map repository IDs into namespaces, so it is likely that some sort of concatenation of namespace and ID will occur). “ Also, in section 1.2.4 Modules: Change “ IDL modules are represented in WSDL as prefixes to the names contained in the module. These prefixes are concatenated using a “.” as a separator. For example, an entity “X” in a module “M” will have the name “M.X” in WSDL. “ to the following: “ For every module name which does not collide with another module name, across the set of IDL artifacts which are being mapped to a WSDL document, then the scoped name of the module starting from the root module name using the "." character as separator between names shall be the effective Id used in the corresponding WSDL. If there is a module name collision, apply the following rules to the module name which causes the collision: a. If there are no pragma or typeid/typeprefix directives that applies to a module name then the scoped name of the module starting from the root module name using the "." character as separator between names shall be the effective Id used in the corresponding WSDL. b. If there is a pragma prefix or a typeprefix directive that applies to the module name then the prefix specified in the directive/pragma shall be of the form: <prefix string> "_" <effective Id from (1)> If no such directives apply to the module name in question then the effective Id shall be the same as in (1). c. If there is a pragma version that applies to the scopename then the version string shall be appened to the effective Id obtained in (2), that is the effective Id will be of the form: <effective Id from (2)> "_" <version string> d. If a pragma id or a typeid directive applies to the module name in question then: · If the first four characters of the string specified in the directive/pragma is "IDL:" then the string with the "IDL:" prefix removed and with the "/" characters in the remaining string substituted by the "." character shall be the effective Id. · If the Repository Id type prefix in the directive/pragma is something other than "IDL:" then the entire id string shall be used as the effective Id · If any characters which are not valid for XML element names are encountered in the mapped module name, they shall be replaced with “_”.
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Discussion:
Resolution:  

 

Append a  prefix (if present and required) in front of the module name.  

 

Need to fix all examples to use this pragma prefix in module name prefixes.

 

To avoid invalid XML element names, use “_” rather than “:” (which is reserved for use with XML namespaces) in the name prefixes


Issue 5786: CORBA-WSDL/SOAP: Section 1.2.3 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.3 - need to have appropriate text to describe the nature of
the source "hint".  Examples might be included, using filenames.


Proposed Resolution: FTF should determine appropriate text.


Resolution: The nature of the hint can remain an implementation specific matter
Revised Text:
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Issue 5787: Section 1.2.3 repository id inconsistency (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.3 - there is an inconsistency, in that the documentation
schema for the repository ID dos not include the version of the mapping,


as included in the URL source documentation schema.
Knowing what version of the IDL to WSDL mapping produced the WSDL is
important for gateway design.


Proposed Resolution: add mapping version to the respositoryID
documentation schema.

Resolution: Add mapping version to the repositoryID documentation schema
Revised Text: In section 1.2.3, schema for IDLsource: change: “ <xsd:documentation>IDL/WSDL Mapping Info</xs:documentation> “ to “ <xsd:documentation>IDL/WSDL Mapping Info</xsd:documentation> “ also , in the same schema change: “ <xsd:element name="version"> type="xsd:string" minOccurs="1" maxOccurs="1"/> “ to “ <xsd:element name="version" type="xsd:string" minOccurs="1" maxOccurs="1"/> “ also, in the example text after the first schema, change (to match the schema name for the complex type): “ <wsdl:documentation> <CORBA:MappingInfo> <CORBA:source>IDL Source</CORBA:source> <CORBA:version>1.0</CORBA:version> </CORBA:MappingInfo> </wsdl:documentation> “ to: “ <wsdl:documentation> <CORBA:SourceIDL> <CORBA:source>IDL Source</CORBA:source> <CORBA:version>1.0</CORBA:version> </CORBA:SourceIDL> </wsdl:documentation> also, change the following text for the repositoryID form schema and example from: “ <?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"> <xsd:element name="repositoryID" type=”xsd:string” minoccurs=0maxoccurs=1/> </xsd:schema> The generated WSDL will then use this schema to indicate the mapping information as shown in the following example: <CORBA:repositoryID> repository-id </CORBA:repositoryID> “ to the following: “ <?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"> <xsd:element name="SourceRepositoryID" minoccurs=0> <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:schema> The generated WSDL will then use this schema to indicate the mapping information as shown in the following example: <wsdl:documentation> <CORBA:SourceRepositoryID> <CORBA:repositoryID>repositoryIDtext </CORBA:repositoryID> <CORBA:version>1.0</CORBA:version> </CORBA:SourceRepositoryID> </wsdl:documentation> “
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Discussion:
This is a bug.  There is also two typographical errors in the schema for IDL source


Issue 5788: CORBA-WSDL/SOAP: section 1.2.4 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
section 1.2.4 - The sentence "The most significatn is that XML flattens
the constructed namespace to a single targeted namespace when an XML
schema is imported." does not seem quite correct. Avoiding a large
number of files for the wsdl processor to deal with is a major reason
cited by the submitters.


Proposed Solution: Replace the offending sentence, with: "Having a
separate namespace for each imported module results in a large number of


files for the WSDL processor to deal with when constructing a gateway."

Resolution: Agree to editorial fix
Revised Text: In section 1.2.4 change: “ The most significant is that XML flattens the constructed namespace to a single targeted namespace when an XML schema is imported. “ to: “ Having a separate namespace for each imported module results in a large number of files for the WSDL processor to deal with when constructing a gateway. “
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Issue 5790: CORBA-WSDL/SOAP: Section 1.2.7.10 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.7.10 ­
Only public state members are mapped. Since use of the Dynamic Any api
allows access to both the private
and public members, this restriction was challenged by the AB reviewer
as unwarranted.
Also the sentence "For example, DII/DSI bridges will be unable to
process value types." is not justified.


The dynamic ANY api can be used to access value type state members in a
DII/DSI based gateway.
If private state cannot be represented, an input value type parameter
which has private state will not be mapped to the IDL server.


Proposed Solution:
Delete offending sentence about dynamic gateways.
Unless the private member restriction can be justified, change the spec
to map both private and public value type state members.

Resolution: Remove the restriction of not mapping Private state members
Revised Text: Remove the restriction of not mapping Private state members. Revised Text: In 1.2.7.10: Remove the following text from the first sentence: “, though only public attributes are mapped.” Change: “ Basic valuetypes are mapped to structs, as noted above. Private fields are ignored. For example, consider the following: // IDL valuetype sampleX { public short a; private long b; } The private field “b” is ignored, so this maps to: <complexType name="sampleX"> <xsd:sequence> <xsd:element name="a" type="xsd:short"maxOccurs="1" minOccurs="1"/> </xsd:sequence> “ to the following: “ Basic valuetypes are mapped to structs, as noted above. Both Public and Private fields are mapped. For example, consider the following: // IDL valuetype sampleX { public short a; private long b; } This maps to: <complexType name="sampleX"> <xsd:sequence> <xsd:element name="a" type="xsd:short"maxOccurs="1" minOccurs="1"/> <xsd:element name="b" type="xsd:int"maxOccurs="1" minOccurs="1"/> </xsd:sequence>
Actions taken:
December 18, 2002: received issue
November 6, 2003: closed issue

Discussion:
Since the dynamic ANY api can be used to access all value type state members in a DII/DSI gateway, the restriction to not mapping private state members needs to be removed


Issue 5791: CORBA-WSDL/SOAP: Section 1.2.7.10.3 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.7.10.3 - need to represent value type in IDL sequence as an
IdRef/value choice.


Proposed Resolution:
fix spec to use the idRef/Value choice for sequence<valueType>.

Resolution: see above
Revised Text: In 1.2.7.10 change: “ Mapping of value types as struct or value type members IDL value types can have recursive definitions, allowing complex structures, such as graphs, to be represented. This occurs whenever a value type has a state member that is the same type as its containing value type. Such cycles in an instance graph can be “chained” though a series of value types, which contain members of each other’s own type. [Reviewer: should though be changed to through?] Due to its complexity, support at run time for mapping shared value types is a separate, optional, conformance point for this specification. Whenever an IDL struct or an IDL value type includes a member that is a value type, the corresponding sequence element for the value type member must be mapped to an xsd:choice element, containing either: • an element which is an that valuetype or, [Reviewer: Please clarify] • an element which is a reference to a value type instance included in the same XML document. “ to the following: “ Mapping of value types as struct or value type members IDL value types can have recursive definitions, allowing complex structures, such as graphs, to be represented. This occurs whenever a value type has a state member that is the same type as its containing value type. Such cycles in an instance graph can be “chained” through a series of value types, which contain members of each other’s own type. Due to its complexity, support at run time for mapping shared value types is a separate, optional, conformance point for this specification. Whenever an IDL struct, sequence, or value type includes a member that is a value type, the corresponding sequence element for the value type member must be mapped to an xsd:choice element, containing either: • an element which is a value of that valuetype or, • an element which is a reference to a value type instance included in the same XML document.
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Discussion:
Agree to bug fix.  Also need resolve editorial problems pointed out in bold by the reviewer in  ptc/3-01-14.

Resolution: include IDL sequence including a value type in the mapping algorithm generation of the IdRef/value choice type


Issue 5792: CORBA-WSDL/SOAP: section 1.2.8.2 , 1.2.8.4 and 1.2.8.5 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
section 1.2.8.2 , 1.2.8.4 and 1.2.8.5 - In all the Example WSDL, the
target namespace in definitions and the namespace in import using URL
"http://tempuri.org/anExample/.." do not seem correct.


Proposed Resolution: fix the example after resolving the Type prefix FTF


issue on namespace and module name uniqueness.

Resolution: Fix the examples to use the correct target namespace url
Revised Text: In 1.2.8.2, 1.2.8.4, and 1.2.8.5, change: “ targetNamespace="http://tempuri.org/anExample/definitions" xmlns:tns="http://tempuri.org/anExample/definitions" xmlns:xsd1="http://tempuri.org/anExample/schemas" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl" > <import namespace="http://tempuri.org/anExample/schemas" location="http://tempuri.org/anExample.xsd"/> “ to: “ targetNamespace=" http://www.omg.org/IDL-Mapped/" xmlns:tns="http://www.omg.org/IDL-Mapped/" xmlns:CORBA=http://www.omg.org/IDL-WSDL/1.0/ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl" > <import namespace=" http://www.omg.org/IDL-WSDL/1.0/"/> “
Actions taken:
December 17, 2002: received issue
November 6, 2003: closed issue

Issue 5793: CORBA-WSDL/SOAP: Section 1.2.7.4 (corbawsdl-ftf)

Click
here for this issue's archive.
Source: Fujitsu (Mr. Tom Rutt, tom(at)coastin.com)
Nature: Uncategorized Issue
Severity:
Summary:
The mapping does not state what value should be used for the default
case.


Proposed Resolution:
Add text stating that any valid value for the discriminant, other than
those used
in the union definition, can be inserted for the default case.

Resolution: Accept proposal from source
Revised Text: In section 1.2.7.4 , add the following new paragraph after the existing first paragraph: “ Any valid value for the discriminant, other than those used in the union definition, may be inserted in the XML generated, at run time, for the default case. “
Actions taken:
December 18, 2002: received issue
November 6, 2003: closed issue

Issue 6613: CORBA fixed types (corbawsdl-ftf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary:
CORBA fixed types are mapped to the XML Schema "decimal" type (not "integer") 

And the element "restriction" of the map becomes : <xsd:restriction base="xsd:decimal"> 


The xsd:integer type have a facet fractionDigits fixed to 0.

Resolution: : Accept solution proposed by source
Revised Text: : in 1.2.7.9 change: " CORBA fixed types are mapped to the XML Schema "integer" type, with appropriate restrictions according to the original IDL (the "totalDigits" and "fractionDigits" attributes will be set appropriately). For example: // IDL typedef fixed<10,2> MyFixed this maps to: <!-- WSDL --> <xsd:simpleType name="MyFixed"> <xsd:restriction base="xsd:integer"> <xsd:totalDigits value="10"/> <xsd:fractionDigits value="2" fixed="true"/> </xsd:restriction> </xsd:simpleType> " to " CORBA fixed types are mapped to the XML Schema "decimal" type, with appropriate restrictions according to the original IDL (the "totalDigits" and "fractionDigits" attributes will be set appropriately). For example: // IDL typedef fixed<10,2> MyFixed this maps to: <!-- WSDL --> <xsd:simpleType name="MyFixed"> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="10"/> <xsd:fractionDigits value="2" fixed="true"/> </xsd:restriction> </xsd:simpleType>
Actions taken:
November 13, 2003: received issue
March 10, 2005: closed issue

Issue 6994: 'CORBA to WSDL/SOAP Section 1.2.8.2 (corbawsdl-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.8.2
In the example:
<message name="CORBA.SystemExceptionMessage" >
<part name="_return" type="CORBA.SystemException"/>
</message>
CORBA Specification says that CORBA Exception cannot be passed as paramters or return value. But the example seems to ¡°return¡± a SystemException.
Proposed solution: Maybe the example should be defined as the following according to the exception mapping rules:
<message name="CORBA.SystemExceptionMessage" >
<part name="exception" type="CORBA.SystemException"/>
</message>


Resolution: Close with no change. While confusing, the use of "_return" for the name is not invalid
Revised Text:
Actions taken:
February 19, 2004: received issue
March 10, 2005: closed issue

Issue 6995: 'CORBA to WSDL/SOAP: example for operation mapping (corbawsdl-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.8.2
Also, in the example for operation mapping. 
<portType name="SomeInterface" >
<operation name="bar" >
<input message="tns:SomeInterface.bar"/>
<output message="tns:SomeInterface.barResponse"/>
<fault message=¡±tns:CORBA.SystemException¡±/>
</operation>
</portType>
Here defines the fault message, yet its type is not CORBA.SystemExceptionMessage defined ahead, but CORBA.SystemException, which is defined as a complextype. 
Proposed solution: Maybe the following is right:
<fault message=¡±tns:CORBA.SystemExceptionMessage¡±/>

Resolution: Accept proposal from source
Revised Text: in section 1.2.8.2, page 1-20 in someInteface.bar operation definition Change: " <fault message="tns:CORBA.SystemException"/> " to " <fault message="corba:CORBA.SystemExceptionMessage"/> "
Actions taken:
February 19, 2004: received issue
March 10, 2005: closed issue

Issue 6996: CORBA to WSDL/SOAP: example for attributes mapping (corbawsdl-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Section 1.2.8.2
In the example for attributes mapping.
The get accessor maps to an operation with only an output message. It seems like a notification operation according to WSDL specification. But the semantics of attribute accessors should be request-response .So a get accessor should be mapped to a couple of messages.
Proposed solution :
Define the incoming message as a message without any parameter as the following:
<message name="MyAttrs._get_strAttr" />
<message name="MyAttrs._get_strAttrResponse" >
<part name="_return" type="xsd:string"/>
</message>
¡­
<portType name="MyAttrs" >
<operation name="_get_strAttr" >
<output message="tns:MyAttrs._get_strAttrResponse"/>
<fault message=¡±tns:CORBA.SystemException¡±/>
</operation>

Resolution: Accept proposal from source
Revised Text: In secton 1.2.8.2 on page 1-21 Change: " Attributes are mapped to get/set accessor operations. Read-only attributes generate a single "get" operation, whereas read-write attributes generate both "get" and "set" forms. "Set" operations have a single parameter, of the same type as the attribute, and a void return type. "Get" operations have no parameters, and the return type is the same as the attribute. The names of these accessor operations is generated by prefixing either "_get_" or "_set_" to the name of the attribute, as appropriate. " to: " Attributes are mapped to get/set accessor operations. Read-only attributes generate a single "get" operation, whereas read-write attributes generate both "get" and "set" forms. "Set" operations have a single parameter, of the same type as the attribute, and a void return type. "Get" operations have an input message with no parrts, and the return type is the same as the attribute. The names of these accessor operations is generated by prefixing either "_get_" or "_set_" to the name of the attribute, as appropriate. " Add the following, immediately under "<!-- Messages related to port: MyAttrs -->"; " <message name="MyAttrs._get_strAttr" /> <message name="MyAttrs._get_longAttr" /> " Change: " <operation name="_get_strAttr" > <output message="tns:MyAttrs._get_strAttrResponse"/> <fault message="tns:CORBA.SystemException"/> </operation> ' to: " <operation name="_get_strAttr" > <input message="tns:MyAttrs._get_strAttr"/> <output message="tns:MyAttrs._get_strAttrResponse"/> <fault message="tns:CORBA.SystemException"/> </operation> " on page 1-22 change: " <operation name="_get_longAttr" > <output message="tns:MyAttrs._get_longAttrResponse"/> <fault message="tns:CORBA.SystemException"/> </operation> " to: " <operation name="_get_longAttr" > <input message="tns:MyAttrs._get_longAttr"/> <output message="tns:MyAttrs._get_longAttrResponse"/> <fault message="tns:CORBA.SystemException"/> </operation> "
Actions taken:
February 19, 2004: received issue
March 10, 2005: closed issue

Discussion:
WSDL section 2.4 states the following:
"
Although the base WSDL structure supports bindings for these four transmission primitives, WSDL only defines bindings for the One-way and Request-response primitives.  It is expected that specifications that define the protocols for Solicit-response or Notification would also include WSDL binding extensions that allow use of these primitives.
"

The basic profile from WS-I states the following:
"
4.5.2 Allowed Operations

Solicit-Response and Notification operations are not well defined by WSDL 1.1; furthermore, WSDL 1.1 does not define bindings for them.

R2303 A DESCRIPTION MUST NOT use Solicit-Response and Notification type operations in a wsdl:portType definition.
"

Based on this, we really should change the mapping for the get accessor for attributes to use an empty request message (i.e., no parts) rather than NO Request message.  An operation with no input message is a notification type operation, which does not have a standard wsdl binding defined.