anchor.diff:      Elements = [publish_element(NodeName, ItemElement)],
       pubsub_iq(<<"set">>, User, Id, NodeAddr, Elements).
   
  +-spec publish_with_options(escalus_utils:jid_spec(),
  +                           binary(),
  +                           pubsub_node_id(),
  +                           publish_options()) -> exml:element().
  +publish_with_options(User, Id, {NodeAddr, NodeName}, PublishOptions) ->
  +    PublishOptionsElement = publish_options_element(PublishOptions),
  +    Elements = [publish_element(NodeName, undefined), PublishOptionsElement],
  +    pubsub_iq(<<"set">>, User, Id, NodeAddr, Elements).
  +
  +-spec publish_with_options(escalus_utils:jid_spec(),
  +                           exml:element(),
  +                           binary(),
  +                           pubsub_node_id(),
  +                           publish_options()) -> exml:element().
  +publish_with_options(User, ContentElement, Id, {NodeAddr, NodeName}, PublishOptions) ->
  +    ItemElement = item_element(ContentElement),
  +    PublishOptionsElement = publish_options_element(PublishOptions),
  +    Elements = [publish_element(NodeName, ItemElement), PublishOptionsElement],
  +    pubsub_iq(<<"set">>, User, Id, NodeAddr, Elements).
  +
  +-spec publish_with_options(escalus_utils:jid_spec(),
  +                           binary(),
  +                           exml:element(),
  +                           binary(),
  +                           pubsub_node_id(),
  +                           publish_options()) -> exml:element().
  +publish_with_options(User, ItemId, ContentElement, Id, {NodeAddr, NodeName}, PublishOptions) ->
  +    ItemElement = item_element(ItemId, ContentElement),
  +    PublishOptionsElement = publish_options_element(PublishOptions),
  +    Elements = [publish_element(NodeName, ItemElement), PublishOptionsElement],
  +    pubsub_iq(<<"set">>, User, Id, NodeAddr, Elements).
  +
   -spec retract(escalus_utils:jid_spec(), binary(), pubsub_node_id(), binary()) -> exml:element().
   retract(User, Id, {NodeAddr, NodeName}, ItemId) ->
       Elements = [retract_item(NodeName, ItemId)],
  
positive.code:            attrs = [{<<"node">>, NodeName}],
             children = skip_undefined([Item])}.
  
  items_element(NodeName) ->
      #xmlel{name = <<"items">>,
             attrs = [{<<"node">>, NodeName}]}.
  
negative.code:          iq/5,
  
           publish/3, publish/4, publish/5,
           publish_with_options/4, publish_with_options/5, publish_with_options/6,
  
           retract/4,
           get_items/4,
           get_all_items/3,
  