+ const xmltooling::QName& role = m_peer->getElementQName();
+ if (XMLString::equals(role.getLocalPart(),RoleDescriptor::LOCAL_NAME))
+ m_policy.setRole(m_peer->getSchemaType());
+ else
+ m_policy.setRole(&role);
+
+ // Establish the "expected" issuer identity.
+ const XMLCh* entityID = dynamic_cast<const EntityDescriptor*>(m_peer->getParent())->getEntityID();
+ m_policy.setIssuer(entityID);
+ if (!m_policy.getIssuerMetadata())
+ m_policy.setIssuerMetadata(m_peer);
+
+ // Call the base class.
+ auto_ptr_char pn(entityID);
+ soap11::SOAPClient::send(env, SOAPTransport::Address(from, pn.get(), endpoint));