Software Affected: EngageOne Designer
Product Feature: Data Format Editor
Product Feature: Data Format Editor
Issue
When importing XML, it is causing errors when the data format editor is saved:

Cause
Structure of XML\XSD as follows:
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="addressLine" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="postCode" type="xs:string"/>
</xs:sequence>
</xs:complexType>
which is made up of two elements 'addressLine' and 'postCode'.
In addition we have a further complex-type 'addressInternationalType' which uses XML inheritance extension from the base type 'addressType' - eg:
<xs:complexType name="addressInternationalType">
<xs:complexContent>
<xs:extension base="addressType">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="addressLine" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="postCode" type="xs:string"/>
</xs:sequence>
</xs:complexType>
which is made up of two elements 'addressLine' and 'postCode'.
In addition we have a further complex-type 'addressInternationalType' which uses XML inheritance extension from the base type 'addressType' - eg:
<xs:complexType name="addressInternationalType">
<xs:complexContent>
<xs:extension base="addressType">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Resolution
UPDATED: September 26, 2017We do NOT support xs:extension using complex types.
We do support xs:extension using attributes.
Page 309 Designer Users Guide
Using xsi:type attributes
The <xs:extension> construct allows you to take a base element structure, and add additional
information. For example, generic address information could be enhanced by the addition of
State/ZIP code values for US addresses, or County/Postcode values for UK addresses. To allow
additional attributes in your data, you will need to include the appropriate <xs:extension>
constructs in the schema to cater for the additional properties and provide xsi:type attributes
in the data, for example:
<Address xsi:type="USAddress" … \>
<Address xsi:type="UKAddress" … \>
We do support xs:extension using attributes.
Page 309 Designer Users Guide
Using xsi:type attributes
The <xs:extension> construct allows you to take a base element structure, and add additional
information. For example, generic address information could be enhanced by the addition of
State/ZIP code values for US addresses, or County/Postcode values for UK addresses. To allow
additional attributes in your data, you will need to include the appropriate <xs:extension>
constructs in the schema to cater for the additional properties and provide xsi:type attributes
in the data, for example:
<Address xsi:type="USAddress" … \>
<Address xsi:type="UKAddress" … \>