Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Salesforce by (11.9k points)

I am attempting to import a WSDL into Salesforce where one of the XML element contains both an element and a string value e.g.

 <foo bar="bob">baz</foo>

When I import this using the WSDL to Apex tool, the string value is not available in the generated class--just the attribute.

Here is the WSDL snippet:

<xs:complexType name="password">

   <xs:simpleContent>

     <xs:extension base="xs:string">

       <xs:attribute name="Type" type="xs:string"/>

     </xs:extension>

   </xs:simpleContent>

 </xs:complexType>

The generated class is:

public class password {
  public String Type_x;
  private String[] Type_x_att_info = new String[]{'Type'};
  private String[] apex_schema_type_info = new String[]{'http://schema.test.org/1_0','false','false'};
  private String[] field_order_type_info = new String[]{};
}
Is there a way I can manually modify this class to provide value without an inner element?

1 Answer

0 votes
by (32.1k points)
edited by

Modify your generated class to something like this:

public class password {

  public String input;

  public String Type_x;

  private String[] input_type_info = new String[]{'input','http://www.w3.org/2001/XMLSchema','string','1','1','false'}; // change 'input' to be the desired name of your element

  private String[] Type_x_att_info = new String[]{'Type'};

  private String[] apex_schema_type_info = new String[]{'http://schema.test.org/1_0','false','false'};

  private String[] field_order_type_info = new String[]{};

}

Enrolling in courses like Salesforce Training will help you to enhance your career! 

Browse Categories

...