# GWSExtensibility documentation

### Authors

Richard Frith-Macdonald (`rfm@gnu.org`)

Version: 25485

Date: 2007-09-14 13:54:55 +0100 (Fri, 14 Sep 2007)

Copyright: (C) 2008 Free Software Foundation, Inc.

### Contents -

1. Software documentation for the GWSExtensibility class
2. Software documentation for the GWSSOAPExtensibility class

# Software documentation for the GWSExtensibility class

## GWSExtensibility : NSObject

> Declared in:
>   GWSExtensibility.h

GWSExtensibility is an abstract class declaring the methods needed to implement WSDL extensibility.
The extensibility mechanism is the way that WSDL was designed to be future-proof, it works by defining certain points within a WSDL document at which extensibility elements may be inserted to give additional information.

The WebServices library reads in and stores extensibility elements in the form of GWSElement objects and looks up the GWSExtensibility objects to handle them using the namespaces of the elements read in.
If there is no registered handler (see [GWSDocument +registerExtensibility:forNamespace:] ) then the extensibility elements are ignored, but preserved for output when a document is written.
However, if a handler ihas been registered, the extensibility elements are validated when the document is read in, and the handler is also asked to perform service/coder setup when an attempt is made to perform an operation using a service defined in the document.

Method summary

- -validate:for:in:setup:

### validate: for: in: setup:

- (NSString*) validate: (GWSElement*)node for: (GWSDocument*)document in: (id)section setup: (GWSService*)service;
Method to validate an extensibility node for the specified document. The section argument is the object on whose behalf the extensibility instance is being parsed (eg a GWSPortType).
This must return `nil` if the extensibility node is valid, and a descriptive error message if it is not.
The optional service argument is, if present, a GWSService object which is about to send a message... in this case the method should modify the parameters of the message adding in keys to specify how the parameters should be encoded and where/how the message should be sent.

# Software documentation for the GWSSOAPExtensibility class

## GWSSOAPExtensibility : GWSExtensibility

> Declared in:
>   GWSExtensibility.h

An instance of this class is registered by default to handle the `http://schemas.xmlsoap.org/wsdl/soap/` namespace.