anchor.diff:  %%-----------------------------------------------------------------------------
   %% Request construction
   %%-----------------------------------------------------------------------------
  +
  +%% ---------------- disco ----------------
  +
  +-spec discover_nodes(escalus_utils:jid_spec(), binary(), binary() | pubsub_node_id()) ->
  +                            exml:element().
  +discover_nodes(User, Id, {NodeAddr, NodeName}) ->
  +    QueryElement = escalus_stanza:query_el(?NS_DISCO_ITEMS, [{<<"node">>, NodeName}], []),
  +    iq(<<"get">>, User, Id, NodeAddr, [QueryElement]);
  +discover_nodes(User, Id, NodeAddr) ->
  +    QueryElement = escalus_stanza:query_el(?NS_DISCO_ITEMS, [], []),
  +    iq(<<"get">>, User, Id, NodeAddr, [QueryElement]).
  +
  +%% ---------------- create & delete ----------------
   
   -spec create_node(escalus_utils:jid_spec(), binary(), pubsub_node_id()) -> exml:element().
   create_node(User, Id, Node) ->
  
positive.code:       end,
      pubsub_iq(<<"get">>, User, Id, NodeAddr, [Element]).
  
  -spec retrieve_node_subscriptions(escalus_utils:jid_spec(), binary(), pubsub_node_id()) ->
                                           exml:element().
  retrieve_node_subscriptions(User, Id, {NodeAddr, NodeName}) ->
      Elements = [subscriptions_element(NodeName, [])],
      pubsub_owner_iq(<<"get">>, User, Id, NodeAddr, Elements).
  
  
negative.code:     Elements = [create_node_element(NodeName) | configure_node_form(ConfigFields, undefined)],
      pubsub_iq(<<"set">>, User, Id, NodeAddr, Elements).
  
  -spec delete_node(escalus_utils:jid_spec(), binary(), pubsub_node_id()) -> exml:element().
  delete_node(User, Id, {NodeAddr, NodeName}) ->
      Elements = [delete_element(NodeName)],
      pubsub_owner_iq(<<"set">>, User, Id, NodeAddr, Elements).
  
  %% ---------------- configuration ----------------
  
  -spec get_configuration(escalus_utils:jid_spec(), binary(), pubsub_node_id()) -> exml:element().
  get_configuration(User, Id, {NodeAddr, NodeName}) ->
      Elements = [#xmlel{ name = <<"configure">>,
                          attrs = [{<<"node">>, NodeName}] }],
      pubsub_owner_iq(<<"get">>, User, Id, NodeAddr, Elements).
  
  -spec set_configuration(escalus_utils:jid_spec(), binary(),
                          pubsub_node_id(), [{binary(), binary()}]) ->
      exml:element().
  set_configuration(User, Id, {NodeAddr, NodeName}, ConfigFields) ->
      Elements = configure_node_form(ConfigFields, NodeName),
      pubsub_owner_iq(<<"set">>, User, Id, NodeAddr, Elements).
  
  %% ---------------- affiliations ----------------
  
  -spec get_affiliations(escalus_utils:jid_spec(), binary(), pubsub_node_id()) -> exml:element().
  get_affiliations(User, Id, {NodeAddr, NodeName}) ->
      Elements = [#xmlel{ name = <<"affiliations">>,
                          attrs = [{<<"node">>, NodeName}] }],
      pubsub_owner_iq(<<"get">>, User, Id, NodeAddr, Elements).
  