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 Parametric 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 Parametric Fields occur in the results, but the
global WSDL must use <xsd:any>
as a catch-all, as the
Parametric 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 Parametric Fields called
price
and location
, then a per-profile WSDL will
specify that each result contains <price>
and
<location>
elements. WSDL tools can do things like
declare response.price
and response.location
variables.
All Profiles
wsdl can be used for any profile. This is
better if your application needs to query multiple profiles, or if you
don't work with Parametric Fields.All Profiles
WSDL
with <xsd:any>
, which allows it to not declare which
Parametric 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 Parametric Fields will be returned, and will instead do things like offer an array of Parametric Field XML elements that you must manually loop over to find the ones you want.