Introduction
Instructions
Here is the out of the box XSD file that would need to be used with WADL to generate stubs
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="attribute" type="attribute"/>
<xs:element name="authorizationRequest" type="authorizationRequest"/>
<xs:element name="authorizationResult" type="authorizationResult"/>
<xs:element name="loginRequest" type="loginRequest"/>
<xs:element name="loginResponse" type="loginResult"/>
<xs:element name="logoutRequest" type="logoutRequest"/>
<xs:element name="logoutResponse" type="logoutResult"/>
<xs:element name="serviceRequest" type="serviceRequest"/>
<xs:complexType name="authorizationResult">
<xs:sequence>
<xs:element name="message" type="xs:string" minOccurs="0"/>
<xs:element name="resultCode" type="authorizationResultCodes" minOccurs="0"/>
<xs:element name="sessionToken" type="xs:string" minOccurs="0"/>
<xs:element name="identityToken" type="xs:string" minOccurs="0"/>
<xs:element name="authorizationResponses" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="attribute" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="attribute">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="value" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="logoutRequest">
<xs:complexContent>
<xs:extension base="serviceRequest">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="serviceRequest">
<xs:sequence>
<xs:element name="userName" type="xs:string" minOccurs="0"/>
<xs:element name="password" type="xs:string" minOccurs="0"/>
<xs:element name="binaryCreds" type="xs:string" minOccurs="0"/>
<xs:element name="action" type="xs:string" minOccurs="0"/>
<xs:element name="sessionToken" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="authorizationRequest">
<xs:complexContent>
<xs:extension base="serviceRequest">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="logoutResult">
<xs:sequence>
<xs:element name="message" type="xs:string" minOccurs="0"/>
<xs:element name="resultCode" type="logoutResultCodes" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="loginResult">
<xs:sequence>
<xs:element name="message" type="xs:string" minOccurs="0"/>
<xs:element name="resultCode" type="loginResultCodes" minOccurs="0"/>
<xs:element name="sessionToken" type="xs:string" minOccurs="0"/>
<xs:element name="identityToken" type="xs:string" minOccurs="0"/>
<xs:element name="authenticationResponses" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="attribute" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="loginRequest">
<xs:complexContent>
<xs:extension base="serviceRequest">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="authorizationResultCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="AUTHORIZED"/>
<xs:enumeration value="NOTAUTHORIZED"/>
<xs:enumeration value="NOT_PROTECTED"/>
<xs:enumeration value="NOT_CONNECTED"/>
<xs:enumeration value="SERVER_ERROR"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="logoutResultCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="LOGOUT_SUCCESS"/>
<xs:enumeration value="LOGOUT_FAILURE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="loginResultCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="USER_CHALLENGE"/>
<xs:enumeration value="LOGIN_FAILED"/>
<xs:enumeration value="LOGIN_SUCCESS"/>
<xs:enumeration value="RESOURCE_NOT_PROTECTED"/>
<xs:enumeration value="SESSION_VALID"/>
<xs:enumeration value="SESSION_INVALID"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
As you can see from the .xsd above, RESTAPI uses same class (Service Request) for all authorization requests in implementation which is why you are seeing single class being mapped in XSD. You would also need to adapt the POJO/STUBS automatically generated classes to match your Webservice protection (domain/realm/resource).
Note: For Authorization REST request resource is not required. RESTAPI picks resource from URL (i.e., subresources after application id in URL). We will be updating docops to remove resource field from RESTAPI examples.