cancel
Showing results for 
Search instead for 
Did you mean: 

How to Split XML and Schema in External Definition SAP PI ESR?

Former Member
0 Kudos

Hello Friend,

I need your helps,

I have a problem with file XML download, I attached a XML FILE PlantaEnvasadoraGLP.xml, when I load in External definition SAP PI - ESR, the format has schema error. I believe this could be solve by splitting the file XML and xsd in External Definition of SAP PI - ESR.

Does anybody Know How to Split XML File and Schemas and load them in SAP PI External Definition?

I attached a XML FILE PlantaEnvasadoraGLP.xml

thanks

Kind Regards

Luis Minaya

Accepted Solutions (1)

Accepted Solutions (1)

Snavi
Active Participant
0 Kudos

Hi Luis,

Please provide more details of the schema error that you are getting

The file that you have attached is a wsdl, which already contains the schema definition.

Are you are getting schema error for element "detalles" , this is defined as soapenc:Array in your wsdl, and i believe soapenc:Array are not supported and you may have to modify the definition to make it work.

Please look at the below sap help link for more detail

Import for WSDL Documents in RPC-Style Format - Enterprise Services Repository for SAP NetWeaver CE ...

Former Member
0 Kudos

Hello Friend,

I try to split Wsdl

In the image http://screencast.com/t/RjUVYSvd , the types generate Error in the External Definition,

Other Error is ArrayType  http://screencast.com/t/3U7yXewGdYO

for this Reason I try to split wsdl by schemas.

any idea how to split wsdl by schemas ?

thank you.

slds

LM

Snavi
Active Participant
0 Kudos

Hi Luis,

Not sure what is meant by split wsdl, if you open the file, you can copy the schema definition out of it.

the errors that you see are because of soap encoded array, which you can modify in your wsdl to get it imported correctly.

something like replacing your detalles element with

<element name="detalles" nillable="true" type="xsd:string"  minOccurs="0" maxOccurs="unbounded"/>

once you import the modified wsdl , the definition will be generated correctly in ESR.

And if you receiver want the soap encodings in the request message, you can use xslt mapping to explicitly add them during mapping.

Former Member
0 Kudos

Thank you for you reply Nadeep ,

I try to split File WSdl like image http://screencast.com/t/IgcAnaTXFwdL 

Kind Regards

LM

Snavi
Active Participant
0 Kudos

Hi Luis,

still unsure why you want to split it. but you can copy the schema definition out of the wsdl and store is externally.

and import the xsd to your wsdl

<xsd:import namespace="http://beans.webservicesglp.scopglp.osinerg.com" schemaLocation="EXTERNAL_DIRECTORY/DetalleOrden.xsd"/>

<xsd:import namespace="http://beans.webservicesglp.scopglp.osinerg.com" schemaLocation="EXTERNAL_DIRECTORY/OrdenPedido.xsd"/>

the schemaLocation is the location where you have stored the xsd's externally.

Note, you need to modify messages and operations in the wsdl based on the namespace of your external xsd's

once you import the modified .wsdl you will be able to see the imported xsd's and service definition. and you will be able to see the xsd's in external references of the service as your screenshot.

above all, I believe you only have to modify soap encoded definitions to make your current wsdl work.

wait for other experts to comment, may be there some other solution.

Former Member
0 Kudos

I try again but something is missing

share the image, http://screencast.com/t/DKLc7TJ6htT

http://screencast.com/t/n9aULXI92Q5N

http://screencast.com/t/z9zgVzTs92Tw

XSD are ok,

http://screencast.com/t/5xHqxGJayraO

thank you for the help.

Kind Regards

LM

Snavi
Active Participant
0 Kudos

Hi Luis,

The screenshots that you have attached are different to the .wsdl that you initially shared, and as said previously you need to modify messages as per your imported xsd's if namespaces are changed.

I have splitted the xsd and the wsdl from the initial wsdl that you provided (refer attached). also i have changed the soap encoded array elements

you can take this as an example and modify other wsdl that you have, also note if your receiver needs the soap encoding, you may still need to use java/xslt to add these

hope this helps

rename PlantaEnvasadoraGLP2.xml to PlantaEnvasadoraGLP2.wsdl

and other files to .xsd

Snavi
Active Participant
0 Kudos

DetalleOrden.xsd

Answers (1)

Answers (1)

former_member186851
Active Contributor
0 Kudos

Hello Luis,

Try generating XSD using XML.

XML to XSD Generater Online - xmlGrid.net