Bug 1022773

Summary: Automatically modify a column name at creating view model from XML schema
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Hisanobu Okuda <hokuda>
Component: EDSAssignee: Jorge Perez Bolano <jperezbo>
Status: NEW --- QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.3.1CC: soa-p-jira
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Hisanobu Okuda 2013-10-24 02:39:27 UTC
Description of problem:


Teiid designer modify column names automatically even if it's not necessary. I'll write 2 examples to describe this issue.

1. In the case of the view model from following schema, even if there are the same column names on the different table, it is numbered automatically.
(I think that the nameValidator object should be created as new instance every table or table's columns in GenerateVirtualFromXsdHelper.java.)

<complexType name="table_a">
<sequence>
<element ref="tns:column_a" />
<element ref="tns:column_b" />
</sequence>
</complexType>
<complexType name="table_b">
<sequence>
<element ref="tns:column_a" />
<element ref="tns:column_b" />
</sequence>
</complexType>

2. If there is a parent element to a column like the following schema, the parent element name is added before column names.
(See GenerateVirtualFromXsdHelper.java line 213 [2].)

<element name="table_a">
<complexType>
<sequence>
<element ref="tns:column_a"/>
<element ref="tns:column_b"/>
</sequence>
</complexType>
</element>
<element name="table_b">
<complexType>
<sequence>
<element ref="tns:column_a"/>
<element ref="tns:column_b"/>
</sequence>
</complexType>
</element>


Version-Release number of selected component (if applicable):
JBoss Developer Studio 5 
Teiid Designer 7.7.x

How reproducible:


Steps to Reproduce:
1. Create two xsd file.
test1.xsd
====
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.example.org/dictionary_b"
elementFormDefault="qualified"
targetNamespace="http://www.example.org/dictionary_b">

<element name="column_a" type="string" />
<element name="column_b" type="string" />

<complexType name="table_a">
<sequence>
<element ref="tns:column_a" />
<element ref="tns:column_b" />
</sequence>
</complexType>
<complexType name="table_b">
<sequence>
<element ref="tns:column_a" />
<element ref="tns:column_b" />
</sequence>
</complexType>
</schema>
====

test2.xsd
====
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.example.org/dictionay_a"
elementFormDefault="qualified"
targetNamespace="http://www.example.org/dictionay_a">
<element name="column_a" type="string"/>
<element name="column_b" type="string"/>

<element name="table_a">
<complexType>
<sequence>
<element ref="tns:column_a"/>
<element ref="tns:column_b"/>
</sequence>
</complexType>
</element>
<element name="table_b">
<complexType>
<sequence>
<element ref="tns:column_a"/>
<element ref="tns:column_b"/>
</sequence>
</complexType>
</element>
</schema>
====

2. Import schema files using teiid designer.
Teiid designer project -> Right click -> import -> Teiid designer -> XML Schemas

3. Create view model from schemas
XSD -> Right click -> Modeling -> Create Relational View Model from Schema action

Actual results:


Expected results:


Additional info: