When viewing search WSDLs, you have the option of requesting a WSDL
specific to a single profile, or a global
All Profiles WSDL,
which can be used for any profile.
If you do not make use of Additional Fields, then there will be no difference between per-profile and global WSDLs.
Both per-profile and global WSDLs refer to the same search interface.
The same SOAP response is generated for both WSDLs. The only
difference is in how specific the WSDLs are - per-profile WSDLs
specify which Additional Fields occur in the results, but the
global WSDL must use
<xsd:any> as a catch-all, as the
Additional Fields may change from one profile to another.
Which you use is a trade-off that you must decide on.
For example, if your profile has Additional Fields called
location, then a per-profile WSDL will
specify that each result contains
<location> elements. WSDL tools can do things like
All Profileswsdl can be used for any profile. This is better if your application needs to query multiple profiles, or if you don't work with Additional Fields.
All ProfilesWSDL with
<xsd:any>, which allows it to not declare which Additional Fields will occur in the XML (as it may change from one profile to another).
This means that programs consuming the WSDL cannot know which Additional Fields will be returned, and will instead do things like offer an array of Additional Field XML elements that you must manually loop over to find the ones you want.