cancel
Showing results for 
Search instead for 
Did you mean: 

Can't use Data type created with External Definition

Former Member
0 Kudos

Hi,

In the repository, I would like to transport a very complexe DataType from one XI system to an other one. As I don't want to spend a week to create data types, I created a new External Definitions and loaded my XSD schema (that I exported as XSD from Source system) with Messages parameter set to "From All Available Global Elements". I don't set the "Source". I can see the "Imported Document" and "WSDL", but the Messages and External References tabs are empty. Furthermore, I can't use my new message type in a Outbound Asyncrhronous Message Interface.

Here is a very small XSD file that I use to test my scenario.

-


<?xml version="1.0" encoding="ISO-8859-1"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://veilleux.1" targetNamespace="http://veilleux.1">

<xsd:complexType name="SimpleType1">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

bdfdbef1df9711daa2c9001125f86068

</xsd:appinfo>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Name" type="SimpleType2">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

bdfdbef0df9711daa821001125f86068

</xsd:appinfo>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="SimpleType2">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

0fecc852df9811da899a000f206d294f

</xsd:appinfo>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Name" type="xsd:string">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

ac58afc0df9711da86af001125f86068

</xsd:appinfo>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

-


Any one can help me please.

Thanks, Davy

Accepted Solutions (1)

Accepted Solutions (1)

moorthy
Active Contributor
0 Kudos

Hi Davy,

First check is your XSD is correct one (syntax check) for this you can use any XML editors like XMLSpy, Stylus studio etc.

Then go to External Definition->Category->XSD->and just import it. Make sure that your schema file name extension is .xsd.

I think it will work. Then go to Mapping (SOurce part)and just dump/import this External Definition to check the Message Strucure. It is easy to verify your data strucure in the Mapping .

Hope this helps,

REgards,

Moorthy

Former Member
0 Kudos

Hi Davy,

Please can you check if

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://veilleux.1" targetNamespace="http://veilleux.1">

<xsd:complexType name="SimpleType1">

1. If your Target namespace and ComplexType are correct.

Regards

Vijaya

Former Member
0 Kudos

Hello Vijaya,

what do you mean, if Target namespace and ComplexType are correct? Is there any restrictions for the namespace format or ComplexType name?

Thanks

Former Member
0 Kudos

Hi Davy,

Is the namespace the same where you are creating the ED?

Regards

Vijaya

Former Member
0 Kudos

Hello Moorthy,

My XSD is correct since it's XI itself that generated it from real Data Type on my source System (but I tested it in Internet Explorer and it looks fine).

I tried to select my ExternalDefinition as source in MessageMapping, but XI doesn't let me specify it (Apply button is disabled when I select my ExternalDefinition).

I'm pretty sure that it is related to the fact that I should have a Data Type in "Messages" and "External References" tabs and I have nothing. My XSD is legal, but it seems that XI can't automatically create the data type from it.

Do you have any other idea?

Thanks, Davy

Former Member
0 Kudos

Hi all,

I finally understood what was the problem. In my XI source System, I have to <b>generate the XSD Schema from Message Type instead of Data Type</b>, otherwise, I don't have any instance of my data (just a ComplexeTypeDefinition). With this, I can use my XSD with ExternalDefinition and create a Message Interface with it.

Best Regards, Davy

Answers (0)