I've been trying to parse the metadata WSDL provided by Salesforce to generate apex code that might help in using the metadata API. But somehow when I parse the WSDL it keeps giving me the error -

enter image description here

Does somebody have any answer to this issue?


3 Answers 3


Rather than reinventing the wheel, just install the Apex Metadata API wrapper from GitHub

You get:

  • Dozens of examples of how to retrieve and update various metadata objects (fields, listviews, etc.) See class MetadataServiceExamples.cls
  • A well-tested library that is easy to use with dozens of examples around the web, including here on SFSE. Here's a recent post by me showing some simple code

Unfortunately, in the Apexclass you've used the restricted keyword 'metadata'. Try to change(or map) this keyword to other world.

  • I am afraid i still am unsure about where the changes should be made. The keyword metadata is used several times in the WSDL and they might be for different purposes. I just don't want to create any more errors out of it. Could you please be a little more specific ? Jan 21, 2017 at 11:56
  • Could you show the example of your code ?
    – Adamo
    Jan 21, 2017 at 11:58
  • Well the apex code is not yet generated since I am unable to parse the XML/WSDL file. Here's a link to my git repository. The file is named as metadata.xml . Can you please have a look at it? Or may be try to parse it in your own org if it's not too much of a pain? Thanks in advance! Here's the repository -> Jan 21, 2017 at 12:11
  • Ok. Could you explein me why you want to create Apex Class with method's which is currently implemented in the org ?
    – Adamo
    Jan 21, 2017 at 14:38
  • These methods are not available in the org directly, you either have to parse a WSDL file or add the apex classes as @cropredy mentioned in his answer, unfortunately none seem to work. Jan 23, 2017 at 5:28

Looks like I've found the solution to it.

So the GitHub repository of Andrew Fawcett has a Deploy to Salesforce button that deploys all the code to your dev org, I already had the same classes in my org but I did not pay attention to the error.

The create() method has been deprecated. I had to use createMetadata().

The code is working fine.

Thanks for the help @Adamo and @cropredy.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .