-
Key: C2WSDL12-5
-
Legacy Issue Number: 8995
-
Status: closed
-
Source: Borland ( Naveed Shaikh)
-
Summary:
Multi-dimensional arrays in IDL are required to be mapped to intermediate types for each of the sub-arrays. The naming scheme used by the specification can lead to name collision. Referring to section 1.2.7.6 page 1-14, an IDL with the following declaration typedef long matrix [5][3]; maps to complex types as below: <xsd:complexType name="_SE_ArrayOfint"> ... </xsd:complexType> <xsd:complexType name="_SE_matrix"> ... </xsd:complexType> <xsd:complexType name="ArrayOfint"> ... </xsd:complexType> <xsd:complexType name="matrix"> ... </xsd:complexType> However, if you have another type in the above IDL typedef long anotherMatrix[5][3]; This will also map to complex types with names _SE_ArrayOfint, _SE_anotherMatrix, ArrayOfint, anotherMatrix leading to name collision between XML schema types. Same goes for more than two-dimensional arrays. Proposed resolution: To have name collision-free types, an approach can be to include the name and size of that particular array. For example, the above IDL will produce the following schema types. <xsd:complexType name="_SE_ArrayOfint_matrix_3"> <xsd:complexContent> <xsd:restriction base="SOAP-ENC:Array"> <xsd:sequence> <xsd:element name="item" type="xsd:int" minOccurs="3" maxOccurs="3"/> </xsd:sequence> <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:int[]"/> </xsd:restriction> </xsd:complexContents> </xsd:complexType> <xsd:complexType name="_SE_matrix"> <xsd:complexContent> <xsd:restriction base="SOAP-ENC:Array"> <xsd:sequence> <xsd:element name="item" type="_SE_matrix_3" minOccurs="5" maxOccurs="5"/> </xsd:sequence> <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="_SE_matrix_3[]"/> </xsd:restriction> </xsd:complexContents> </xsd:complexType> <xsd:complexType name="ArrayOfint_matrix_3"> <xsd:sequence> <xsd:element name="item" type="xsd:int" minOccurs="3" maxOccurs="3"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="matrix"> <xsd:sequence> <xsd:element name="item" type="matrix_3" minOccurs="5" maxOccurs="5"/> </xsd:sequence> </xsd:complexType>
-
Reported: C2WSDL 1.1 — Thu, 22 Sep 2005 04:00 GMT
-
Disposition: Resolved — C2WSDL 1.2
-
Disposition Summary:
append "_<n>" suffix to the nth arising collision with the collided ArrayOf<type> identifier
-
Updated: Fri, 6 Mar 2015 20:58 GMT
C2WSDL12 — Section: 1.2.7.6 Multi-dimensional arrays in IDL
- Key: C2WSDL12-5
- OMG Task Force: CORBA/WSDL RTF