cancel
Showing results for 
Search instead for 
Did you mean: 

XSd edit and import isssue which is using international XML standards OASIS UBL for Web Service generation

Former Member
0 Kudos

Hello Experts

My project is using international XML standards OASIS UBL for generation of Web service

The scenario is Web Service – PI – PROXY (CRM).

It is an existing work done and all the amendments were there in the XSDs. Now there is a requirement to add and delete some fields from the xsd (it is a nested XSD referencing to other XSDs which are also saved in the same external definition in PI) and import it back via external definition into PI 7.0 and use it in a message interface to call proxy.

What I did “exported the xsd “

tools – Export original document - save

Now I opened the xsd using edit with Altova XML spy tool and made some changes in it by deleting a field from it. When I am trying to save is using ctrl+S, it gives the following error:

“the file is not valid .If you save the file in its current state, other XML processors may have problem opening the file. Do you really want to save the file as it is?”

I did save it and imported it in PI by creating new external definition and selecting XSD in the Category.

It is not creating the WSDL and giving the following error:

“Unable to convert imported document to WSDL

Reason: Schema must start with the tag <schema> that belongs to "http://www.w3.org/2001/XMLSchema" namespace

Check the selected category”

Also it is not referencing the previous XSDs which were there in External References Tab.

I am attaching the screenshot of what I exported and opened in Altova.

Please suggest some solution.

Regards

Neha

Accepted Solutions (1)

Accepted Solutions (1)

Muniyappan
Active Contributor
0 Kudos

Hi,

go to old external definition-->xsd tab-->export.

save the file.

now open it with some browser like internet explorer.(just checking file is valid or not).

then delete the fields. again open in browser. it should open as it opened before.

this is for checking xsd is valid or not.

if the xsd file is not valid then importing xsd into ESR won't help.

you could try like deleting one element then check.

Regards,

Muniyappan.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi

I exported it again as original xsd document...did the necessary changes and it is fine now. Hope it will work when I generate WSDL out of it too.

Thanks

Neha

Former Member
0 Kudos

Hello Neha,

   Have you already solved the issue? Currently I have the same situation as yours.

   I also exported the XSD file and save and add three new feilds into it manually and then plan to re- import it as external definition.

  But my concern is that there are several revelant XSD files which refer to each other,  and I just need to modify one of them.  Can I just re-import the updated XSD file and replace the original one?

Thank you very much.

Best Regards,

Tab

Former Member
0 Kudos

Hi Tab

Yes you can do that but do keep the old one with you if any problem occurs in between. I also made changes in some if the xsd and uploaded them back again

-

Neha

Former Member
0 Kudos

Hi Neha,

Thank you very much:)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

I did save it and imported it in PI by creating new external definition and selecting XSD in the Category.

I think this is the cause of your problems, you imported a WSDL with a category as XSD.

It is not creating the WSDL and giving the following error:

“Unable to convert imported document to WSDL

Reason: Schema must start with the tag <schema> that belongs to "http://www.w3.org/2001/XMLSchema" namespace

Check the selected category”

What PI would do is to search the <schema> tag, but since the document is a wsdl, it would start with <wsdl>. Use the WSDL category, import the referenced schemas as xsds and you'll be fine

Hope this helps,

Mark

Former Member
0 Kudos

UBL is a standard as you say and the XSDs are provided and may be changed by OASIS. Any changes you make on your own results in incompatibility with the standard.

I don't recommend using UBL to generate proxies in CRM (if it's that what you are doing) since it's very complex. Rather create your own proxy structure with SAP global data types and map to UBL in PI.

Why do you need to add fields? UBL is designed very generic to meet different requirements, so it should be possible to find an appropriate field for your purpose. And why would you delete fields?

Former Member
0 Kudos

Martin

This is how we have done it in the past. I can't change the standard way of doing it. Though I exported it again made the changes and it seems to be working.

Many Thanks

Neha