cancel
Showing results for 
Search instead for 
Did you mean: 

XSD with includes importing in External Definitions

Former Member
0 Kudos

Hi,

I have 3 DTD's with a ebxml document. These DTD's reference to each other (so 1 main and 2 sub). Because there is a namespace in the DTD and this is not accepted by XI I have converted these DTD's to XSD's. Now I can import these files into the external definitions. When referencing the files in the sourcefield I can naviagate through the various definations. So far...everything is OK.

When I create a messagemapping using the external definition I only see the first element and the other elements (in the 2 included xsd's) are not shown. The structure of the main XSD is as follows:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" elementFormDefault="qualified" targetNamespace="http://www.ebxml.org/namespaces/messageHeader">

<xs:include schemaLocation="ebHeader.xsd" />

<xs:include schemaLocation="CatalogueRequest.xsd" />

<xs:element name="Envelope" abstract="true" />

</xs:schema>

In the messagemapping I only see element Envelope? The elements of ebHeader.xsd and CatalogueRequest.xsd are not shown.

Sombody any suggestions?

Thanks

Ron

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Ron,

I am not sure about the question you have.

Do you want to know why

1. The globally defined elements being defined in ebHeader.xsd and CatalogueRequest.xsd do not appear as External Messages of your main External Definition

or

2. When using External Message Envelope in Message Mapping, why is there no structure beneath the top node?

ad 1) For some technical reason global elements defined in included schemas are not recognized as External Messages of the main schema. You would have to use them as External Messages of the External Definition they are originally defined in.

ad 2) The element Envelope is defined abstract. I assume that the included schemas contain some elements that define the possible structure of this element via the substitutionGroup mechanism of XSD. The substitutionGroup-mechanism is currently not supported by the Integration Builder. This limitation is documented in the Excel sheet on supported XSD and WSDL features which can be found on the SAP marketplace.

Greetings Stephan

Former Member
0 Kudos

Hi Stephan,

I was talking about the second option. Do you have any idea how to avoid this?

Ron

Former Member
0 Kudos

Hi Ron,

I do not see an easy workaround. You would have to manipulate the XSDs on your own such that they do not use substitutionGroups and still describe the structure of your message. This surely requires some XSD knowledge.

Greetings

Stephan

Answers (2)

Answers (2)

Former Member
0 Kudos

Have you populated the "source" field of the referenced schemas with the exact same string you used in your schemaLocation? i.e. so that when you click on the external references tab, the name of the object you created is populated? If the name column is blank then you have not put a valid reference in.

Cheers

James

Former Member
0 Kudos

Hi James,

Yes I did. The external definitions are entered correctly.

Ron

former_member206604
Active Contributor
0 Kudos
Former Member
0 Kudos

Hi Prakash,

We are already on SP16 for XITOOLS. However, I tried what is described in the note, but it still doesn't work.

I read that the target namespaces is used as the namespace in the Integration Builder. So now I'm going to create a namespace in the repository that is equal to the target namespace in the XSD. Let's see if this works.

Maybe you still have any suggestions?

Ron