From bfd028beea57965df26283bb149cddd3c8637303 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Tue, 26 Aug 2014 22:21:27 +0400 Subject: Recompile the xmpp_codec using updated XML generator --- tools/xmpp_codec.erl | 15780 +++++++++++++++++++++++++----------------------- tools/xmpp_codec.hrl | 22 +- tools/xmpp_codec.spec | 42 +- 3 files changed, 8431 insertions(+), 7413 deletions(-) (limited to 'tools') diff --git a/tools/xmpp_codec.erl b/tools/xmpp_codec.erl index 3ad90fe1f..5a549aebb 100644 --- a/tools/xmpp_codec.erl +++ b/tools/xmpp_codec.erl @@ -12,732 +12,931 @@ decode({xmlel, _name, _attrs, _} = _el) -> case {_name, get_attr(<<"xmlns">>, _attrs)} of + {<<"failed">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_failed(<<"urn:xmpp:sm:2">>, _el); {<<"failed">>, <<"urn:xmpp:sm:3">>} -> - decode_sm_failed(_el); - {<<"a">>, <<"urn:xmpp:sm:3">>} -> decode_sm_a(_el); - {<<"r">>, <<"urn:xmpp:sm:3">>} -> decode_sm_r(_el); + decode_sm_failed(<<"urn:xmpp:sm:3">>, _el); + {<<"a">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_a(<<"urn:xmpp:sm:2">>, _el); + {<<"a">>, <<"urn:xmpp:sm:3">>} -> + decode_sm_a(<<"urn:xmpp:sm:3">>, _el); + {<<"r">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_r(<<"urn:xmpp:sm:2">>, _el); + {<<"r">>, <<"urn:xmpp:sm:3">>} -> + decode_sm_r(<<"urn:xmpp:sm:3">>, _el); + {<<"resumed">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_resumed(<<"urn:xmpp:sm:2">>, _el); {<<"resumed">>, <<"urn:xmpp:sm:3">>} -> - decode_sm_resumed(_el); + decode_sm_resumed(<<"urn:xmpp:sm:3">>, _el); + {<<"resume">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_resume(<<"urn:xmpp:sm:2">>, _el); {<<"resume">>, <<"urn:xmpp:sm:3">>} -> - decode_sm_resume(_el); + decode_sm_resume(<<"urn:xmpp:sm:3">>, _el); + {<<"enabled">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_enabled(<<"urn:xmpp:sm:2">>, _el); {<<"enabled">>, <<"urn:xmpp:sm:3">>} -> - decode_sm_enabled(_el); + decode_sm_enabled(<<"urn:xmpp:sm:3">>, _el); + {<<"enable">>, <<"urn:xmpp:sm:2">>} -> + decode_sm_enable(<<"urn:xmpp:sm:2">>, _el); {<<"enable">>, <<"urn:xmpp:sm:3">>} -> - decode_sm_enable(_el); + decode_sm_enable(<<"urn:xmpp:sm:3">>, _el); + {<<"sm">>, <<"urn:xmpp:sm:2">>} -> + decode_feature_sm(<<"urn:xmpp:sm:2">>, _el); {<<"sm">>, <<"urn:xmpp:sm:3">>} -> - decode_feature_sm(_el); + decode_feature_sm(<<"urn:xmpp:sm:3">>, _el); {<<"sent">>, <<"urn:xmpp:carbons:2">>} -> - decode_carbons_sent(_el); + decode_carbons_sent(<<"urn:xmpp:carbons:2">>, _el); {<<"received">>, <<"urn:xmpp:carbons:2">>} -> - decode_carbons_received(_el); + decode_carbons_received(<<"urn:xmpp:carbons:2">>, _el); {<<"private">>, <<"urn:xmpp:carbons:2">>} -> - decode_carbons_private(_el); + decode_carbons_private(<<"urn:xmpp:carbons:2">>, _el); {<<"enable">>, <<"urn:xmpp:carbons:2">>} -> - decode_carbons_enable(_el); + decode_carbons_enable(<<"urn:xmpp:carbons:2">>, _el); {<<"disable">>, <<"urn:xmpp:carbons:2">>} -> - decode_carbons_disable(_el); + decode_carbons_disable(<<"urn:xmpp:carbons:2">>, _el); {<<"forwarded">>, <<"urn:xmpp:forward:0">>} -> - decode_forwarded(_el); + decode_forwarded(<<"urn:xmpp:forward:0">>, _el); {<<"x">>, <<"http://jabber.org/protocol/muc">>} -> - decode_muc(_el); + decode_muc(<<"http://jabber.org/protocol/muc">>, _el); {<<"query">>, <<"http://jabber.org/protocol/muc#admin">>} -> - decode_muc_admin(_el); + decode_muc_admin(<<"http://jabber.org/protocol/muc#admin">>, + _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#admin">>} -> - decode_muc_admin_reason(_el); + decode_muc_admin_reason(<<"http://jabber.org/protocol/muc#admin">>, + _el); {<<"continue">>, <<"http://jabber.org/protocol/muc#admin">>} -> - decode_muc_admin_continue(_el); + decode_muc_admin_continue(<<"http://jabber.org/protocol/muc#admin">>, + _el); {<<"actor">>, <<"http://jabber.org/protocol/muc#admin">>} -> - decode_muc_admin_actor(_el); + decode_muc_admin_actor(<<"http://jabber.org/protocol/muc#admin">>, + _el); {<<"item">>, <<"http://jabber.org/protocol/muc#admin">>} -> - decode_muc_admin_item(_el); + decode_muc_admin_item(<<"http://jabber.org/protocol/muc#admin">>, + _el); {<<"query">>, <<"http://jabber.org/protocol/muc#owner">>} -> - decode_muc_owner(_el); + decode_muc_owner(<<"http://jabber.org/protocol/muc#owner">>, + _el); {<<"destroy">>, <<"http://jabber.org/protocol/muc#owner">>} -> - decode_muc_owner_destroy(_el); + decode_muc_owner_destroy(<<"http://jabber.org/protocol/muc#owner">>, + _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#owner">>} -> - decode_muc_owner_reason(_el); + decode_muc_owner_reason(<<"http://jabber.org/protocol/muc#owner">>, + _el); {<<"password">>, <<"http://jabber.org/protocol/muc#owner">>} -> - decode_muc_owner_password(_el); + decode_muc_owner_password(<<"http://jabber.org/protocol/muc#owner">>, + _el); {<<"x">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user(_el); + decode_muc_user(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"item">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_item(_el); + decode_muc_user_item(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"status">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_status(_el); + decode_muc_user_status(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"continue">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_continue(_el); + decode_muc_user_continue(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"actor">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_actor(_el); + decode_muc_user_actor(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"invite">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_invite(_el); + decode_muc_user_invite(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"destroy">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_destroy(_el); + decode_muc_user_destroy(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"decline">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_decline(_el); + decode_muc_user_decline(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#user">>} -> - decode_muc_user_reason(_el); + decode_muc_user_reason(<<"http://jabber.org/protocol/muc#user">>, + _el); {<<"history">>, <<"http://jabber.org/protocol/muc">>} -> - decode_muc_history(_el); + decode_muc_history(<<"http://jabber.org/protocol/muc">>, + _el); {<<"query">>, <<"http://jabber.org/protocol/bytestreams">>} -> - decode_bytestreams(_el); + decode_bytestreams(<<"http://jabber.org/protocol/bytestreams">>, + _el); {<<"activate">>, <<"http://jabber.org/protocol/bytestreams">>} -> - decode_bytestreams_activate(_el); + decode_bytestreams_activate(<<"http://jabber.org/protocol/bytestreams">>, + _el); {<<"streamhost-used">>, <<"http://jabber.org/protocol/bytestreams">>} -> - decode_bytestreams_streamhost_used(_el); + decode_bytestreams_streamhost_used(<<"http://jabber.org/protocol/bytestreams">>, + _el); {<<"streamhost">>, <<"http://jabber.org/protocol/bytestreams">>} -> - decode_bytestreams_streamhost(_el); + decode_bytestreams_streamhost(<<"http://jabber.org/protocol/bytestreams">>, + _el); {<<"x">>, <<"jabber:x:delay">>} -> - decode_legacy_delay(_el); + decode_legacy_delay(<<"jabber:x:delay">>, _el); {<<"delay">>, <<"urn:xmpp:delay">>} -> - decode_delay(_el); + decode_delay(<<"urn:xmpp:delay">>, _el); {<<"headers">>, <<"http://jabber.org/protocol/shim">>} -> - decode_shim_headers(_el); + decode_shim_headers(<<"http://jabber.org/protocol/shim">>, + _el); {<<"header">>, <<"http://jabber.org/protocol/shim">>} -> - decode_shim_header(_el); + decode_shim_header(<<"http://jabber.org/protocol/shim">>, + _el); {<<"pubsub">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub(_el); + decode_pubsub(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"retract">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_retract(_el); + decode_pubsub_retract(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"options">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_options(_el); + decode_pubsub_options(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"publish">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_publish(_el); + decode_pubsub_publish(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"unsubscribe">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_unsubscribe(_el); + decode_pubsub_unsubscribe(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"subscribe">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_subscribe(_el); + decode_pubsub_subscribe(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"affiliations">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_affiliations(_el); + decode_pubsub_affiliations(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"subscriptions">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_subscriptions(_el); + decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"event">>, <<"http://jabber.org/protocol/pubsub#event">>} -> - decode_pubsub_event(_el); + decode_pubsub_event(<<"http://jabber.org/protocol/pubsub#event">>, + _el); {<<"items">>, <<"http://jabber.org/protocol/pubsub#event">>} -> - decode_pubsub_event_items(_el); + decode_pubsub_event_items(<<"http://jabber.org/protocol/pubsub#event">>, + _el); {<<"item">>, <<"http://jabber.org/protocol/pubsub#event">>} -> - decode_pubsub_event_item(_el); + decode_pubsub_event_item(<<"http://jabber.org/protocol/pubsub#event">>, + _el); {<<"retract">>, <<"http://jabber.org/protocol/pubsub#event">>} -> - decode_pubsub_event_retract(_el); + decode_pubsub_event_retract(<<"http://jabber.org/protocol/pubsub#event">>, + _el); {<<"items">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_items(_el); + decode_pubsub_items(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"item">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_item(_el); + decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"affiliation">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_affiliation(_el); + decode_pubsub_affiliation(<<"http://jabber.org/protocol/pubsub">>, + _el); {<<"subscription">>, <<"http://jabber.org/protocol/pubsub">>} -> - decode_pubsub_subscription(_el); - {<<"x">>, <<"jabber:x:data">>} -> decode_xdata(_el); + decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, + _el); + {<<"x">>, <<"jabber:x:data">>} -> + decode_xdata(<<"jabber:x:data">>, _el); {<<"item">>, <<"jabber:x:data">>} -> - decode_xdata_item(_el); + decode_xdata_item(<<"jabber:x:data">>, _el); {<<"reported">>, <<"jabber:x:data">>} -> - decode_xdata_reported(_el); + decode_xdata_reported(<<"jabber:x:data">>, _el); {<<"title">>, <<"jabber:x:data">>} -> - decode_xdata_title(_el); + decode_xdata_title(<<"jabber:x:data">>, _el); {<<"instructions">>, <<"jabber:x:data">>} -> - decode_xdata_instructions(_el); + decode_xdata_instructions(<<"jabber:x:data">>, _el); {<<"field">>, <<"jabber:x:data">>} -> - decode_xdata_field(_el); + decode_xdata_field(<<"jabber:x:data">>, _el); {<<"option">>, <<"jabber:x:data">>} -> - decode_xdata_field_option(_el); + decode_xdata_field_option(<<"jabber:x:data">>, _el); {<<"value">>, <<"jabber:x:data">>} -> - decode_xdata_field_value(_el); + decode_xdata_field_value(<<"jabber:x:data">>, _el); {<<"desc">>, <<"jabber:x:data">>} -> - decode_xdata_field_desc(_el); + decode_xdata_field_desc(<<"jabber:x:data">>, _el); {<<"required">>, <<"jabber:x:data">>} -> - decode_xdata_field_required(_el); - {<<"vCard">>, <<"vcard-temp">>} -> decode_vcard(_el); + decode_xdata_field_required(<<"jabber:x:data">>, _el); + {<<"vCard">>, <<"vcard-temp">>} -> + decode_vcard(<<"vcard-temp">>, _el); {<<"CLASS">>, <<"vcard-temp">>} -> - decode_vcard_CLASS(_el); + decode_vcard_CLASS(<<"vcard-temp">>, _el); {<<"CATEGORIES">>, <<"vcard-temp">>} -> - decode_vcard_CATEGORIES(_el); - {<<"KEY">>, <<"vcard-temp">>} -> decode_vcard_KEY(_el); + decode_vcard_CATEGORIES(<<"vcard-temp">>, _el); + {<<"KEY">>, <<"vcard-temp">>} -> + decode_vcard_KEY(<<"vcard-temp">>, _el); {<<"SOUND">>, <<"vcard-temp">>} -> - decode_vcard_SOUND(_el); - {<<"ORG">>, <<"vcard-temp">>} -> decode_vcard_ORG(_el); + decode_vcard_SOUND(<<"vcard-temp">>, _el); + {<<"ORG">>, <<"vcard-temp">>} -> + decode_vcard_ORG(<<"vcard-temp">>, _el); {<<"PHOTO">>, <<"vcard-temp">>} -> - decode_vcard_PHOTO(_el); + decode_vcard_PHOTO(<<"vcard-temp">>, _el); {<<"LOGO">>, <<"vcard-temp">>} -> - decode_vcard_LOGO(_el); + decode_vcard_LOGO(<<"vcard-temp">>, _el); {<<"BINVAL">>, <<"vcard-temp">>} -> - decode_vcard_BINVAL(_el); - {<<"GEO">>, <<"vcard-temp">>} -> decode_vcard_GEO(_el); + decode_vcard_BINVAL(<<"vcard-temp">>, _el); + {<<"GEO">>, <<"vcard-temp">>} -> + decode_vcard_GEO(<<"vcard-temp">>, _el); {<<"EMAIL">>, <<"vcard-temp">>} -> - decode_vcard_EMAIL(_el); - {<<"TEL">>, <<"vcard-temp">>} -> decode_vcard_TEL(_el); + decode_vcard_EMAIL(<<"vcard-temp">>, _el); + {<<"TEL">>, <<"vcard-temp">>} -> + decode_vcard_TEL(<<"vcard-temp">>, _el); {<<"LABEL">>, <<"vcard-temp">>} -> - decode_vcard_LABEL(_el); - {<<"ADR">>, <<"vcard-temp">>} -> decode_vcard_ADR(_el); - {<<"N">>, <<"vcard-temp">>} -> decode_vcard_N(_el); + decode_vcard_LABEL(<<"vcard-temp">>, _el); + {<<"ADR">>, <<"vcard-temp">>} -> + decode_vcard_ADR(<<"vcard-temp">>, _el); + {<<"N">>, <<"vcard-temp">>} -> + decode_vcard_N(<<"vcard-temp">>, _el); {<<"CONFIDENTIAL">>, <<"vcard-temp">>} -> - decode_vcard_CONFIDENTIAL(_el); + decode_vcard_CONFIDENTIAL(<<"vcard-temp">>, _el); {<<"PRIVATE">>, <<"vcard-temp">>} -> - decode_vcard_PRIVATE(_el); + decode_vcard_PRIVATE(<<"vcard-temp">>, _el); {<<"PUBLIC">>, <<"vcard-temp">>} -> - decode_vcard_PUBLIC(_el); + decode_vcard_PUBLIC(<<"vcard-temp">>, _el); {<<"EXTVAL">>, <<"vcard-temp">>} -> - decode_vcard_EXTVAL(_el); + decode_vcard_EXTVAL(<<"vcard-temp">>, _el); {<<"TYPE">>, <<"vcard-temp">>} -> - decode_vcard_TYPE(_el); + decode_vcard_TYPE(<<"vcard-temp">>, _el); {<<"DESC">>, <<"vcard-temp">>} -> - decode_vcard_DESC(_el); - {<<"URL">>, <<"vcard-temp">>} -> decode_vcard_URL(_el); - {<<"UID">>, <<"vcard-temp">>} -> decode_vcard_UID(_el); + decode_vcard_DESC(<<"vcard-temp">>, _el); + {<<"URL">>, <<"vcard-temp">>} -> + decode_vcard_URL(<<"vcard-temp">>, _el); + {<<"UID">>, <<"vcard-temp">>} -> + decode_vcard_UID(<<"vcard-temp">>, _el); {<<"SORT-STRING">>, <<"vcard-temp">>} -> - decode_vcard_SORT_STRING(_el); - {<<"REV">>, <<"vcard-temp">>} -> decode_vcard_REV(_el); + decode_vcard_SORT_STRING(<<"vcard-temp">>, _el); + {<<"REV">>, <<"vcard-temp">>} -> + decode_vcard_REV(<<"vcard-temp">>, _el); {<<"PRODID">>, <<"vcard-temp">>} -> - decode_vcard_PRODID(_el); + decode_vcard_PRODID(<<"vcard-temp">>, _el); {<<"NOTE">>, <<"vcard-temp">>} -> - decode_vcard_NOTE(_el); + decode_vcard_NOTE(<<"vcard-temp">>, _el); {<<"KEYWORD">>, <<"vcard-temp">>} -> - decode_vcard_KEYWORD(_el); + decode_vcard_KEYWORD(<<"vcard-temp">>, _el); {<<"ROLE">>, <<"vcard-temp">>} -> - decode_vcard_ROLE(_el); + decode_vcard_ROLE(<<"vcard-temp">>, _el); {<<"TITLE">>, <<"vcard-temp">>} -> - decode_vcard_TITLE(_el); - {<<"TZ">>, <<"vcard-temp">>} -> decode_vcard_TZ(_el); + decode_vcard_TITLE(<<"vcard-temp">>, _el); + {<<"TZ">>, <<"vcard-temp">>} -> + decode_vcard_TZ(<<"vcard-temp">>, _el); {<<"MAILER">>, <<"vcard-temp">>} -> - decode_vcard_MAILER(_el); + decode_vcard_MAILER(<<"vcard-temp">>, _el); {<<"JABBERID">>, <<"vcard-temp">>} -> - decode_vcard_JABBERID(_el); + decode_vcard_JABBERID(<<"vcard-temp">>, _el); {<<"BDAY">>, <<"vcard-temp">>} -> - decode_vcard_BDAY(_el); + decode_vcard_BDAY(<<"vcard-temp">>, _el); {<<"NICKNAME">>, <<"vcard-temp">>} -> - decode_vcard_NICKNAME(_el); - {<<"FN">>, <<"vcard-temp">>} -> decode_vcard_FN(_el); + decode_vcard_NICKNAME(<<"vcard-temp">>, _el); + {<<"FN">>, <<"vcard-temp">>} -> + decode_vcard_FN(<<"vcard-temp">>, _el); {<<"VERSION">>, <<"vcard-temp">>} -> - decode_vcard_VERSION(_el); + decode_vcard_VERSION(<<"vcard-temp">>, _el); {<<"CRED">>, <<"vcard-temp">>} -> - decode_vcard_CRED(_el); + decode_vcard_CRED(<<"vcard-temp">>, _el); {<<"PHONETIC">>, <<"vcard-temp">>} -> - decode_vcard_PHONETIC(_el); + decode_vcard_PHONETIC(<<"vcard-temp">>, _el); {<<"ORGUNIT">>, <<"vcard-temp">>} -> - decode_vcard_ORGUNIT(_el); + decode_vcard_ORGUNIT(<<"vcard-temp">>, _el); {<<"ORGNAME">>, <<"vcard-temp">>} -> - decode_vcard_ORGNAME(_el); - {<<"LON">>, <<"vcard-temp">>} -> decode_vcard_LON(_el); - {<<"LAT">>, <<"vcard-temp">>} -> decode_vcard_LAT(_el); + decode_vcard_ORGNAME(<<"vcard-temp">>, _el); + {<<"LON">>, <<"vcard-temp">>} -> + decode_vcard_LON(<<"vcard-temp">>, _el); + {<<"LAT">>, <<"vcard-temp">>} -> + decode_vcard_LAT(<<"vcard-temp">>, _el); {<<"USERID">>, <<"vcard-temp">>} -> - decode_vcard_USERID(_el); + decode_vcard_USERID(<<"vcard-temp">>, _el); {<<"NUMBER">>, <<"vcard-temp">>} -> - decode_vcard_NUMBER(_el); + decode_vcard_NUMBER(<<"vcard-temp">>, _el); {<<"LINE">>, <<"vcard-temp">>} -> - decode_vcard_LINE(_el); + decode_vcard_LINE(<<"vcard-temp">>, _el); {<<"CTRY">>, <<"vcard-temp">>} -> - decode_vcard_CTRY(_el); + decode_vcard_CTRY(<<"vcard-temp">>, _el); {<<"PCODE">>, <<"vcard-temp">>} -> - decode_vcard_PCODE(_el); + decode_vcard_PCODE(<<"vcard-temp">>, _el); {<<"REGION">>, <<"vcard-temp">>} -> - decode_vcard_REGION(_el); + decode_vcard_REGION(<<"vcard-temp">>, _el); {<<"LOCALITY">>, <<"vcard-temp">>} -> - decode_vcard_LOCALITY(_el); + decode_vcard_LOCALITY(<<"vcard-temp">>, _el); {<<"STREET">>, <<"vcard-temp">>} -> - decode_vcard_STREET(_el); + decode_vcard_STREET(<<"vcard-temp">>, _el); {<<"EXTADD">>, <<"vcard-temp">>} -> - decode_vcard_EXTADD(_el); + decode_vcard_EXTADD(<<"vcard-temp">>, _el); {<<"POBOX">>, <<"vcard-temp">>} -> - decode_vcard_POBOX(_el); + decode_vcard_POBOX(<<"vcard-temp">>, _el); {<<"SUFFIX">>, <<"vcard-temp">>} -> - decode_vcard_SUFFIX(_el); + decode_vcard_SUFFIX(<<"vcard-temp">>, _el); {<<"PREFIX">>, <<"vcard-temp">>} -> - decode_vcard_PREFIX(_el); + decode_vcard_PREFIX(<<"vcard-temp">>, _el); {<<"MIDDLE">>, <<"vcard-temp">>} -> - decode_vcard_MIDDLE(_el); + decode_vcard_MIDDLE(<<"vcard-temp">>, _el); {<<"GIVEN">>, <<"vcard-temp">>} -> - decode_vcard_GIVEN(_el); + decode_vcard_GIVEN(<<"vcard-temp">>, _el); {<<"FAMILY">>, <<"vcard-temp">>} -> - decode_vcard_FAMILY(_el); + decode_vcard_FAMILY(<<"vcard-temp">>, _el); {<<"X400">>, <<"vcard-temp">>} -> - decode_vcard_X400(_el); + decode_vcard_X400(<<"vcard-temp">>, _el); {<<"INTERNET">>, <<"vcard-temp">>} -> - decode_vcard_INTERNET(_el); + decode_vcard_INTERNET(<<"vcard-temp">>, _el); {<<"PREF">>, <<"vcard-temp">>} -> - decode_vcard_PREF(_el); + decode_vcard_PREF(<<"vcard-temp">>, _el); {<<"INTL">>, <<"vcard-temp">>} -> - decode_vcard_INTL(_el); - {<<"DOM">>, <<"vcard-temp">>} -> decode_vcard_DOM(_el); + decode_vcard_INTL(<<"vcard-temp">>, _el); + {<<"DOM">>, <<"vcard-temp">>} -> + decode_vcard_DOM(<<"vcard-temp">>, _el); {<<"PARCEL">>, <<"vcard-temp">>} -> - decode_vcard_PARCEL(_el); + decode_vcard_PARCEL(<<"vcard-temp">>, _el); {<<"POSTAL">>, <<"vcard-temp">>} -> - decode_vcard_POSTAL(_el); - {<<"PCS">>, <<"vcard-temp">>} -> decode_vcard_PCS(_el); + decode_vcard_POSTAL(<<"vcard-temp">>, _el); + {<<"PCS">>, <<"vcard-temp">>} -> + decode_vcard_PCS(<<"vcard-temp">>, _el); {<<"ISDN">>, <<"vcard-temp">>} -> - decode_vcard_ISDN(_el); + decode_vcard_ISDN(<<"vcard-temp">>, _el); {<<"MODEM">>, <<"vcard-temp">>} -> - decode_vcard_MODEM(_el); - {<<"BBS">>, <<"vcard-temp">>} -> decode_vcard_BBS(_el); + decode_vcard_MODEM(<<"vcard-temp">>, _el); + {<<"BBS">>, <<"vcard-temp">>} -> + decode_vcard_BBS(<<"vcard-temp">>, _el); {<<"VIDEO">>, <<"vcard-temp">>} -> - decode_vcard_VIDEO(_el); + decode_vcard_VIDEO(<<"vcard-temp">>, _el); {<<"CELL">>, <<"vcard-temp">>} -> - decode_vcard_CELL(_el); - {<<"MSG">>, <<"vcard-temp">>} -> decode_vcard_MSG(_el); + decode_vcard_CELL(<<"vcard-temp">>, _el); + {<<"MSG">>, <<"vcard-temp">>} -> + decode_vcard_MSG(<<"vcard-temp">>, _el); {<<"PAGER">>, <<"vcard-temp">>} -> - decode_vcard_PAGER(_el); - {<<"FAX">>, <<"vcard-temp">>} -> decode_vcard_FAX(_el); + decode_vcard_PAGER(<<"vcard-temp">>, _el); + {<<"FAX">>, <<"vcard-temp">>} -> + decode_vcard_FAX(<<"vcard-temp">>, _el); {<<"VOICE">>, <<"vcard-temp">>} -> - decode_vcard_VOICE(_el); + decode_vcard_VOICE(<<"vcard-temp">>, _el); {<<"WORK">>, <<"vcard-temp">>} -> - decode_vcard_WORK(_el); + decode_vcard_WORK(<<"vcard-temp">>, _el); {<<"HOME">>, <<"vcard-temp">>} -> - decode_vcard_HOME(_el); + decode_vcard_HOME(<<"vcard-temp">>, _el); {<<"stream:error">>, <<"http://etherx.jabber.org/streams">>} -> - decode_stream_error(_el); + decode_stream_error(<<"http://etherx.jabber.org/streams">>, + _el); {<<"unsupported-version">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_unsupported_version(_el); + decode_stream_error_unsupported_version(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"unsupported-stanza-type">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_unsupported_stanza_type(_el); + decode_stream_error_unsupported_stanza_type(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"unsupported-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_unsupported_encoding(_el); + decode_stream_error_unsupported_encoding(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_undefined_condition(_el); + decode_stream_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"system-shutdown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_system_shutdown(_el); + decode_stream_error_system_shutdown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"see-other-host">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_see_other_host(_el); + decode_stream_error_see_other_host(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"restricted-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_restricted_xml(_el); + decode_stream_error_restricted_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_resource_constraint(_el); + decode_stream_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"reset">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_reset(_el); + decode_stream_error_reset(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"remote-connection-failed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_remote_connection_failed(_el); + decode_stream_error_remote_connection_failed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_policy_violation(_el); + decode_stream_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"not-well-formed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_not_well_formed(_el); + decode_stream_error_not_well_formed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_not_authorized(_el); + decode_stream_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"invalid-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_invalid_xml(_el); + decode_stream_error_invalid_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"invalid-namespace">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_invalid_namespace(_el); + decode_stream_error_invalid_namespace(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"invalid-id">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_invalid_id(_el); + decode_stream_error_invalid_id(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"invalid-from">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_invalid_from(_el); + decode_stream_error_invalid_from(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_internal_server_error(_el); + decode_stream_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"improper-addressing">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_improper_addressing(_el); + decode_stream_error_improper_addressing(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"host-unknown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_host_unknown(_el); + decode_stream_error_host_unknown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"host-gone">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_host_gone(_el); + decode_stream_error_host_gone(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"connection-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_connection_timeout(_el); + decode_stream_error_connection_timeout(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_conflict(_el); + decode_stream_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"bad-namespace-prefix">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_bad_namespace_prefix(_el); + decode_stream_error_bad_namespace_prefix(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"bad-format">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_bad_format(_el); + decode_stream_error_bad_format(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> - decode_stream_error_text(_el); - {<<"time">>, <<"urn:xmpp:time">>} -> decode_time(_el); + decode_stream_error_text(<<"urn:ietf:params:xml:ns:xmpp-streams">>, + _el); + {<<"time">>, <<"urn:xmpp:time">>} -> + decode_time(<<"urn:xmpp:time">>, _el); {<<"tzo">>, <<"urn:xmpp:time">>} -> - decode_time_tzo(_el); + decode_time_tzo(<<"urn:xmpp:time">>, _el); {<<"utc">>, <<"urn:xmpp:time">>} -> - decode_time_utc(_el); - {<<"ping">>, <<"urn:xmpp:ping">>} -> decode_ping(_el); + decode_time_utc(<<"urn:xmpp:time">>, _el); + {<<"ping">>, <<"urn:xmpp:ping">>} -> + decode_ping(<<"urn:xmpp:ping">>, _el); {<<"session">>, <<"urn:ietf:params:xml:ns:xmpp-session">>} -> - decode_session(_el); + decode_session(<<"urn:ietf:params:xml:ns:xmpp-session">>, + _el); {<<"query">>, <<"jabber:iq:register">>} -> - decode_register(_el); + decode_register(<<"jabber:iq:register">>, _el); {<<"key">>, <<"jabber:iq:register">>} -> - decode_register_key(_el); + decode_register_key(<<"jabber:iq:register">>, _el); {<<"text">>, <<"jabber:iq:register">>} -> - decode_register_text(_el); + decode_register_text(<<"jabber:iq:register">>, _el); {<<"misc">>, <<"jabber:iq:register">>} -> - decode_register_misc(_el); + decode_register_misc(<<"jabber:iq:register">>, _el); {<<"date">>, <<"jabber:iq:register">>} -> - decode_register_date(_el); + decode_register_date(<<"jabber:iq:register">>, _el); {<<"url">>, <<"jabber:iq:register">>} -> - decode_register_url(_el); + decode_register_url(<<"jabber:iq:register">>, _el); {<<"phone">>, <<"jabber:iq:register">>} -> - decode_register_phone(_el); + decode_register_phone(<<"jabber:iq:register">>, _el); {<<"zip">>, <<"jabber:iq:register">>} -> - decode_register_zip(_el); + decode_register_zip(<<"jabber:iq:register">>, _el); {<<"state">>, <<"jabber:iq:register">>} -> - decode_register_state(_el); + decode_register_state(<<"jabber:iq:register">>, _el); {<<"city">>, <<"jabber:iq:register">>} -> - decode_register_city(_el); + decode_register_city(<<"jabber:iq:register">>, _el); {<<"address">>, <<"jabber:iq:register">>} -> - decode_register_address(_el); + decode_register_address(<<"jabber:iq:register">>, _el); {<<"email">>, <<"jabber:iq:register">>} -> - decode_register_email(_el); + decode_register_email(<<"jabber:iq:register">>, _el); {<<"last">>, <<"jabber:iq:register">>} -> - decode_register_last(_el); + decode_register_last(<<"jabber:iq:register">>, _el); {<<"first">>, <<"jabber:iq:register">>} -> - decode_register_first(_el); + decode_register_first(<<"jabber:iq:register">>, _el); {<<"name">>, <<"jabber:iq:register">>} -> - decode_register_name(_el); + decode_register_name(<<"jabber:iq:register">>, _el); {<<"password">>, <<"jabber:iq:register">>} -> - decode_register_password(_el); + decode_register_password(<<"jabber:iq:register">>, _el); {<<"nick">>, <<"jabber:iq:register">>} -> - decode_register_nick(_el); + decode_register_nick(<<"jabber:iq:register">>, _el); {<<"username">>, <<"jabber:iq:register">>} -> - decode_register_username(_el); + decode_register_username(<<"jabber:iq:register">>, _el); {<<"instructions">>, <<"jabber:iq:register">>} -> - decode_register_instructions(_el); + decode_register_instructions(<<"jabber:iq:register">>, + _el); {<<"remove">>, <<"jabber:iq:register">>} -> - decode_register_remove(_el); + decode_register_remove(<<"jabber:iq:register">>, _el); {<<"registered">>, <<"jabber:iq:register">>} -> - decode_register_registered(_el); + decode_register_registered(<<"jabber:iq:register">>, + _el); {<<"register">>, <<"http://jabber.org/features/iq-register">>} -> - decode_feature_register(_el); + decode_feature_register(<<"http://jabber.org/features/iq-register">>, + _el); {<<"c">>, <<"http://jabber.org/protocol/caps">>} -> - decode_caps(_el); - {<<"ack">>, <<"p1:ack">>} -> decode_p1_ack(_el); + decode_caps(<<"http://jabber.org/protocol/caps">>, _el); + {<<"ack">>, <<"p1:ack">>} -> + decode_p1_ack(<<"p1:ack">>, _el); {<<"rebind">>, <<"p1:rebind">>} -> - decode_p1_rebind(_el); - {<<"push">>, <<"p1:push">>} -> decode_p1_push(_el); + decode_p1_rebind(<<"p1:rebind">>, _el); + {<<"push">>, <<"p1:push">>} -> + decode_p1_push(<<"p1:push">>, _el); {<<"stream:features">>, <<"http://etherx.jabber.org/streams">>} -> - decode_stream_features(_el); + decode_stream_features(<<"http://etherx.jabber.org/streams">>, + _el); {<<"compression">>, <<"http://jabber.org/features/compress">>} -> - decode_compression(_el); + decode_compression(<<"http://jabber.org/features/compress">>, + _el); {<<"method">>, <<"http://jabber.org/features/compress">>} -> - decode_compression_method(_el); + decode_compression_method(<<"http://jabber.org/features/compress">>, + _el); {<<"compressed">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compressed(_el); + decode_compressed(<<"http://jabber.org/protocol/compress">>, + _el); {<<"compress">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress(_el); + decode_compress(<<"http://jabber.org/protocol/compress">>, + _el); {<<"method">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress_method(_el); + decode_compress_method(<<"http://jabber.org/protocol/compress">>, + _el); {<<"failure">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress_failure(_el); + decode_compress_failure(<<"http://jabber.org/protocol/compress">>, + _el); {<<"unsupported-method">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress_failure_unsupported_method(_el); + decode_compress_failure_unsupported_method(<<"http://jabber.org/protocol/compress">>, + _el); {<<"processing-failed">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress_failure_processing_failed(_el); + decode_compress_failure_processing_failed(<<"http://jabber.org/protocol/compress">>, + _el); {<<"setup-failed">>, <<"http://jabber.org/protocol/compress">>} -> - decode_compress_failure_setup_failed(_el); + decode_compress_failure_setup_failed(<<"http://jabber.org/protocol/compress">>, + _el); {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> - decode_starttls_failure(_el); + decode_starttls_failure(<<"urn:ietf:params:xml:ns:xmpp-tls">>, + _el); {<<"proceed">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> - decode_starttls_proceed(_el); + decode_starttls_proceed(<<"urn:ietf:params:xml:ns:xmpp-tls">>, + _el); {<<"starttls">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> - decode_starttls(_el); + decode_starttls(<<"urn:ietf:params:xml:ns:xmpp-tls">>, + _el); {<<"required">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> - decode_starttls_required(_el); + decode_starttls_required(<<"urn:ietf:params:xml:ns:xmpp-tls">>, + _el); {<<"mechanisms">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_mechanisms(_el); + decode_sasl_mechanisms(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_mechanism(_el); + decode_sasl_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure(_el); + decode_sasl_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"temporary-auth-failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_temporary_auth_failure(_el); + decode_sasl_failure_temporary_auth_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_not_authorized(_el); + decode_sasl_failure_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"mechanism-too-weak">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_mechanism_too_weak(_el); + decode_sasl_failure_mechanism_too_weak(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"malformed-request">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_malformed_request(_el); + decode_sasl_failure_malformed_request(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"invalid-mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_invalid_mechanism(_el); + decode_sasl_failure_invalid_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"invalid-authzid">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_invalid_authzid(_el); + decode_sasl_failure_invalid_authzid(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"incorrect-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_incorrect_encoding(_el); + decode_sasl_failure_incorrect_encoding(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"encryption-required">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_encryption_required(_el); + decode_sasl_failure_encryption_required(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"credentials-expired">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_credentials_expired(_el); + decode_sasl_failure_credentials_expired(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"account-disabled">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_account_disabled(_el); + decode_sasl_failure_account_disabled(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"aborted">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_aborted(_el); + decode_sasl_failure_aborted(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_failure_text(_el); + decode_sasl_failure_text(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"success">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_success(_el); + decode_sasl_success(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"response">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_response(_el); + decode_sasl_response(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"challenge">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_challenge(_el); + decode_sasl_challenge(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"abort">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_abort(_el); + decode_sasl_abort(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"auth">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> - decode_sasl_auth(_el); + decode_sasl_auth(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, + _el); {<<"bind">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> - decode_bind(_el); + decode_bind(<<"urn:ietf:params:xml:ns:xmpp-bind">>, + _el); {<<"resource">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> - decode_bind_resource(_el); + decode_bind_resource(<<"urn:ietf:params:xml:ns:xmpp-bind">>, + _el); {<<"jid">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> - decode_bind_jid(_el); - {<<"error">>, <<"jabber:client">>} -> decode_error(_el); + decode_bind_jid(<<"urn:ietf:params:xml:ns:xmpp-bind">>, + _el); + {<<"error">>, <<"jabber:client">>} -> + decode_error(<<"jabber:client">>, _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_text(_el); + decode_error_text(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"unexpected-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_unexpected_request(_el); + decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_undefined_condition(_el); + decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"subscription-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_subscription_required(_el); + decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"service-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_service_unavailable(_el); + decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_resource_constraint(_el); + decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"remote-server-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_remote_server_timeout(_el); + decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"remote-server-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_remote_server_not_found(_el); + decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"registration-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_registration_required(_el); + decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"redirect">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_redirect(_el); + decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"recipient-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_recipient_unavailable(_el); + decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_policy_violation(_el); + decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_not_authorized(_el); + decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"not-allowed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_not_allowed(_el); + decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"not-acceptable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_not_acceptable(_el); + decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"jid-malformed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_jid_malformed(_el); + decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"item-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_item_not_found(_el); + decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_internal_server_error(_el); + decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"gone">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_gone(_el); + decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"forbidden">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_forbidden(_el); + decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"feature-not-implemented">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_feature_not_implemented(_el); + decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_conflict(_el); + decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"bad-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> - decode_error_bad_request(_el); + decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, + _el); {<<"presence">>, <<"jabber:client">>} -> - decode_presence(_el); + decode_presence(<<"jabber:client">>, _el); {<<"priority">>, <<"jabber:client">>} -> - decode_presence_priority(_el); + decode_presence_priority(<<"jabber:client">>, _el); {<<"status">>, <<"jabber:client">>} -> - decode_presence_status(_el); + decode_presence_status(<<"jabber:client">>, _el); {<<"show">>, <<"jabber:client">>} -> - decode_presence_show(_el); + decode_presence_show(<<"jabber:client">>, _el); {<<"message">>, <<"jabber:client">>} -> - decode_message(_el); + decode_message(<<"jabber:client">>, _el); {<<"thread">>, <<"jabber:client">>} -> - decode_message_thread(_el); + decode_message_thread(<<"jabber:client">>, _el); {<<"body">>, <<"jabber:client">>} -> - decode_message_body(_el); + decode_message_body(<<"jabber:client">>, _el); {<<"subject">>, <<"jabber:client">>} -> - decode_message_subject(_el); - {<<"iq">>, <<"jabber:client">>} -> decode_iq(_el); + decode_message_subject(<<"jabber:client">>, _el); + {<<"iq">>, <<"jabber:client">>} -> + decode_iq(<<"jabber:client">>, _el); {<<"query">>, <<"http://jabber.org/protocol/stats">>} -> - decode_stats(_el); + decode_stats(<<"http://jabber.org/protocol/stats">>, + _el); {<<"stat">>, <<"http://jabber.org/protocol/stats">>} -> - decode_stat(_el); + decode_stat(<<"http://jabber.org/protocol/stats">>, + _el); {<<"error">>, <<"http://jabber.org/protocol/stats">>} -> - decode_stat_error(_el); + decode_stat_error(<<"http://jabber.org/protocol/stats">>, + _el); {<<"storage">>, <<"storage:bookmarks">>} -> - decode_bookmarks_storage(_el); + decode_bookmarks_storage(<<"storage:bookmarks">>, _el); {<<"url">>, <<"storage:bookmarks">>} -> - decode_bookmark_url(_el); + decode_bookmark_url(<<"storage:bookmarks">>, _el); {<<"conference">>, <<"storage:bookmarks">>} -> - decode_bookmark_conference(_el); + decode_bookmark_conference(<<"storage:bookmarks">>, + _el); {<<"password">>, <<"storage:bookmarks">>} -> - decode_conference_password(_el); + decode_conference_password(<<"storage:bookmarks">>, + _el); {<<"nick">>, <<"storage:bookmarks">>} -> - decode_conference_nick(_el); + decode_conference_nick(<<"storage:bookmarks">>, _el); {<<"query">>, <<"jabber:iq:private">>} -> - decode_private(_el); + decode_private(<<"jabber:iq:private">>, _el); {<<"query">>, <<"http://jabber.org/protocol/disco#items">>} -> - decode_disco_items(_el); + decode_disco_items(<<"http://jabber.org/protocol/disco#items">>, + _el); {<<"item">>, <<"http://jabber.org/protocol/disco#items">>} -> - decode_disco_item(_el); + decode_disco_item(<<"http://jabber.org/protocol/disco#items">>, + _el); {<<"query">>, <<"http://jabber.org/protocol/disco#info">>} -> - decode_disco_info(_el); + decode_disco_info(<<"http://jabber.org/protocol/disco#info">>, + _el); {<<"feature">>, <<"http://jabber.org/protocol/disco#info">>} -> - decode_disco_feature(_el); + decode_disco_feature(<<"http://jabber.org/protocol/disco#info">>, + _el); {<<"identity">>, <<"http://jabber.org/protocol/disco#info">>} -> - decode_disco_identity(_el); + decode_disco_identity(<<"http://jabber.org/protocol/disco#info">>, + _el); {<<"blocklist">>, <<"urn:xmpp:blocking">>} -> - decode_block_list(_el); + decode_block_list(<<"urn:xmpp:blocking">>, _el); {<<"unblock">>, <<"urn:xmpp:blocking">>} -> - decode_unblock(_el); + decode_unblock(<<"urn:xmpp:blocking">>, _el); {<<"block">>, <<"urn:xmpp:blocking">>} -> - decode_block(_el); + decode_block(<<"urn:xmpp:blocking">>, _el); {<<"item">>, <<"urn:xmpp:blocking">>} -> - decode_block_item(_el); + decode_block_item(<<"urn:xmpp:blocking">>, _el); {<<"query">>, <<"jabber:iq:privacy">>} -> - decode_privacy(_el); + decode_privacy(<<"jabber:iq:privacy">>, _el); {<<"active">>, <<"jabber:iq:privacy">>} -> - decode_privacy_active_list(_el); + decode_privacy_active_list(<<"jabber:iq:privacy">>, + _el); {<<"default">>, <<"jabber:iq:privacy">>} -> - decode_privacy_default_list(_el); + decode_privacy_default_list(<<"jabber:iq:privacy">>, + _el); {<<"list">>, <<"jabber:iq:privacy">>} -> - decode_privacy_list(_el); + decode_privacy_list(<<"jabber:iq:privacy">>, _el); {<<"item">>, <<"jabber:iq:privacy">>} -> - decode_privacy_item(_el); + decode_privacy_item(<<"jabber:iq:privacy">>, _el); {<<"presence-out">>, <<"jabber:iq:privacy">>} -> - decode_privacy_presence_out(_el); + decode_privacy_presence_out(<<"jabber:iq:privacy">>, + _el); {<<"presence-in">>, <<"jabber:iq:privacy">>} -> - decode_privacy_presence_in(_el); + decode_privacy_presence_in(<<"jabber:iq:privacy">>, + _el); {<<"iq">>, <<"jabber:iq:privacy">>} -> - decode_privacy_iq(_el); + decode_privacy_iq(<<"jabber:iq:privacy">>, _el); {<<"message">>, <<"jabber:iq:privacy">>} -> - decode_privacy_message(_el); + decode_privacy_message(<<"jabber:iq:privacy">>, _el); {<<"query">>, <<"jabber:iq:roster">>} -> - decode_roster(_el); + decode_roster(<<"jabber:iq:roster">>, _el); {<<"item">>, <<"jabber:iq:roster">>} -> - decode_roster_item(_el); + decode_roster_item(<<"jabber:iq:roster">>, _el); {<<"group">>, <<"jabber:iq:roster">>} -> - decode_roster_group(_el); + decode_roster_group(<<"jabber:iq:roster">>, _el); {<<"query">>, <<"jabber:iq:version">>} -> - decode_version(_el); + decode_version(<<"jabber:iq:version">>, _el); {<<"os">>, <<"jabber:iq:version">>} -> - decode_version_os(_el); + decode_version_os(<<"jabber:iq:version">>, _el); {<<"version">>, <<"jabber:iq:version">>} -> - decode_version_ver(_el); + decode_version_ver(<<"jabber:iq:version">>, _el); {<<"name">>, <<"jabber:iq:version">>} -> - decode_version_name(_el); - {<<"query">>, <<"jabber:iq:last">>} -> decode_last(_el); + decode_version_name(<<"jabber:iq:version">>, _el); + {<<"query">>, <<"jabber:iq:last">>} -> + decode_last(<<"jabber:iq:last">>, _el); {_name, _xmlns} -> erlang:error({xmpp_codec, {unknown_tag, _name, _xmlns}}) end. is_known_tag({xmlel, _name, _attrs, _} = _el) -> case {_name, get_attr(<<"xmlns">>, _attrs)} of + {<<"failed">>, <<"urn:xmpp:sm:2">>} -> true; {<<"failed">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"a">>, <<"urn:xmpp:sm:2">>} -> true; {<<"a">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"r">>, <<"urn:xmpp:sm:2">>} -> true; {<<"r">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"resumed">>, <<"urn:xmpp:sm:2">>} -> true; {<<"resumed">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"resume">>, <<"urn:xmpp:sm:2">>} -> true; {<<"resume">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"enabled">>, <<"urn:xmpp:sm:2">>} -> true; {<<"enabled">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"enable">>, <<"urn:xmpp:sm:2">>} -> true; {<<"enable">>, <<"urn:xmpp:sm:3">>} -> true; + {<<"sm">>, <<"urn:xmpp:sm:2">>} -> true; {<<"sm">>, <<"urn:xmpp:sm:3">>} -> true; {<<"sent">>, <<"urn:xmpp:carbons:2">>} -> true; {<<"received">>, <<"urn:xmpp:carbons:2">>} -> true; @@ -1307,381 +1506,373 @@ is_known_tag({xmlel, _name, _attrs, _} = _el) -> _ -> false end. -encode({sm_failed, _} = Failed) -> - encode_sm_failed(Failed, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_a, _} = A) -> - encode_sm_a(A, [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_r} = R) -> - encode_sm_r(R, [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_resumed, _, _} = Resumed) -> - encode_sm_resumed(Resumed, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_resume, _, _} = Resume) -> - encode_sm_resume(Resume, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_enabled, _, _, _, _} = Enabled) -> - encode_sm_enabled(Enabled, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({sm_enable, _, _} = Enable) -> - encode_sm_enable(Enable, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({feature_sm} = Sm) -> - encode_feature_sm(Sm, - [{<<"xmlns">>, <<"urn:xmpp:sm:3">>}]); -encode({carbons_sent, _} = Sent) -> - encode_carbons_sent(Sent, - [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); -encode({carbons_received, _} = Received) -> - encode_carbons_received(Received, - [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); -encode({carbons_private} = Private) -> - encode_carbons_private(Private, - [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); -encode({carbons_enable} = Enable) -> - encode_carbons_enable(Enable, - [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); -encode({carbons_disable} = Disable) -> - encode_carbons_disable(Disable, - [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); -encode({forwarded, _, _} = Forwarded) -> - encode_forwarded(Forwarded, - [{<<"xmlns">>, <<"urn:xmpp:forward:0">>}]); -encode({muc, _, _} = X) -> - encode_muc(X, - [{<<"xmlns">>, <<"http://jabber.org/protocol/muc">>}]); -encode({muc_admin, _} = Query) -> - encode_muc_admin(Query, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#admin">>}]); -encode({muc_owner, _, _} = Query) -> - encode_muc_owner(Query, +encode({last, _, _} = Query) -> + encode_last(Query, + [{<<"xmlns">>, <<"jabber:iq:last">>}]); +encode({version, _, _, _} = Query) -> + encode_version(Query, + [{<<"xmlns">>, <<"jabber:iq:version">>}]); +encode({roster_item, _, _, _, _, _} = Item) -> + encode_roster_item(Item, + [{<<"xmlns">>, <<"jabber:iq:roster">>}]); +encode({roster, _, _} = Query) -> + encode_roster(Query, + [{<<"xmlns">>, <<"jabber:iq:roster">>}]); +encode({privacy_item, _, _, _, _, _} = Item) -> + encode_privacy_item(Item, + [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); +encode({privacy_list, _, _} = List) -> + encode_privacy_list(List, + [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); +encode({privacy, _, _, _} = Query) -> + encode_privacy(Query, + [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); +encode({block, _} = Block) -> + encode_block(Block, + [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); +encode({unblock, _} = Unblock) -> + encode_unblock(Unblock, + [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); +encode({block_list} = Blocklist) -> + encode_block_list(Blocklist, + [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); +encode({identity, _, _, _, _} = Identity) -> + encode_disco_identity(Identity, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/disco#info">>}]); +encode({disco_info, _, _, _, _} = Query) -> + encode_disco_info(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/disco#info">>}]); +encode({disco_item, _, _, _} = Item) -> + encode_disco_item(Item, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/disco#items">>}]); +encode({disco_items, _, _} = Query) -> + encode_disco_items(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/disco#items">>}]); +encode({private, _} = Query) -> + encode_private(Query, + [{<<"xmlns">>, <<"jabber:iq:private">>}]); +encode({bookmark_conference, _, _, _, _, _} = + Conference) -> + encode_bookmark_conference(Conference, + [{<<"xmlns">>, <<"storage:bookmarks">>}]); +encode({bookmark_url, _, _} = Url) -> + encode_bookmark_url(Url, + [{<<"xmlns">>, <<"storage:bookmarks">>}]); +encode({bookmark_storage, _, _} = Storage) -> + encode_bookmarks_storage(Storage, + [{<<"xmlns">>, <<"storage:bookmarks">>}]); +encode({stat, _, _, _, _} = Stat) -> + encode_stat(Stat, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/stats">>}]); +encode({stats, _} = Query) -> + encode_stats(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/stats">>}]); +encode({iq, _, _, _, _, _, _, _} = Iq) -> + encode_iq(Iq, [{<<"xmlns">>, <<"jabber:client">>}]); +encode({message, _, _, _, _, _, _, _, _, _, _} = + Message) -> + encode_message(Message, + [{<<"xmlns">>, <<"jabber:client">>}]); +encode({presence, _, _, _, _, _, _, _, _, _, _} = + Presence) -> + encode_presence(Presence, + [{<<"xmlns">>, <<"jabber:client">>}]); +encode({gone, _} = Gone) -> + encode_error_gone(Gone, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]); +encode({redirect, _} = Redirect) -> + encode_error_redirect(Redirect, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]); +encode({error, _, _, _, _} = Error) -> + encode_error(Error, + [{<<"xmlns">>, <<"jabber:client">>}]); +encode({bind, _, _} = Bind) -> + encode_bind(Bind, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-bind">>}]); +encode({sasl_auth, _, _} = Auth) -> + encode_sasl_auth(Auth, [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#owner">>}]); -encode({muc_owner_destroy, _, _, _} = Destroy) -> - encode_muc_owner_destroy(Destroy, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#owner">>}]); -encode({muc_user, _, _, _, _, _, _} = X) -> - encode_muc_user(X, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#user">>}]); -encode({muc_invite, _, _, _} = Invite) -> - encode_muc_user_invite(Invite, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_abort} = Abort) -> + encode_sasl_abort(Abort, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_challenge, _} = Challenge) -> + encode_sasl_challenge(Challenge, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_response, _} = Response) -> + encode_sasl_response(Response, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_success, _} = Success) -> + encode_sasl_success(Success, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_failure, _, _} = Failure) -> + encode_sasl_failure(Failure, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({sasl_mechanisms, _} = Mechanisms) -> + encode_sasl_mechanisms(Mechanisms, [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#user">>}]); -encode({muc_user_destroy, _, _} = Destroy) -> - encode_muc_user_destroy(Destroy, + <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); +encode({starttls, _} = Starttls) -> + encode_starttls(Starttls, + [{<<"xmlns">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); +encode({starttls_proceed} = Proceed) -> + encode_starttls_proceed(Proceed, [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#user">>}]); -encode({muc_decline, _, _, _} = Decline) -> - encode_muc_user_decline(Decline, + <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); +encode({starttls_failure} = Failure) -> + encode_starttls_failure(Failure, [{<<"xmlns">>, - <<"http://jabber.org/protocol/muc#user">>}]); -encode({muc_history, _, _, _, _} = History) -> - encode_muc_history(History, - [{<<"xmlns">>, <<"http://jabber.org/protocol/muc">>}]); -encode({bytestreams, _, _, _, _, _, _} = Query) -> - encode_bytestreams(Query, + <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); +encode({compress_failure, _} = Failure) -> + encode_compress_failure(Failure, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/compress">>}]); +encode({compress, _} = Compress) -> + encode_compress(Compress, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/compress">>}]); +encode({compressed} = Compressed) -> + encode_compressed(Compressed, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/compress">>}]); +encode({compression, _} = Compression) -> + encode_compression(Compression, [{<<"xmlns">>, - <<"http://jabber.org/protocol/bytestreams">>}]); -encode({streamhost, _, _, _} = Streamhost) -> - encode_bytestreams_streamhost(Streamhost, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/bytestreams">>}]); -encode({legacy_delay, _, _} = X) -> - encode_legacy_delay(X, - [{<<"xmlns">>, <<"jabber:x:delay">>}]); -encode({delay, _, _} = Delay) -> - encode_delay(Delay, - [{<<"xmlns">>, <<"urn:xmpp:delay">>}]); -encode({shim, _} = Headers) -> - encode_shim_headers(Headers, - [{<<"xmlns">>, <<"http://jabber.org/protocol/shim">>}]); -encode({pubsub, _, _, _, _, _, _, _, _} = Pubsub) -> - encode_pubsub(Pubsub, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_retract, _, _, _} = Retract) -> - encode_pubsub_retract(Retract, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_options, _, _, _, _} = Options) -> - encode_pubsub_options(Options, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_publish, _, _} = Publish) -> - encode_pubsub_publish(Publish, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_unsubscribe, _, _, _} = Unsubscribe) -> - encode_pubsub_unsubscribe(Unsubscribe, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_subscribe, _, _} = Subscribe) -> - encode_pubsub_subscribe(Subscribe, + <<"http://jabber.org/features/compress">>}]); +encode({stream_features, _} = Stream_features) -> + encode_stream_features(Stream_features, + [{<<"xmlns">>, + <<"http://etherx.jabber.org/streams">>}]); +encode({p1_push} = Push) -> + encode_p1_push(Push, [{<<"xmlns">>, <<"p1:push">>}]); +encode({p1_rebind} = Rebind) -> + encode_p1_rebind(Rebind, + [{<<"xmlns">>, <<"p1:rebind">>}]); +encode({p1_ack} = Ack) -> + encode_p1_ack(Ack, [{<<"xmlns">>, <<"p1:ack">>}]); +encode({caps, _, _, _} = C) -> + encode_caps(C, + [{<<"xmlns">>, <<"http://jabber.org/protocol/caps">>}]); +encode({feature_register} = Register) -> + encode_feature_register(Register, [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_event, _} = Event) -> - encode_pubsub_event(Event, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub#event">>}]); -encode({pubsub_event_items, _, _, _} = Items) -> - encode_pubsub_event_items(Items, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub#event">>}]); -encode({pubsub_event_item, _, _, _} = Item) -> - encode_pubsub_event_item(Item, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub#event">>}]); -encode({pubsub_items, _, _, _, _} = Items) -> - encode_pubsub_items(Items, + <<"http://jabber.org/features/iq-register">>}]); +encode({register, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _} = + Query) -> + encode_register(Query, + [{<<"xmlns">>, <<"jabber:iq:register">>}]); +encode({session} = Session) -> + encode_session(Session, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-session">>}]); +encode({ping} = Ping) -> + encode_ping(Ping, [{<<"xmlns">>, <<"urn:xmpp:ping">>}]); +encode({time, _, _} = Time) -> + encode_time(Time, [{<<"xmlns">>, <<"urn:xmpp:time">>}]); +encode({'see-other-host', _} = See_other_host) -> + encode_stream_error_see_other_host(See_other_host, + [{<<"xmlns">>, + <<"urn:ietf:params:xml:ns:xmpp-streams">>}]); +encode({stream_error, _, _} = Stream_error) -> + encode_stream_error(Stream_error, [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_item, _, _} = Item) -> - encode_pubsub_item(Item, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_affiliation, _, _} = Affiliation) -> - encode_pubsub_affiliation(Affiliation, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({pubsub_subscription, _, _, _, _} = - Subscription) -> - encode_pubsub_subscription(Subscription, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/pubsub">>}]); -encode({xdata, _, _, _, _, _, _} = X) -> - encode_xdata(X, [{<<"xmlns">>, <<"jabber:x:data">>}]); -encode({xdata_field, _, _, _, _, _, _, _} = Field) -> - encode_xdata_field(Field, - [{<<"xmlns">>, <<"jabber:x:data">>}]); -encode({vcard, _, _, _, _, _, _, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = - Vcard) -> - encode_vcard(Vcard, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_key, _, _} = Key) -> - encode_vcard_KEY(Key, - [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_sound, _, _, _} = Sound) -> - encode_vcard_SOUND(Sound, - [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_org, _, _} = Org) -> - encode_vcard_ORG(Org, - [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_photo, _, _, _} = Photo) -> - encode_vcard_PHOTO(Photo, - [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_logo, _, _, _} = Logo) -> - encode_vcard_LOGO(Logo, - [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_geo, _, _} = Geo) -> - encode_vcard_GEO(Geo, + <<"http://etherx.jabber.org/streams">>}]); +encode({vcard_name, _, _, _, _, _} = N) -> + encode_vcard_N(N, [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard_adr, _, _, _, _, _, _, _, _, _, _, _, _, + _, _} = + Adr) -> + encode_vcard_ADR(Adr, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_email, _, _, _, _, _, _} = Email) -> - encode_vcard_EMAIL(Email, +encode({vcard_label, _, _, _, _, _, _, _, _} = Label) -> + encode_vcard_LABEL(Label, [{<<"xmlns">>, <<"vcard-temp">>}]); encode({vcard_tel, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Tel) -> encode_vcard_TEL(Tel, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_label, _, _, _, _, _, _, _, _} = Label) -> - encode_vcard_LABEL(Label, +encode({vcard_email, _, _, _, _, _, _} = Email) -> + encode_vcard_EMAIL(Email, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_adr, _, _, _, _, _, _, _, _, _, _, _, _, - _, _} = - Adr) -> - encode_vcard_ADR(Adr, +encode({vcard_geo, _, _} = Geo) -> + encode_vcard_GEO(Geo, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({vcard_name, _, _, _, _, _} = N) -> - encode_vcard_N(N, [{<<"xmlns">>, <<"vcard-temp">>}]); -encode({stream_error, _, _} = Stream_error) -> - encode_stream_error(Stream_error, - [{<<"xmlns">>, - <<"http://etherx.jabber.org/streams">>}]); -encode({'see-other-host', _} = See_other_host) -> - encode_stream_error_see_other_host(See_other_host, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-streams">>}]); -encode({time, _, _} = Time) -> - encode_time(Time, [{<<"xmlns">>, <<"urn:xmpp:time">>}]); -encode({ping} = Ping) -> - encode_ping(Ping, [{<<"xmlns">>, <<"urn:xmpp:ping">>}]); -encode({session} = Session) -> - encode_session(Session, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-session">>}]); -encode({register, _, _, _, _, _, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _} = - Query) -> - encode_register(Query, - [{<<"xmlns">>, <<"jabber:iq:register">>}]); -encode({feature_register} = Register) -> - encode_feature_register(Register, - [{<<"xmlns">>, - <<"http://jabber.org/features/iq-register">>}]); -encode({caps, _, _, _} = C) -> - encode_caps(C, - [{<<"xmlns">>, <<"http://jabber.org/protocol/caps">>}]); -encode({p1_ack} = Ack) -> - encode_p1_ack(Ack, [{<<"xmlns">>, <<"p1:ack">>}]); -encode({p1_rebind} = Rebind) -> - encode_p1_rebind(Rebind, - [{<<"xmlns">>, <<"p1:rebind">>}]); -encode({p1_push} = Push) -> - encode_p1_push(Push, [{<<"xmlns">>, <<"p1:push">>}]); -encode({stream_features, _} = Stream_features) -> - encode_stream_features(Stream_features, - [{<<"xmlns">>, - <<"http://etherx.jabber.org/streams">>}]); -encode({compression, _} = Compression) -> - encode_compression(Compression, +encode({vcard_logo, _, _, _} = Logo) -> + encode_vcard_LOGO(Logo, + [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard_photo, _, _, _} = Photo) -> + encode_vcard_PHOTO(Photo, + [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard_org, _, _} = Org) -> + encode_vcard_ORG(Org, + [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard_sound, _, _, _} = Sound) -> + encode_vcard_SOUND(Sound, + [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard_key, _, _} = Key) -> + encode_vcard_KEY(Key, + [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({vcard, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = + Vcard) -> + encode_vcard(Vcard, [{<<"xmlns">>, <<"vcard-temp">>}]); +encode({xdata_field, _, _, _, _, _, _, _} = Field) -> + encode_xdata_field(Field, + [{<<"xmlns">>, <<"jabber:x:data">>}]); +encode({xdata, _, _, _, _, _, _} = X) -> + encode_xdata(X, [{<<"xmlns">>, <<"jabber:x:data">>}]); +encode({pubsub_subscription, _, _, _, _} = + Subscription) -> + encode_pubsub_subscription(Subscription, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_affiliation, _, _} = Affiliation) -> + encode_pubsub_affiliation(Affiliation, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_item, _, _} = Item) -> + encode_pubsub_item(Item, [{<<"xmlns">>, - <<"http://jabber.org/features/compress">>}]); -encode({compressed} = Compressed) -> - encode_compressed(Compressed, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/compress">>}]); -encode({compress, _} = Compress) -> - encode_compress(Compress, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/compress">>}]); -encode({compress_failure, _} = Failure) -> - encode_compress_failure(Failure, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/compress">>}]); -encode({starttls_failure} = Failure) -> - encode_starttls_failure(Failure, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); -encode({starttls_proceed} = Proceed) -> - encode_starttls_proceed(Proceed, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); -encode({starttls, _} = Starttls) -> - encode_starttls(Starttls, - [{<<"xmlns">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>}]); -encode({sasl_mechanisms, _} = Mechanisms) -> - encode_sasl_mechanisms(Mechanisms, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_failure, _, _} = Failure) -> - encode_sasl_failure(Failure, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_items, _, _, _, _} = Items) -> + encode_pubsub_items(Items, [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_success, _} = Success) -> - encode_sasl_success(Success, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_event_item, _, _, _} = Item) -> + encode_pubsub_event_item(Item, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub#event">>}]); +encode({pubsub_event_items, _, _, _} = Items) -> + encode_pubsub_event_items(Items, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub#event">>}]); +encode({pubsub_event, _} = Event) -> + encode_pubsub_event(Event, [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_response, _} = Response) -> - encode_sasl_response(Response, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_challenge, _} = Challenge) -> - encode_sasl_challenge(Challenge, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_abort} = Abort) -> - encode_sasl_abort(Abort, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({sasl_auth, _, _} = Auth) -> - encode_sasl_auth(Auth, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}]); -encode({bind, _, _} = Bind) -> - encode_bind(Bind, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-bind">>}]); -encode({error, _, _, _, _} = Error) -> - encode_error(Error, - [{<<"xmlns">>, <<"jabber:client">>}]); -encode({redirect, _} = Redirect) -> - encode_error_redirect(Redirect, + <<"http://jabber.org/protocol/pubsub#event">>}]); +encode({pubsub_subscribe, _, _} = Subscribe) -> + encode_pubsub_subscribe(Subscribe, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_unsubscribe, _, _, _} = Unsubscribe) -> + encode_pubsub_unsubscribe(Unsubscribe, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_publish, _, _} = Publish) -> + encode_pubsub_publish(Publish, [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]); -encode({gone, _} = Gone) -> - encode_error_gone(Gone, - [{<<"xmlns">>, - <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]); -encode({presence, _, _, _, _, _, _, _, _, _, _} = - Presence) -> - encode_presence(Presence, - [{<<"xmlns">>, <<"jabber:client">>}]); -encode({message, _, _, _, _, _, _, _, _, _, _} = - Message) -> - encode_message(Message, - [{<<"xmlns">>, <<"jabber:client">>}]); -encode({iq, _, _, _, _, _, _, _} = Iq) -> - encode_iq(Iq, [{<<"xmlns">>, <<"jabber:client">>}]); -encode({stats, _} = Query) -> - encode_stats(Query, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/stats">>}]); -encode({stat, _, _, _, _} = Stat) -> - encode_stat(Stat, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/stats">>}]); -encode({bookmark_storage, _, _} = Storage) -> - encode_bookmarks_storage(Storage, - [{<<"xmlns">>, <<"storage:bookmarks">>}]); -encode({bookmark_url, _, _} = Url) -> - encode_bookmark_url(Url, - [{<<"xmlns">>, <<"storage:bookmarks">>}]); -encode({bookmark_conference, _, _, _, _, _} = - Conference) -> - encode_bookmark_conference(Conference, - [{<<"xmlns">>, <<"storage:bookmarks">>}]); -encode({private, _} = Query) -> - encode_private(Query, - [{<<"xmlns">>, <<"jabber:iq:private">>}]); -encode({disco_items, _, _} = Query) -> - encode_disco_items(Query, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/disco#items">>}]); -encode({disco_item, _, _, _} = Item) -> - encode_disco_item(Item, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/disco#items">>}]); -encode({disco_info, _, _, _, _} = Query) -> - encode_disco_info(Query, - [{<<"xmlns">>, - <<"http://jabber.org/protocol/disco#info">>}]); -encode({identity, _, _, _, _} = Identity) -> - encode_disco_identity(Identity, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_options, _, _, _, _} = Options) -> + encode_pubsub_options(Options, [{<<"xmlns">>, - <<"http://jabber.org/protocol/disco#info">>}]); -encode({block_list} = Blocklist) -> - encode_block_list(Blocklist, - [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); -encode({unblock, _} = Unblock) -> - encode_unblock(Unblock, - [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); -encode({block, _} = Block) -> - encode_block(Block, - [{<<"xmlns">>, <<"urn:xmpp:blocking">>}]); -encode({privacy, _, _, _} = Query) -> - encode_privacy(Query, - [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); -encode({privacy_list, _, _} = List) -> - encode_privacy_list(List, - [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); -encode({privacy_item, _, _, _, _, _} = Item) -> - encode_privacy_item(Item, - [{<<"xmlns">>, <<"jabber:iq:privacy">>}]); -encode({roster, _, _} = Query) -> - encode_roster(Query, - [{<<"xmlns">>, <<"jabber:iq:roster">>}]); -encode({roster_item, _, _, _, _, _} = Item) -> - encode_roster_item(Item, - [{<<"xmlns">>, <<"jabber:iq:roster">>}]); -encode({version, _, _, _} = Query) -> - encode_version(Query, - [{<<"xmlns">>, <<"jabber:iq:version">>}]); -encode({last, _, _} = Query) -> - encode_last(Query, - [{<<"xmlns">>, <<"jabber:iq:last">>}]). + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub_retract, _, _, _} = Retract) -> + encode_pubsub_retract(Retract, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({pubsub, _, _, _, _, _, _, _, _} = Pubsub) -> + encode_pubsub(Pubsub, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/pubsub">>}]); +encode({shim, _} = Headers) -> + encode_shim_headers(Headers, + [{<<"xmlns">>, <<"http://jabber.org/protocol/shim">>}]); +encode({delay, _, _} = Delay) -> + encode_delay(Delay, + [{<<"xmlns">>, <<"urn:xmpp:delay">>}]); +encode({legacy_delay, _, _} = X) -> + encode_legacy_delay(X, + [{<<"xmlns">>, <<"jabber:x:delay">>}]); +encode({streamhost, _, _, _} = Streamhost) -> + encode_bytestreams_streamhost(Streamhost, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/bytestreams">>}]); +encode({bytestreams, _, _, _, _, _, _} = Query) -> + encode_bytestreams(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/bytestreams">>}]); +encode({muc_history, _, _, _, _} = History) -> + encode_muc_history(History, + [{<<"xmlns">>, <<"http://jabber.org/protocol/muc">>}]); +encode({muc_decline, _, _, _} = Decline) -> + encode_muc_user_decline(Decline, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#user">>}]); +encode({muc_user_destroy, _, _} = Destroy) -> + encode_muc_user_destroy(Destroy, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#user">>}]); +encode({muc_invite, _, _, _} = Invite) -> + encode_muc_user_invite(Invite, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#user">>}]); +encode({muc_user, _, _, _, _, _, _} = X) -> + encode_muc_user(X, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#user">>}]); +encode({muc_owner_destroy, _, _, _} = Destroy) -> + encode_muc_owner_destroy(Destroy, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#owner">>}]); +encode({muc_owner, _, _} = Query) -> + encode_muc_owner(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#owner">>}]); +encode({muc_admin, _} = Query) -> + encode_muc_admin(Query, + [{<<"xmlns">>, + <<"http://jabber.org/protocol/muc#admin">>}]); +encode({muc, _, _} = X) -> + encode_muc(X, + [{<<"xmlns">>, <<"http://jabber.org/protocol/muc">>}]); +encode({forwarded, _, _} = Forwarded) -> + encode_forwarded(Forwarded, + [{<<"xmlns">>, <<"urn:xmpp:forward:0">>}]); +encode({carbons_disable} = Disable) -> + encode_carbons_disable(Disable, + [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); +encode({carbons_enable} = Enable) -> + encode_carbons_enable(Enable, + [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); +encode({carbons_private} = Private) -> + encode_carbons_private(Private, + [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); +encode({carbons_received, _} = Received) -> + encode_carbons_received(Received, + [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); +encode({carbons_sent, _} = Sent) -> + encode_carbons_sent(Sent, + [{<<"xmlns">>, <<"urn:xmpp:carbons:2">>}]); +encode({feature_sm, _} = Sm) -> + encode_feature_sm(Sm, []); +encode({sm_enable, _, _, _} = Enable) -> + encode_sm_enable(Enable, []); +encode({sm_enabled, _, _, _, _, _} = Enabled) -> + encode_sm_enabled(Enabled, []); +encode({sm_resume, _, _, _} = Resume) -> + encode_sm_resume(Resume, []); +encode({sm_resumed, _, _, _} = Resumed) -> + encode_sm_resumed(Resumed, []); +encode({sm_r, _} = R) -> encode_sm_r(R, []); +encode({sm_a, _, _} = A) -> encode_sm_a(A, []); +encode({sm_failed, _, _} = Failed) -> + encode_sm_failed(Failed, []). dec_int(Val) -> dec_int(Val, infinity, infinity). @@ -1864,14 +2055,14 @@ pp(carbons_enable, 0) -> []; pp(carbons_private, 0) -> []; pp(carbons_received, 1) -> [forwarded]; pp(carbons_sent, 1) -> [forwarded]; -pp(feature_sm, 0) -> []; -pp(sm_enable, 2) -> [max, resume]; -pp(sm_enabled, 4) -> [id, location, max, resume]; -pp(sm_resume, 2) -> [h, previd]; -pp(sm_resumed, 2) -> [h, previd]; -pp(sm_r, 0) -> []; -pp(sm_a, 1) -> [h]; -pp(sm_failed, 1) -> [reason]; +pp(feature_sm, 1) -> [xmlns]; +pp(sm_enable, 3) -> [max, resume, xmlns]; +pp(sm_enabled, 5) -> [id, location, max, resume, xmlns]; +pp(sm_resume, 3) -> [h, previd, xmlns]; +pp(sm_resumed, 3) -> [h, previd, xmlns]; +pp(sm_r, 1) -> [xmlns]; +pp(sm_a, 2) -> [h, xmlns]; +pp(sm_failed, 2) -> [reason, xmlns]; pp(_, _) -> no. enc_bool(false) -> <<"false">>; @@ -1914,276 +2105,271 @@ dec_tzo(Val) -> M = jlib:binary_to_integer(M1), if H >= -12, H =< 12, M >= 0, M < 60 -> {H, M} end. -decode_sm_failed({xmlel, <<"failed">>, _attrs, _els}) -> - Reason = decode_sm_failed_els(_els, undefined), - {sm_failed, Reason}. +decode_sm_failed(__TopXMLNS, + {xmlel, <<"failed">>, _attrs, _els}) -> + Reason = decode_sm_failed_els(__TopXMLNS, _els, + undefined), + Xmlns = decode_sm_failed_attrs(__TopXMLNS, _attrs, + undefined), + {sm_failed, Reason, Xmlns}. -decode_sm_failed_els([], Reason) -> Reason; -decode_sm_failed_els([{xmlel, <<"bad-request">>, _attrs, - _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, [], Reason) -> Reason; +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"bad-request">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_bad_request(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_bad_request(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"conflict">>, _attrs, - _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, decode_error_conflict(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_conflict(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"feature-not-implemented">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"feature-not-implemented">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_feature_not_implemented(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_feature_not_implemented(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"forbidden">>, _attrs, - _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"forbidden">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, decode_error_forbidden(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_forbidden(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"gone">>, _attrs, _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"gone">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, decode_error_gone(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_gone(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"internal-server-error">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_internal_server_error(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_internal_server_error(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"item-not-found">>, - _attrs, _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"item-not-found">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_item_not_found(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_item_not_found(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"jid-malformed">>, - _attrs, _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"jid-malformed">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_jid_malformed(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_jid_malformed(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"not-acceptable">>, - _attrs, _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"not-acceptable">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_not_acceptable(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_not_acceptable(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"not-allowed">>, _attrs, - _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"not-allowed">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_not_allowed(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_not_allowed(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"not-authorized">>, - _attrs, _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_not_authorized(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_not_authorized(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"policy-violation">>, - _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_policy_violation(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_policy_violation(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"recipient-unavailable">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"recipient-unavailable">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_recipient_unavailable(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_recipient_unavailable(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"redirect">>, _attrs, - _} = - _el - | _els], +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, decode_error_redirect(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_redirect(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"registration-required">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"registration-required">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_registration_required(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_registration_required(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"remote-server-not-found">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"remote-server-not-found">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_remote_server_not_found(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_remote_server_not_found(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"remote-server-timeout">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"remote-server-timeout">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_remote_server_timeout(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_remote_server_timeout(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"resource-constraint">>, - _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_resource_constraint(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_resource_constraint(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"service-unavailable">>, - _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"service-unavailable">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_service_unavailable(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_service_unavailable(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, - <<"subscription-required">>, _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"subscription-required">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_subscription_required(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_subscription_required(_xmlns, + _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"undefined-condition">>, - _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_undefined_condition(_el)); - true -> decode_sm_failed_els(_els, Reason) + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_undefined_condition(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) end; -decode_sm_failed_els([{xmlel, <<"unexpected-request">>, - _attrs, _} = - _el +decode_sm_failed_els(__TopXMLNS, + [{xmlel, <<"unexpected-request">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_sm_failed_els(_els, - decode_error_unexpected_request(_el)); - true -> decode_sm_failed_els(_els, Reason) - end; -decode_sm_failed_els([_ | _els], Reason) -> - decode_sm_failed_els(_els, Reason). - -encode_sm_failed({sm_failed, Reason}, _xmlns_attrs) -> + decode_sm_failed_els(__TopXMLNS, _els, + decode_error_unexpected_request(_xmlns, _el)); + true -> decode_sm_failed_els(__TopXMLNS, _els, Reason) + end; +decode_sm_failed_els(__TopXMLNS, [_ | _els], Reason) -> + decode_sm_failed_els(__TopXMLNS, _els, Reason). + +decode_sm_failed_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> + decode_sm_failed_attrs(__TopXMLNS, _attrs, _val); +decode_sm_failed_attrs(__TopXMLNS, [_ | _attrs], + Xmlns) -> + decode_sm_failed_attrs(__TopXMLNS, _attrs, Xmlns); +decode_sm_failed_attrs(__TopXMLNS, [], Xmlns) -> + decode_sm_failed_attr_xmlns(__TopXMLNS, Xmlns). + +encode_sm_failed({sm_failed, Reason, Xmlns}, + _xmlns_attrs) -> _els = 'encode_sm_failed_$reason'(Reason, []), - _attrs = _xmlns_attrs, + _attrs = encode_sm_failed_attr_xmlns(Xmlns, + _xmlns_attrs), {xmlel, <<"failed">>, _attrs, _els}. 'encode_sm_failed_$reason'(undefined, _acc) -> _acc; @@ -2328,210 +2514,316 @@ encode_sm_failed({sm_failed, Reason}, _xmlns_attrs) -> <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]) | _acc]. -decode_sm_a({xmlel, <<"a">>, _attrs, _els}) -> - H = decode_sm_a_attrs(_attrs, undefined), {sm_a, H}. +decode_sm_failed_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_failed_attr_xmlns(__TopXMLNS, _val) -> _val. -decode_sm_a_attrs([{<<"h">>, _val} | _attrs], _H) -> - decode_sm_a_attrs(_attrs, _val); -decode_sm_a_attrs([_ | _attrs], H) -> - decode_sm_a_attrs(_attrs, H); -decode_sm_a_attrs([], H) -> decode_sm_a_attr_h(H). +encode_sm_failed_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_failed_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. -encode_sm_a({sm_a, H}, _xmlns_attrs) -> +decode_sm_a(__TopXMLNS, + {xmlel, <<"a">>, _attrs, _els}) -> + {H, Xmlns} = decode_sm_a_attrs(__TopXMLNS, _attrs, + undefined, undefined), + {sm_a, H, Xmlns}. + +decode_sm_a_attrs(__TopXMLNS, + [{<<"h">>, _val} | _attrs], _H, Xmlns) -> + decode_sm_a_attrs(__TopXMLNS, _attrs, _val, Xmlns); +decode_sm_a_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], H, _Xmlns) -> + decode_sm_a_attrs(__TopXMLNS, _attrs, H, _val); +decode_sm_a_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns) -> + decode_sm_a_attrs(__TopXMLNS, _attrs, H, Xmlns); +decode_sm_a_attrs(__TopXMLNS, [], H, Xmlns) -> + {decode_sm_a_attr_h(__TopXMLNS, H), + decode_sm_a_attr_xmlns(__TopXMLNS, Xmlns)}. + +encode_sm_a({sm_a, H, Xmlns}, _xmlns_attrs) -> _els = [], - _attrs = encode_sm_a_attr_h(H, _xmlns_attrs), + _attrs = encode_sm_a_attr_xmlns(Xmlns, + encode_sm_a_attr_h(H, _xmlns_attrs)), {xmlel, <<"a">>, _attrs, _els}. -decode_sm_a_attr_h(undefined) -> +decode_sm_a_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"h">>, <<"a">>, <<"urn:xmpp:sm:3">>}}); -decode_sm_a_attr_h(_val) -> + {missing_attr, <<"h">>, <<"a">>, __TopXMLNS}}); +decode_sm_a_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"h">>, <<"a">>, - <<"urn:xmpp:sm:3">>}}); + {bad_attr_value, <<"h">>, <<"a">>, __TopXMLNS}}); _res -> _res end. encode_sm_a_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. -decode_sm_r({xmlel, <<"r">>, _attrs, _els}) -> {sm_r}. - -encode_sm_r({sm_r}, _xmlns_attrs) -> +decode_sm_a_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_a_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_a_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_a_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_sm_r(__TopXMLNS, + {xmlel, <<"r">>, _attrs, _els}) -> + Xmlns = decode_sm_r_attrs(__TopXMLNS, _attrs, + undefined), + {sm_r, Xmlns}. + +decode_sm_r_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> + decode_sm_r_attrs(__TopXMLNS, _attrs, _val); +decode_sm_r_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> + decode_sm_r_attrs(__TopXMLNS, _attrs, Xmlns); +decode_sm_r_attrs(__TopXMLNS, [], Xmlns) -> + decode_sm_r_attr_xmlns(__TopXMLNS, Xmlns). + +encode_sm_r({sm_r, Xmlns}, _xmlns_attrs) -> _els = [], - _attrs = _xmlns_attrs, + _attrs = encode_sm_r_attr_xmlns(Xmlns, _xmlns_attrs), {xmlel, <<"r">>, _attrs, _els}. -decode_sm_resumed({xmlel, <<"resumed">>, _attrs, - _els}) -> - {H, Previd} = decode_sm_resumed_attrs(_attrs, undefined, - undefined), - {sm_resumed, H, Previd}. +decode_sm_r_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_r_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_r_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_r_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. -decode_sm_resumed_attrs([{<<"h">>, _val} | _attrs], _H, +decode_sm_resumed(__TopXMLNS, + {xmlel, <<"resumed">>, _attrs, _els}) -> + {H, Xmlns, Previd} = decode_sm_resumed_attrs(__TopXMLNS, + _attrs, undefined, undefined, + undefined), + {sm_resumed, H, Previd, Xmlns}. + +decode_sm_resumed_attrs(__TopXMLNS, + [{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) -> + decode_sm_resumed_attrs(__TopXMLNS, _attrs, _val, Xmlns, + Previd); +decode_sm_resumed_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) -> + decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, _val, + Previd); +decode_sm_resumed_attrs(__TopXMLNS, + [{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) -> + decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, Xmlns, + _val); +decode_sm_resumed_attrs(__TopXMLNS, [_ | _attrs], H, + Xmlns, Previd) -> + decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, Xmlns, + Previd); +decode_sm_resumed_attrs(__TopXMLNS, [], H, Xmlns, Previd) -> - decode_sm_resumed_attrs(_attrs, _val, Previd); -decode_sm_resumed_attrs([{<<"previd">>, _val} | _attrs], - H, _Previd) -> - decode_sm_resumed_attrs(_attrs, H, _val); -decode_sm_resumed_attrs([_ | _attrs], H, Previd) -> - decode_sm_resumed_attrs(_attrs, H, Previd); -decode_sm_resumed_attrs([], H, Previd) -> - {decode_sm_resumed_attr_h(H), - decode_sm_resumed_attr_previd(Previd)}. - -encode_sm_resumed({sm_resumed, H, Previd}, + {decode_sm_resumed_attr_h(__TopXMLNS, H), + decode_sm_resumed_attr_xmlns(__TopXMLNS, Xmlns), + decode_sm_resumed_attr_previd(__TopXMLNS, Previd)}. + +encode_sm_resumed({sm_resumed, H, Previd, Xmlns}, _xmlns_attrs) -> _els = [], _attrs = encode_sm_resumed_attr_previd(Previd, - encode_sm_resumed_attr_h(H, - _xmlns_attrs)), + encode_sm_resumed_attr_xmlns(Xmlns, + encode_sm_resumed_attr_h(H, + _xmlns_attrs))), {xmlel, <<"resumed">>, _attrs, _els}. -decode_sm_resumed_attr_h(undefined) -> +decode_sm_resumed_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"h">>, <<"resumed">>, - <<"urn:xmpp:sm:3">>}}); -decode_sm_resumed_attr_h(_val) -> + {missing_attr, <<"h">>, <<"resumed">>, __TopXMLNS}}); +decode_sm_resumed_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"h">>, <<"resumed">>, - <<"urn:xmpp:sm:3">>}}); + {bad_attr_value, <<"h">>, <<"resumed">>, __TopXMLNS}}); _res -> _res end. encode_sm_resumed_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. -decode_sm_resumed_attr_previd(undefined) -> +decode_sm_resumed_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_resumed_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_resumed_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_resumed_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_sm_resumed_attr_previd(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"previd">>, <<"resumed">>, - <<"urn:xmpp:sm:3">>}}); -decode_sm_resumed_attr_previd(_val) -> _val. + __TopXMLNS}}); +decode_sm_resumed_attr_previd(__TopXMLNS, _val) -> _val. encode_sm_resumed_attr_previd(_val, _acc) -> [{<<"previd">>, _val} | _acc]. -decode_sm_resume({xmlel, <<"resume">>, _attrs, _els}) -> - {H, Previd} = decode_sm_resume_attrs(_attrs, undefined, - undefined), - {sm_resume, H, Previd}. - -decode_sm_resume_attrs([{<<"h">>, _val} | _attrs], _H, +decode_sm_resume(__TopXMLNS, + {xmlel, <<"resume">>, _attrs, _els}) -> + {H, Xmlns, Previd} = decode_sm_resume_attrs(__TopXMLNS, + _attrs, undefined, undefined, + undefined), + {sm_resume, H, Previd, Xmlns}. + +decode_sm_resume_attrs(__TopXMLNS, + [{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) -> + decode_sm_resume_attrs(__TopXMLNS, _attrs, _val, Xmlns, + Previd); +decode_sm_resume_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) -> + decode_sm_resume_attrs(__TopXMLNS, _attrs, H, _val, + Previd); +decode_sm_resume_attrs(__TopXMLNS, + [{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) -> + decode_sm_resume_attrs(__TopXMLNS, _attrs, H, Xmlns, + _val); +decode_sm_resume_attrs(__TopXMLNS, [_ | _attrs], H, + Xmlns, Previd) -> + decode_sm_resume_attrs(__TopXMLNS, _attrs, H, Xmlns, + Previd); +decode_sm_resume_attrs(__TopXMLNS, [], H, Xmlns, Previd) -> - decode_sm_resume_attrs(_attrs, _val, Previd); -decode_sm_resume_attrs([{<<"previd">>, _val} | _attrs], - H, _Previd) -> - decode_sm_resume_attrs(_attrs, H, _val); -decode_sm_resume_attrs([_ | _attrs], H, Previd) -> - decode_sm_resume_attrs(_attrs, H, Previd); -decode_sm_resume_attrs([], H, Previd) -> - {decode_sm_resume_attr_h(H), - decode_sm_resume_attr_previd(Previd)}. - -encode_sm_resume({sm_resume, H, Previd}, + {decode_sm_resume_attr_h(__TopXMLNS, H), + decode_sm_resume_attr_xmlns(__TopXMLNS, Xmlns), + decode_sm_resume_attr_previd(__TopXMLNS, Previd)}. + +encode_sm_resume({sm_resume, H, Previd, Xmlns}, _xmlns_attrs) -> _els = [], _attrs = encode_sm_resume_attr_previd(Previd, - encode_sm_resume_attr_h(H, - _xmlns_attrs)), + encode_sm_resume_attr_xmlns(Xmlns, + encode_sm_resume_attr_h(H, + _xmlns_attrs))), {xmlel, <<"resume">>, _attrs, _els}. -decode_sm_resume_attr_h(undefined) -> +decode_sm_resume_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"h">>, <<"resume">>, - <<"urn:xmpp:sm:3">>}}); -decode_sm_resume_attr_h(_val) -> + {missing_attr, <<"h">>, <<"resume">>, __TopXMLNS}}); +decode_sm_resume_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"h">>, <<"resume">>, - <<"urn:xmpp:sm:3">>}}); + {bad_attr_value, <<"h">>, <<"resume">>, __TopXMLNS}}); _res -> _res end. encode_sm_resume_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. -decode_sm_resume_attr_previd(undefined) -> +decode_sm_resume_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_resume_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_resume_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_resume_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_sm_resume_attr_previd(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"previd">>, <<"resume">>, - <<"urn:xmpp:sm:3">>}}); -decode_sm_resume_attr_previd(_val) -> _val. + __TopXMLNS}}); +decode_sm_resume_attr_previd(__TopXMLNS, _val) -> _val. encode_sm_resume_attr_previd(_val, _acc) -> [{<<"previd">>, _val} | _acc]. -decode_sm_enabled({xmlel, <<"enabled">>, _attrs, - _els}) -> - {Id, Location, Max, Resume} = - decode_sm_enabled_attrs(_attrs, undefined, undefined, - undefined, undefined), - {sm_enabled, Id, Location, Max, Resume}. - -decode_sm_enabled_attrs([{<<"id">>, _val} | _attrs], - _Id, Location, Max, Resume) -> - decode_sm_enabled_attrs(_attrs, _val, Location, Max, - Resume); -decode_sm_enabled_attrs([{<<"location">>, _val} - | _attrs], - Id, _Location, Max, Resume) -> - decode_sm_enabled_attrs(_attrs, Id, _val, Max, Resume); -decode_sm_enabled_attrs([{<<"max">>, _val} | _attrs], - Id, Location, _Max, Resume) -> - decode_sm_enabled_attrs(_attrs, Id, Location, _val, - Resume); -decode_sm_enabled_attrs([{<<"resume">>, _val} | _attrs], - Id, Location, Max, _Resume) -> - decode_sm_enabled_attrs(_attrs, Id, Location, Max, - _val); -decode_sm_enabled_attrs([_ | _attrs], Id, Location, Max, +decode_sm_enabled(__TopXMLNS, + {xmlel, <<"enabled">>, _attrs, _els}) -> + {Id, Location, Xmlns, Max, Resume} = + decode_sm_enabled_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined, undefined), + {sm_enabled, Id, Location, Max, Resume, Xmlns}. + +decode_sm_enabled_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id, Location, Xmlns, Max, Resume) -> - decode_sm_enabled_attrs(_attrs, Id, Location, Max, - Resume); -decode_sm_enabled_attrs([], Id, Location, Max, + decode_sm_enabled_attrs(__TopXMLNS, _attrs, _val, + Location, Xmlns, Max, Resume); +decode_sm_enabled_attrs(__TopXMLNS, + [{<<"location">>, _val} | _attrs], Id, _Location, Xmlns, + Max, Resume) -> + decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, _val, + Xmlns, Max, Resume); +decode_sm_enabled_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], Id, Location, _Xmlns, + Max, Resume) -> + decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, + Location, _val, Max, Resume); +decode_sm_enabled_attrs(__TopXMLNS, + [{<<"max">>, _val} | _attrs], Id, Location, Xmlns, _Max, Resume) -> - {decode_sm_enabled_attr_id(Id), - decode_sm_enabled_attr_location(Location), - decode_sm_enabled_attr_max(Max), - decode_sm_enabled_attr_resume(Resume)}. + decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, + Location, Xmlns, _val, Resume); +decode_sm_enabled_attrs(__TopXMLNS, + [{<<"resume">>, _val} | _attrs], Id, Location, Xmlns, + Max, _Resume) -> + decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, + Location, Xmlns, Max, _val); +decode_sm_enabled_attrs(__TopXMLNS, [_ | _attrs], Id, + Location, Xmlns, Max, Resume) -> + decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, + Location, Xmlns, Max, Resume); +decode_sm_enabled_attrs(__TopXMLNS, [], Id, Location, + Xmlns, Max, Resume) -> + {decode_sm_enabled_attr_id(__TopXMLNS, Id), + decode_sm_enabled_attr_location(__TopXMLNS, Location), + decode_sm_enabled_attr_xmlns(__TopXMLNS, Xmlns), + decode_sm_enabled_attr_max(__TopXMLNS, Max), + decode_sm_enabled_attr_resume(__TopXMLNS, Resume)}. encode_sm_enabled({sm_enabled, Id, Location, Max, - Resume}, + Resume, Xmlns}, _xmlns_attrs) -> _els = [], _attrs = encode_sm_enabled_attr_resume(Resume, encode_sm_enabled_attr_max(Max, - encode_sm_enabled_attr_location(Location, - encode_sm_enabled_attr_id(Id, - _xmlns_attrs)))), + encode_sm_enabled_attr_xmlns(Xmlns, + encode_sm_enabled_attr_location(Location, + encode_sm_enabled_attr_id(Id, + _xmlns_attrs))))), {xmlel, <<"enabled">>, _attrs, _els}. -decode_sm_enabled_attr_id(undefined) -> undefined; -decode_sm_enabled_attr_id(_val) -> _val. +decode_sm_enabled_attr_id(__TopXMLNS, undefined) -> + undefined; +decode_sm_enabled_attr_id(__TopXMLNS, _val) -> _val. encode_sm_enabled_attr_id(undefined, _acc) -> _acc; encode_sm_enabled_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_sm_enabled_attr_location(undefined) -> undefined; -decode_sm_enabled_attr_location(_val) -> _val. +decode_sm_enabled_attr_location(__TopXMLNS, + undefined) -> + undefined; +decode_sm_enabled_attr_location(__TopXMLNS, _val) -> + _val. encode_sm_enabled_attr_location(undefined, _acc) -> _acc; encode_sm_enabled_attr_location(_val, _acc) -> [{<<"location">>, _val} | _acc]. -decode_sm_enabled_attr_max(undefined) -> undefined; -decode_sm_enabled_attr_max(_val) -> +decode_sm_enabled_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_enabled_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_enabled_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_enabled_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_sm_enabled_attr_max(__TopXMLNS, undefined) -> + undefined; +decode_sm_enabled_attr_max(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max">>, <<"enabled">>, - <<"urn:xmpp:sm:3">>}}); + __TopXMLNS}}); _res -> _res end. @@ -2539,13 +2831,14 @@ encode_sm_enabled_attr_max(undefined, _acc) -> _acc; encode_sm_enabled_attr_max(_val, _acc) -> [{<<"max">>, enc_int(_val)} | _acc]. -decode_sm_enabled_attr_resume(undefined) -> false; -decode_sm_enabled_attr_resume(_val) -> +decode_sm_enabled_attr_resume(__TopXMLNS, undefined) -> + false; +decode_sm_enabled_attr_resume(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"resume">>, <<"enabled">>, - <<"urn:xmpp:sm:3">>}}); + __TopXMLNS}}); _res -> _res end. @@ -2553,38 +2846,51 @@ encode_sm_enabled_attr_resume(false, _acc) -> _acc; encode_sm_enabled_attr_resume(_val, _acc) -> [{<<"resume">>, enc_bool(_val)} | _acc]. -decode_sm_enable({xmlel, <<"enable">>, _attrs, _els}) -> - {Max, Resume} = decode_sm_enable_attrs(_attrs, - undefined, undefined), - {sm_enable, Max, Resume}. - -decode_sm_enable_attrs([{<<"max">>, _val} | _attrs], - _Max, Resume) -> - decode_sm_enable_attrs(_attrs, _val, Resume); -decode_sm_enable_attrs([{<<"resume">>, _val} | _attrs], - Max, _Resume) -> - decode_sm_enable_attrs(_attrs, Max, _val); -decode_sm_enable_attrs([_ | _attrs], Max, Resume) -> - decode_sm_enable_attrs(_attrs, Max, Resume); -decode_sm_enable_attrs([], Max, Resume) -> - {decode_sm_enable_attr_max(Max), - decode_sm_enable_attr_resume(Resume)}. - -encode_sm_enable({sm_enable, Max, Resume}, +decode_sm_enable(__TopXMLNS, + {xmlel, <<"enable">>, _attrs, _els}) -> + {Max, Xmlns, Resume} = + decode_sm_enable_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined), + {sm_enable, Max, Resume, Xmlns}. + +decode_sm_enable_attrs(__TopXMLNS, + [{<<"max">>, _val} | _attrs], _Max, Xmlns, Resume) -> + decode_sm_enable_attrs(__TopXMLNS, _attrs, _val, Xmlns, + Resume); +decode_sm_enable_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], Max, _Xmlns, Resume) -> + decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, _val, + Resume); +decode_sm_enable_attrs(__TopXMLNS, + [{<<"resume">>, _val} | _attrs], Max, Xmlns, _Resume) -> + decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, Xmlns, + _val); +decode_sm_enable_attrs(__TopXMLNS, [_ | _attrs], Max, + Xmlns, Resume) -> + decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, Xmlns, + Resume); +decode_sm_enable_attrs(__TopXMLNS, [], Max, Xmlns, + Resume) -> + {decode_sm_enable_attr_max(__TopXMLNS, Max), + decode_sm_enable_attr_xmlns(__TopXMLNS, Xmlns), + decode_sm_enable_attr_resume(__TopXMLNS, Resume)}. + +encode_sm_enable({sm_enable, Max, Resume, Xmlns}, _xmlns_attrs) -> _els = [], _attrs = encode_sm_enable_attr_resume(Resume, - encode_sm_enable_attr_max(Max, - _xmlns_attrs)), + encode_sm_enable_attr_xmlns(Xmlns, + encode_sm_enable_attr_max(Max, + _xmlns_attrs))), {xmlel, <<"enable">>, _attrs, _els}. -decode_sm_enable_attr_max(undefined) -> undefined; -decode_sm_enable_attr_max(_val) -> +decode_sm_enable_attr_max(__TopXMLNS, undefined) -> + undefined; +decode_sm_enable_attr_max(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"max">>, <<"enable">>, - <<"urn:xmpp:sm:3">>}}); + {bad_attr_value, <<"max">>, <<"enable">>, __TopXMLNS}}); _res -> _res end. @@ -2592,13 +2898,22 @@ encode_sm_enable_attr_max(undefined, _acc) -> _acc; encode_sm_enable_attr_max(_val, _acc) -> [{<<"max">>, enc_int(_val)} | _acc]. -decode_sm_enable_attr_resume(undefined) -> false; -decode_sm_enable_attr_resume(_val) -> +decode_sm_enable_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_sm_enable_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_sm_enable_attr_xmlns(undefined, _acc) -> _acc; +encode_sm_enable_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_sm_enable_attr_resume(__TopXMLNS, undefined) -> + false; +decode_sm_enable_attr_resume(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"resume">>, <<"enable">>, - <<"urn:xmpp:sm:3">>}}); + __TopXMLNS}}); _res -> _res end. @@ -2606,40 +2921,61 @@ encode_sm_enable_attr_resume(false, _acc) -> _acc; encode_sm_enable_attr_resume(_val, _acc) -> [{<<"resume">>, enc_bool(_val)} | _acc]. -decode_feature_sm({xmlel, <<"sm">>, _attrs, _els}) -> - {feature_sm}. - -encode_feature_sm({feature_sm}, _xmlns_attrs) -> +decode_feature_sm(__TopXMLNS, + {xmlel, <<"sm">>, _attrs, _els}) -> + Xmlns = decode_feature_sm_attrs(__TopXMLNS, _attrs, + undefined), + {feature_sm, Xmlns}. + +decode_feature_sm_attrs(__TopXMLNS, + [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> + decode_feature_sm_attrs(__TopXMLNS, _attrs, _val); +decode_feature_sm_attrs(__TopXMLNS, [_ | _attrs], + Xmlns) -> + decode_feature_sm_attrs(__TopXMLNS, _attrs, Xmlns); +decode_feature_sm_attrs(__TopXMLNS, [], Xmlns) -> + decode_feature_sm_attr_xmlns(__TopXMLNS, Xmlns). + +encode_feature_sm({feature_sm, Xmlns}, _xmlns_attrs) -> _els = [], - _attrs = _xmlns_attrs, + _attrs = encode_feature_sm_attr_xmlns(Xmlns, + _xmlns_attrs), {xmlel, <<"sm">>, _attrs, _els}. -decode_carbons_sent({xmlel, <<"sent">>, _attrs, - _els}) -> - Forwarded = decode_carbons_sent_els(_els, error), +decode_feature_sm_attr_xmlns(__TopXMLNS, undefined) -> + undefined; +decode_feature_sm_attr_xmlns(__TopXMLNS, _val) -> _val. + +encode_feature_sm_attr_xmlns(undefined, _acc) -> _acc; +encode_feature_sm_attr_xmlns(_val, _acc) -> + [{<<"xmlns">>, _val} | _acc]. + +decode_carbons_sent(__TopXMLNS, + {xmlel, <<"sent">>, _attrs, _els}) -> + Forwarded = decode_carbons_sent_els(__TopXMLNS, _els, + error), {carbons_sent, Forwarded}. -decode_carbons_sent_els([], Forwarded) -> +decode_carbons_sent_els(__TopXMLNS, [], Forwarded) -> case Forwarded of error -> erlang:error({xmpp_codec, - {missing_tag, <<"forwarded">>, - <<"urn:xmpp:forward:0">>}}); + {missing_tag, <<"forwarded">>, __TopXMLNS}}); {value, Forwarded1} -> Forwarded1 end; -decode_carbons_sent_els([{xmlel, <<"forwarded">>, - _attrs, _} = - _el - | _els], +decode_carbons_sent_els(__TopXMLNS, + [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Forwarded) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:xmpp:forward:0">> -> - decode_carbons_sent_els(_els, - {value, decode_forwarded(_el)}); - true -> decode_carbons_sent_els(_els, Forwarded) + decode_carbons_sent_els(__TopXMLNS, _els, + {value, decode_forwarded(_xmlns, _el)}); + true -> + decode_carbons_sent_els(__TopXMLNS, _els, Forwarded) end; -decode_carbons_sent_els([_ | _els], Forwarded) -> - decode_carbons_sent_els(_els, Forwarded). +decode_carbons_sent_els(__TopXMLNS, [_ | _els], + Forwarded) -> + decode_carbons_sent_els(__TopXMLNS, _els, Forwarded). encode_carbons_sent({carbons_sent, Forwarded}, _xmlns_attrs) -> @@ -2652,32 +2988,34 @@ encode_carbons_sent({carbons_sent, Forwarded}, [{<<"xmlns">>, <<"urn:xmpp:forward:0">>}]) | _acc]. -decode_carbons_received({xmlel, <<"received">>, _attrs, - _els}) -> - Forwarded = decode_carbons_received_els(_els, error), +decode_carbons_received(__TopXMLNS, + {xmlel, <<"received">>, _attrs, _els}) -> + Forwarded = decode_carbons_received_els(__TopXMLNS, + _els, error), {carbons_received, Forwarded}. -decode_carbons_received_els([], Forwarded) -> +decode_carbons_received_els(__TopXMLNS, [], + Forwarded) -> case Forwarded of error -> erlang:error({xmpp_codec, - {missing_tag, <<"forwarded">>, - <<"urn:xmpp:forward:0">>}}); + {missing_tag, <<"forwarded">>, __TopXMLNS}}); {value, Forwarded1} -> Forwarded1 end; -decode_carbons_received_els([{xmlel, <<"forwarded">>, - _attrs, _} = - _el - | _els], +decode_carbons_received_els(__TopXMLNS, + [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Forwarded) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:xmpp:forward:0">> -> - decode_carbons_received_els(_els, - {value, decode_forwarded(_el)}); - true -> decode_carbons_received_els(_els, Forwarded) + decode_carbons_received_els(__TopXMLNS, _els, + {value, decode_forwarded(_xmlns, _el)}); + true -> + decode_carbons_received_els(__TopXMLNS, _els, Forwarded) end; -decode_carbons_received_els([_ | _els], Forwarded) -> - decode_carbons_received_els(_els, Forwarded). +decode_carbons_received_els(__TopXMLNS, [_ | _els], + Forwarded) -> + decode_carbons_received_els(__TopXMLNS, _els, + Forwarded). encode_carbons_received({carbons_received, Forwarded}, _xmlns_attrs) -> @@ -2691,8 +3029,8 @@ encode_carbons_received({carbons_received, Forwarded}, [{<<"xmlns">>, <<"urn:xmpp:forward:0">>}]) | _acc]. -decode_carbons_private({xmlel, <<"private">>, _attrs, - _els}) -> +decode_carbons_private(__TopXMLNS, + {xmlel, <<"private">>, _attrs, _els}) -> {carbons_private}. encode_carbons_private({carbons_private}, @@ -2701,8 +3039,8 @@ encode_carbons_private({carbons_private}, _attrs = _xmlns_attrs, {xmlel, <<"private">>, _attrs, _els}. -decode_carbons_enable({xmlel, <<"enable">>, _attrs, - _els}) -> +decode_carbons_enable(__TopXMLNS, + {xmlel, <<"enable">>, _attrs, _els}) -> {carbons_enable}. encode_carbons_enable({carbons_enable}, _xmlns_attrs) -> @@ -2710,8 +3048,8 @@ encode_carbons_enable({carbons_enable}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"enable">>, _attrs, _els}. -decode_carbons_disable({xmlel, <<"disable">>, _attrs, - _els}) -> +decode_carbons_disable(__TopXMLNS, + {xmlel, <<"disable">>, _attrs, _els}) -> {carbons_disable}. encode_carbons_disable({carbons_disable}, @@ -2720,33 +3058,36 @@ encode_carbons_disable({carbons_disable}, _attrs = _xmlns_attrs, {xmlel, <<"disable">>, _attrs, _els}. -decode_forwarded({xmlel, <<"forwarded">>, _attrs, - _els}) -> - {Delay, __Els} = decode_forwarded_els(_els, undefined, - []), +decode_forwarded(__TopXMLNS, + {xmlel, <<"forwarded">>, _attrs, _els}) -> + {Delay, __Els} = decode_forwarded_els(__TopXMLNS, _els, + undefined, []), {forwarded, Delay, __Els}. -decode_forwarded_els([], Delay, __Els) -> +decode_forwarded_els(__TopXMLNS, [], Delay, __Els) -> {Delay, lists:reverse(__Els)}; -decode_forwarded_els([{xmlel, <<"delay">>, _attrs, _} = - _el - | _els], - Delay, __Els) -> +decode_forwarded_els(__TopXMLNS, + [{xmlel, <<"delay">>, _attrs, _} = _el | _els], Delay, + __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:xmpp:delay">> -> - decode_forwarded_els(_els, decode_delay(_el), __Els); - true -> decode_forwarded_els(_els, Delay, __Els) + decode_forwarded_els(__TopXMLNS, _els, + decode_delay(_xmlns, _el), __Els); + true -> + decode_forwarded_els(__TopXMLNS, _els, Delay, __Els) end; -decode_forwarded_els([{xmlel, _, _, _} = _el | _els], - Delay, __Els) -> +decode_forwarded_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], Delay, __Els) -> case is_known_tag(_el) of true -> - decode_forwarded_els(_els, Delay, + decode_forwarded_els(__TopXMLNS, _els, Delay, [decode(_el) | __Els]); - false -> decode_forwarded_els(_els, Delay, __Els) + false -> + decode_forwarded_els(__TopXMLNS, _els, Delay, __Els) end; -decode_forwarded_els([_ | _els], Delay, __Els) -> - decode_forwarded_els(_els, Delay, __Els). +decode_forwarded_els(__TopXMLNS, [_ | _els], Delay, + __Els) -> + decode_forwarded_els(__TopXMLNS, _els, Delay, __Els). encode_forwarded({forwarded, Delay, __Els}, _xmlns_attrs) -> @@ -2761,31 +3102,33 @@ encode_forwarded({forwarded, Delay, __Els}, [{<<"xmlns">>, <<"urn:xmpp:delay">>}]) | _acc]. -decode_muc({xmlel, <<"x">>, _attrs, _els}) -> - History = decode_muc_els(_els, undefined), - Password = decode_muc_attrs(_attrs, undefined), +decode_muc(__TopXMLNS, + {xmlel, <<"x">>, _attrs, _els}) -> + History = decode_muc_els(__TopXMLNS, _els, undefined), + Password = decode_muc_attrs(__TopXMLNS, _attrs, + undefined), {muc, History, Password}. -decode_muc_els([], History) -> History; -decode_muc_els([{xmlel, <<"history">>, _attrs, _} = _el - | _els], +decode_muc_els(__TopXMLNS, [], History) -> History; +decode_muc_els(__TopXMLNS, + [{xmlel, <<"history">>, _attrs, _} = _el | _els], History) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc">> -> - decode_muc_els(_els, decode_muc_history(_el)); - true -> decode_muc_els(_els, History) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_els(__TopXMLNS, _els, + decode_muc_history(__TopXMLNS, _el)); + true -> decode_muc_els(__TopXMLNS, _els, History) end; -decode_muc_els([_ | _els], History) -> - decode_muc_els(_els, History). +decode_muc_els(__TopXMLNS, [_ | _els], History) -> + decode_muc_els(__TopXMLNS, _els, History). -decode_muc_attrs([{<<"password">>, _val} | _attrs], - _Password) -> - decode_muc_attrs(_attrs, _val); -decode_muc_attrs([_ | _attrs], Password) -> - decode_muc_attrs(_attrs, Password); -decode_muc_attrs([], Password) -> - decode_muc_attr_password(Password). +decode_muc_attrs(__TopXMLNS, + [{<<"password">>, _val} | _attrs], _Password) -> + decode_muc_attrs(__TopXMLNS, _attrs, _val); +decode_muc_attrs(__TopXMLNS, [_ | _attrs], Password) -> + decode_muc_attrs(__TopXMLNS, _attrs, Password); +decode_muc_attrs(__TopXMLNS, [], Password) -> + decode_muc_attr_password(__TopXMLNS, Password). encode_muc({muc, History, Password}, _xmlns_attrs) -> _els = 'encode_muc_$history'(History, []), @@ -2797,31 +3140,32 @@ encode_muc({muc, History, Password}, _xmlns_attrs) -> 'encode_muc_$history'(History, _acc) -> [encode_muc_history(History, []) | _acc]. -decode_muc_attr_password(undefined) -> undefined; -decode_muc_attr_password(_val) -> _val. +decode_muc_attr_password(__TopXMLNS, undefined) -> + undefined; +decode_muc_attr_password(__TopXMLNS, _val) -> _val. encode_muc_attr_password(undefined, _acc) -> _acc; encode_muc_attr_password(_val, _acc) -> [{<<"password">>, _val} | _acc]. -decode_muc_admin({xmlel, <<"query">>, _attrs, _els}) -> - Items = decode_muc_admin_els(_els, []), +decode_muc_admin(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + Items = decode_muc_admin_els(__TopXMLNS, _els, []), {muc_admin, Items}. -decode_muc_admin_els([], Items) -> lists:reverse(Items); -decode_muc_admin_els([{xmlel, <<"item">>, _attrs, _} = - _el - | _els], - Items) -> +decode_muc_admin_els(__TopXMLNS, [], Items) -> + lists:reverse(Items); +decode_muc_admin_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#admin">> -> - decode_muc_admin_els(_els, - [decode_muc_admin_item(_el) | Items]); - true -> decode_muc_admin_els(_els, Items) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_admin_els(__TopXMLNS, _els, + [decode_muc_admin_item(__TopXMLNS, _el) + | Items]); + true -> decode_muc_admin_els(__TopXMLNS, _els, Items) end; -decode_muc_admin_els([_ | _els], Items) -> - decode_muc_admin_els(_els, Items). +decode_muc_admin_els(__TopXMLNS, [_ | _els], Items) -> + decode_muc_admin_els(__TopXMLNS, _els, Items). encode_muc_admin({muc_admin, Items}, _xmlns_attrs) -> _els = 'encode_muc_admin_$items'(Items, []), @@ -2833,45 +3177,53 @@ encode_muc_admin({muc_admin, Items}, _xmlns_attrs) -> 'encode_muc_admin_$items'(_els, [encode_muc_admin_item(Items, []) | _acc]). -decode_muc_admin_reason({xmlel, <<"reason">>, _attrs, - _els}) -> - Cdata = decode_muc_admin_reason_els(_els, <<>>), Cdata. +decode_muc_admin_reason(__TopXMLNS, + {xmlel, <<"reason">>, _attrs, _els}) -> + Cdata = decode_muc_admin_reason_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_muc_admin_reason_els([], Cdata) -> - decode_muc_admin_reason_cdata(Cdata); -decode_muc_admin_reason_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_muc_admin_reason_els(_els, +decode_muc_admin_reason_els(__TopXMLNS, [], Cdata) -> + decode_muc_admin_reason_cdata(__TopXMLNS, Cdata); +decode_muc_admin_reason_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_muc_admin_reason_els(__TopXMLNS, _els, <>); -decode_muc_admin_reason_els([_ | _els], Cdata) -> - decode_muc_admin_reason_els(_els, Cdata). +decode_muc_admin_reason_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_muc_admin_reason_els(__TopXMLNS, _els, Cdata). encode_muc_admin_reason(Cdata, _xmlns_attrs) -> _els = encode_muc_admin_reason_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"reason">>, _attrs, _els}. -decode_muc_admin_reason_cdata(<<>>) -> undefined; -decode_muc_admin_reason_cdata(_val) -> _val. +decode_muc_admin_reason_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_muc_admin_reason_cdata(__TopXMLNS, _val) -> _val. encode_muc_admin_reason_cdata(undefined, _acc) -> _acc; encode_muc_admin_reason_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_muc_admin_continue({xmlel, <<"continue">>, - _attrs, _els}) -> - Thread = decode_muc_admin_continue_attrs(_attrs, - undefined), +decode_muc_admin_continue(__TopXMLNS, + {xmlel, <<"continue">>, _attrs, _els}) -> + Thread = decode_muc_admin_continue_attrs(__TopXMLNS, + _attrs, undefined), Thread. -decode_muc_admin_continue_attrs([{<<"thread">>, _val} - | _attrs], - _Thread) -> - decode_muc_admin_continue_attrs(_attrs, _val); -decode_muc_admin_continue_attrs([_ | _attrs], Thread) -> - decode_muc_admin_continue_attrs(_attrs, Thread); -decode_muc_admin_continue_attrs([], Thread) -> - decode_muc_admin_continue_attr_thread(Thread). +decode_muc_admin_continue_attrs(__TopXMLNS, + [{<<"thread">>, _val} | _attrs], _Thread) -> + decode_muc_admin_continue_attrs(__TopXMLNS, _attrs, + _val); +decode_muc_admin_continue_attrs(__TopXMLNS, + [_ | _attrs], Thread) -> + decode_muc_admin_continue_attrs(__TopXMLNS, _attrs, + Thread); +decode_muc_admin_continue_attrs(__TopXMLNS, [], + Thread) -> + decode_muc_admin_continue_attr_thread(__TopXMLNS, + Thread). encode_muc_admin_continue(Thread, _xmlns_attrs) -> _els = [], @@ -2879,9 +3231,12 @@ encode_muc_admin_continue(Thread, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"continue">>, _attrs, _els}. -decode_muc_admin_continue_attr_thread(undefined) -> +decode_muc_admin_continue_attr_thread(__TopXMLNS, + undefined) -> undefined; -decode_muc_admin_continue_attr_thread(_val) -> _val. +decode_muc_admin_continue_attr_thread(__TopXMLNS, + _val) -> + _val. encode_muc_admin_continue_attr_thread(undefined, _acc) -> @@ -2889,25 +3244,28 @@ encode_muc_admin_continue_attr_thread(undefined, encode_muc_admin_continue_attr_thread(_val, _acc) -> [{<<"thread">>, _val} | _acc]. -decode_muc_admin_actor({xmlel, <<"actor">>, _attrs, - _els}) -> - {Jid, Nick} = decode_muc_admin_actor_attrs(_attrs, - undefined, undefined), +decode_muc_admin_actor(__TopXMLNS, + {xmlel, <<"actor">>, _attrs, _els}) -> + {Jid, Nick} = decode_muc_admin_actor_attrs(__TopXMLNS, + _attrs, undefined, undefined), {muc_actor, Jid, Nick}. -decode_muc_admin_actor_attrs([{<<"jid">>, _val} - | _attrs], - _Jid, Nick) -> - decode_muc_admin_actor_attrs(_attrs, _val, Nick); -decode_muc_admin_actor_attrs([{<<"nick">>, _val} - | _attrs], - Jid, _Nick) -> - decode_muc_admin_actor_attrs(_attrs, Jid, _val); -decode_muc_admin_actor_attrs([_ | _attrs], Jid, Nick) -> - decode_muc_admin_actor_attrs(_attrs, Jid, Nick); -decode_muc_admin_actor_attrs([], Jid, Nick) -> - {decode_muc_admin_actor_attr_jid(Jid), - decode_muc_admin_actor_attr_nick(Nick)}. +decode_muc_admin_actor_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Nick) -> + decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, _val, + Nick); +decode_muc_admin_actor_attrs(__TopXMLNS, + [{<<"nick">>, _val} | _attrs], Jid, _Nick) -> + decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, Jid, + _val); +decode_muc_admin_actor_attrs(__TopXMLNS, [_ | _attrs], + Jid, Nick) -> + decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, Jid, + Nick); +decode_muc_admin_actor_attrs(__TopXMLNS, [], Jid, + Nick) -> + {decode_muc_admin_actor_attr_jid(__TopXMLNS, Jid), + decode_muc_admin_actor_attr_nick(__TopXMLNS, Nick)}. encode_muc_admin_actor({muc_actor, Jid, Nick}, _xmlns_attrs) -> @@ -2917,13 +3275,14 @@ encode_muc_admin_actor({muc_actor, Jid, Nick}, _xmlns_attrs)), {xmlel, <<"actor">>, _attrs, _els}. -decode_muc_admin_actor_attr_jid(undefined) -> undefined; -decode_muc_admin_actor_attr_jid(_val) -> +decode_muc_admin_actor_attr_jid(__TopXMLNS, + undefined) -> + undefined; +decode_muc_admin_actor_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"actor">>, - <<"http://jabber.org/protocol/muc#admin">>}}); + {bad_attr_value, <<"jid">>, <<"actor">>, __TopXMLNS}}); _res -> _res end. @@ -2932,104 +3291,103 @@ encode_muc_admin_actor_attr_jid(undefined, _acc) -> encode_muc_admin_actor_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_admin_actor_attr_nick(undefined) -> +decode_muc_admin_actor_attr_nick(__TopXMLNS, + undefined) -> undefined; -decode_muc_admin_actor_attr_nick(_val) -> _val. +decode_muc_admin_actor_attr_nick(__TopXMLNS, _val) -> + _val. encode_muc_admin_actor_attr_nick(undefined, _acc) -> _acc; encode_muc_admin_actor_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. -decode_muc_admin_item({xmlel, <<"item">>, _attrs, - _els}) -> +decode_muc_admin_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> {Actor, Continue, Reason} = - decode_muc_admin_item_els(_els, undefined, undefined, - undefined), + decode_muc_admin_item_els(__TopXMLNS, _els, undefined, + undefined, undefined), {Affiliation, Role, Jid, Nick} = - decode_muc_admin_item_attrs(_attrs, undefined, - undefined, undefined, undefined), + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined, undefined), {muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}. -decode_muc_admin_item_els([], Actor, Continue, - Reason) -> +decode_muc_admin_item_els(__TopXMLNS, [], Actor, + Continue, Reason) -> {Actor, Continue, Reason}; -decode_muc_admin_item_els([{xmlel, <<"actor">>, _attrs, - _} = - _el - | _els], - Actor, Continue, Reason) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#admin">> -> - decode_muc_admin_item_els(_els, - decode_muc_admin_actor(_el), Continue, - Reason); +decode_muc_admin_item_els(__TopXMLNS, + [{xmlel, <<"actor">>, _attrs, _} = _el | _els], Actor, + Continue, Reason) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_admin_item_els(__TopXMLNS, _els, + decode_muc_admin_actor(__TopXMLNS, _el), + Continue, Reason); true -> - decode_muc_admin_item_els(_els, Actor, Continue, Reason) + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) end; -decode_muc_admin_item_els([{xmlel, <<"continue">>, - _attrs, _} = - _el - | _els], +decode_muc_admin_item_els(__TopXMLNS, + [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#admin">> -> - decode_muc_admin_item_els(_els, Actor, - decode_muc_admin_continue(_el), Reason); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + decode_muc_admin_continue(__TopXMLNS, _el), + Reason); true -> - decode_muc_admin_item_els(_els, Actor, Continue, Reason) + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) end; -decode_muc_admin_item_els([{xmlel, <<"reason">>, _attrs, - _} = - _el - | _els], +decode_muc_admin_item_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#admin">> -> - decode_muc_admin_item_els(_els, Actor, Continue, - decode_muc_admin_reason(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + Continue, + decode_muc_admin_reason(__TopXMLNS, _el)); true -> - decode_muc_admin_item_els(_els, Actor, Continue, Reason) + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) end; -decode_muc_admin_item_els([_ | _els], Actor, Continue, - Reason) -> - decode_muc_admin_item_els(_els, Actor, Continue, - Reason). +decode_muc_admin_item_els(__TopXMLNS, [_ | _els], Actor, + Continue, Reason) -> + decode_muc_admin_item_els(__TopXMLNS, _els, Actor, + Continue, Reason). -decode_muc_admin_item_attrs([{<<"affiliation">>, _val} - | _attrs], - _Affiliation, Role, Jid, Nick) -> - decode_muc_admin_item_attrs(_attrs, _val, Role, Jid, - Nick); -decode_muc_admin_item_attrs([{<<"role">>, _val} - | _attrs], - Affiliation, _Role, Jid, Nick) -> - decode_muc_admin_item_attrs(_attrs, Affiliation, _val, - Jid, Nick); -decode_muc_admin_item_attrs([{<<"jid">>, _val} - | _attrs], - Affiliation, Role, _Jid, Nick) -> - decode_muc_admin_item_attrs(_attrs, Affiliation, Role, - _val, Nick); -decode_muc_admin_item_attrs([{<<"nick">>, _val} - | _attrs], - Affiliation, Role, Jid, _Nick) -> - decode_muc_admin_item_attrs(_attrs, Affiliation, Role, - Jid, _val); -decode_muc_admin_item_attrs([_ | _attrs], Affiliation, +decode_muc_admin_item_attrs(__TopXMLNS, + [{<<"affiliation">>, _val} | _attrs], _Affiliation, Role, Jid, Nick) -> - decode_muc_admin_item_attrs(_attrs, Affiliation, Role, - Jid, Nick); -decode_muc_admin_item_attrs([], Affiliation, Role, Jid, - Nick) -> - {decode_muc_admin_item_attr_affiliation(Affiliation), - decode_muc_admin_item_attr_role(Role), - decode_muc_admin_item_attr_jid(Jid), - decode_muc_admin_item_attr_nick(Nick)}. + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, _val, + Role, Jid, Nick); +decode_muc_admin_item_attrs(__TopXMLNS, + [{<<"role">>, _val} | _attrs], Affiliation, _Role, + Jid, Nick) -> + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, + Affiliation, _val, Jid, Nick); +decode_muc_admin_item_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Affiliation, Role, + _Jid, Nick) -> + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, _val, Nick); +decode_muc_admin_item_attrs(__TopXMLNS, + [{<<"nick">>, _val} | _attrs], Affiliation, Role, + Jid, _Nick) -> + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, Jid, _val); +decode_muc_admin_item_attrs(__TopXMLNS, [_ | _attrs], + Affiliation, Role, Jid, Nick) -> + decode_muc_admin_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, Jid, Nick); +decode_muc_admin_item_attrs(__TopXMLNS, [], Affiliation, + Role, Jid, Nick) -> + {decode_muc_admin_item_attr_affiliation(__TopXMLNS, + Affiliation), + decode_muc_admin_item_attr_role(__TopXMLNS, Role), + decode_muc_admin_item_attr_jid(__TopXMLNS, Jid), + decode_muc_admin_item_attr_nick(__TopXMLNS, Nick)}. encode_muc_admin_item({muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}, @@ -3059,16 +3417,18 @@ encode_muc_admin_item({muc_item, Actor, Continue, 'encode_muc_admin_item_$reason'(Reason, _acc) -> [encode_muc_admin_reason(Reason, []) | _acc]. -decode_muc_admin_item_attr_affiliation(undefined) -> +decode_muc_admin_item_attr_affiliation(__TopXMLNS, + undefined) -> undefined; -decode_muc_admin_item_attr_affiliation(_val) -> +decode_muc_admin_item_attr_affiliation(__TopXMLNS, + _val) -> case catch dec_enum(_val, [admin, member, none, outcast, owner]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"item">>, - <<"http://jabber.org/protocol/muc#admin">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3078,15 +3438,16 @@ encode_muc_admin_item_attr_affiliation(undefined, encode_muc_admin_item_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. -decode_muc_admin_item_attr_role(undefined) -> undefined; -decode_muc_admin_item_attr_role(_val) -> +decode_muc_admin_item_attr_role(__TopXMLNS, + undefined) -> + undefined; +decode_muc_admin_item_attr_role(__TopXMLNS, _val) -> case catch dec_enum(_val, [moderator, none, participant, visitor]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"role">>, <<"item">>, - <<"http://jabber.org/protocol/muc#admin">>}}); + {bad_attr_value, <<"role">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -3095,13 +3456,13 @@ encode_muc_admin_item_attr_role(undefined, _acc) -> encode_muc_admin_item_attr_role(_val, _acc) -> [{<<"role">>, enc_enum(_val)} | _acc]. -decode_muc_admin_item_attr_jid(undefined) -> undefined; -decode_muc_admin_item_attr_jid(_val) -> +decode_muc_admin_item_attr_jid(__TopXMLNS, undefined) -> + undefined; +decode_muc_admin_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"item">>, - <<"http://jabber.org/protocol/muc#admin">>}}); + {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -3109,43 +3470,48 @@ encode_muc_admin_item_attr_jid(undefined, _acc) -> _acc; encode_muc_admin_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_admin_item_attr_nick(undefined) -> undefined; -decode_muc_admin_item_attr_nick(_val) -> _val. +decode_muc_admin_item_attr_nick(__TopXMLNS, + undefined) -> + undefined; +decode_muc_admin_item_attr_nick(__TopXMLNS, _val) -> + _val. encode_muc_admin_item_attr_nick(undefined, _acc) -> _acc; encode_muc_admin_item_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. -decode_muc_owner({xmlel, <<"query">>, _attrs, _els}) -> - {Config, Destroy} = decode_muc_owner_els(_els, - undefined, undefined), +decode_muc_owner(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + {Config, Destroy} = decode_muc_owner_els(__TopXMLNS, + _els, undefined, undefined), {muc_owner, Destroy, Config}. -decode_muc_owner_els([], Config, Destroy) -> +decode_muc_owner_els(__TopXMLNS, [], Config, Destroy) -> {Config, Destroy}; -decode_muc_owner_els([{xmlel, <<"destroy">>, _attrs, - _} = - _el - | _els], +decode_muc_owner_els(__TopXMLNS, + [{xmlel, <<"destroy">>, _attrs, _} = _el | _els], Config, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#owner">> -> - decode_muc_owner_els(_els, Config, - decode_muc_owner_destroy(_el)); - true -> decode_muc_owner_els(_els, Config, Destroy) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_owner_els(__TopXMLNS, _els, Config, + decode_muc_owner_destroy(__TopXMLNS, _el)); + true -> + decode_muc_owner_els(__TopXMLNS, _els, Config, Destroy) end; -decode_muc_owner_els([{xmlel, <<"x">>, _attrs, _} = _el - | _els], - Config, Destroy) -> +decode_muc_owner_els(__TopXMLNS, + [{xmlel, <<"x">>, _attrs, _} = _el | _els], Config, + Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"jabber:x:data">> -> - decode_muc_owner_els(_els, decode_xdata(_el), Destroy); - true -> decode_muc_owner_els(_els, Config, Destroy) + decode_muc_owner_els(__TopXMLNS, _els, + decode_xdata(_xmlns, _el), Destroy); + true -> + decode_muc_owner_els(__TopXMLNS, _els, Config, Destroy) end; -decode_muc_owner_els([_ | _els], Config, Destroy) -> - decode_muc_owner_els(_els, Config, Destroy). +decode_muc_owner_els(__TopXMLNS, [_ | _els], Config, + Destroy) -> + decode_muc_owner_els(__TopXMLNS, _els, Config, Destroy). encode_muc_owner({muc_owner, Destroy, Config}, _xmlns_attrs) -> @@ -3164,53 +3530,57 @@ encode_muc_owner({muc_owner, Destroy, Config}, 'encode_muc_owner_$destroy'(Destroy, _acc) -> [encode_muc_owner_destroy(Destroy, []) | _acc]. -decode_muc_owner_destroy({xmlel, <<"destroy">>, _attrs, - _els}) -> - {Password, Reason} = decode_muc_owner_destroy_els(_els, - undefined, undefined), - Jid = decode_muc_owner_destroy_attrs(_attrs, undefined), +decode_muc_owner_destroy(__TopXMLNS, + {xmlel, <<"destroy">>, _attrs, _els}) -> + {Password, Reason} = + decode_muc_owner_destroy_els(__TopXMLNS, _els, + undefined, undefined), + Jid = decode_muc_owner_destroy_attrs(__TopXMLNS, _attrs, + undefined), {muc_owner_destroy, Jid, Reason, Password}. -decode_muc_owner_destroy_els([], Password, Reason) -> +decode_muc_owner_destroy_els(__TopXMLNS, [], Password, + Reason) -> {Password, Reason}; -decode_muc_owner_destroy_els([{xmlel, <<"password">>, - _attrs, _} = - _el - | _els], +decode_muc_owner_destroy_els(__TopXMLNS, + [{xmlel, <<"password">>, _attrs, _} = _el | _els], Password, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#owner">> -> - decode_muc_owner_destroy_els(_els, - decode_muc_owner_password(_el), Reason); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_owner_destroy_els(__TopXMLNS, _els, + decode_muc_owner_password(__TopXMLNS, + _el), + Reason); true -> - decode_muc_owner_destroy_els(_els, Password, Reason) + decode_muc_owner_destroy_els(__TopXMLNS, _els, Password, + Reason) end; -decode_muc_owner_destroy_els([{xmlel, <<"reason">>, - _attrs, _} = - _el - | _els], +decode_muc_owner_destroy_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Password, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#owner">> -> - decode_muc_owner_destroy_els(_els, Password, - decode_muc_owner_reason(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_owner_destroy_els(__TopXMLNS, _els, Password, + decode_muc_owner_reason(__TopXMLNS, + _el)); true -> - decode_muc_owner_destroy_els(_els, Password, Reason) + decode_muc_owner_destroy_els(__TopXMLNS, _els, Password, + Reason) end; -decode_muc_owner_destroy_els([_ | _els], Password, - Reason) -> - decode_muc_owner_destroy_els(_els, Password, Reason). - -decode_muc_owner_destroy_attrs([{<<"jid">>, _val} - | _attrs], - _Jid) -> - decode_muc_owner_destroy_attrs(_attrs, _val); -decode_muc_owner_destroy_attrs([_ | _attrs], Jid) -> - decode_muc_owner_destroy_attrs(_attrs, Jid); -decode_muc_owner_destroy_attrs([], Jid) -> - decode_muc_owner_destroy_attr_jid(Jid). +decode_muc_owner_destroy_els(__TopXMLNS, [_ | _els], + Password, Reason) -> + decode_muc_owner_destroy_els(__TopXMLNS, _els, Password, + Reason). + +decode_muc_owner_destroy_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid) -> + decode_muc_owner_destroy_attrs(__TopXMLNS, _attrs, + _val); +decode_muc_owner_destroy_attrs(__TopXMLNS, [_ | _attrs], + Jid) -> + decode_muc_owner_destroy_attrs(__TopXMLNS, _attrs, Jid); +decode_muc_owner_destroy_attrs(__TopXMLNS, [], Jid) -> + decode_muc_owner_destroy_attr_jid(__TopXMLNS, Jid). encode_muc_owner_destroy({muc_owner_destroy, Jid, Reason, Password}, @@ -3232,14 +3602,15 @@ encode_muc_owner_destroy({muc_owner_destroy, Jid, 'encode_muc_owner_destroy_$reason'(Reason, _acc) -> [encode_muc_owner_reason(Reason, []) | _acc]. -decode_muc_owner_destroy_attr_jid(undefined) -> +decode_muc_owner_destroy_attr_jid(__TopXMLNS, + undefined) -> undefined; -decode_muc_owner_destroy_attr_jid(_val) -> +decode_muc_owner_destroy_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"destroy">>, - <<"http://jabber.org/protocol/muc#owner">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3248,154 +3619,159 @@ encode_muc_owner_destroy_attr_jid(undefined, _acc) -> encode_muc_owner_destroy_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_owner_reason({xmlel, <<"reason">>, _attrs, - _els}) -> - Cdata = decode_muc_owner_reason_els(_els, <<>>), Cdata. +decode_muc_owner_reason(__TopXMLNS, + {xmlel, <<"reason">>, _attrs, _els}) -> + Cdata = decode_muc_owner_reason_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_muc_owner_reason_els([], Cdata) -> - decode_muc_owner_reason_cdata(Cdata); -decode_muc_owner_reason_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_muc_owner_reason_els(_els, +decode_muc_owner_reason_els(__TopXMLNS, [], Cdata) -> + decode_muc_owner_reason_cdata(__TopXMLNS, Cdata); +decode_muc_owner_reason_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_muc_owner_reason_els(__TopXMLNS, _els, <>); -decode_muc_owner_reason_els([_ | _els], Cdata) -> - decode_muc_owner_reason_els(_els, Cdata). +decode_muc_owner_reason_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_muc_owner_reason_els(__TopXMLNS, _els, Cdata). encode_muc_owner_reason(Cdata, _xmlns_attrs) -> _els = encode_muc_owner_reason_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"reason">>, _attrs, _els}. -decode_muc_owner_reason_cdata(<<>>) -> undefined; -decode_muc_owner_reason_cdata(_val) -> _val. +decode_muc_owner_reason_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_muc_owner_reason_cdata(__TopXMLNS, _val) -> _val. encode_muc_owner_reason_cdata(undefined, _acc) -> _acc; encode_muc_owner_reason_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_muc_owner_password({xmlel, <<"password">>, - _attrs, _els}) -> - Cdata = decode_muc_owner_password_els(_els, <<>>), +decode_muc_owner_password(__TopXMLNS, + {xmlel, <<"password">>, _attrs, _els}) -> + Cdata = decode_muc_owner_password_els(__TopXMLNS, _els, + <<>>), Cdata. -decode_muc_owner_password_els([], Cdata) -> - decode_muc_owner_password_cdata(Cdata); -decode_muc_owner_password_els([{xmlcdata, _data} - | _els], - Cdata) -> - decode_muc_owner_password_els(_els, +decode_muc_owner_password_els(__TopXMLNS, [], Cdata) -> + decode_muc_owner_password_cdata(__TopXMLNS, Cdata); +decode_muc_owner_password_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_muc_owner_password_els(__TopXMLNS, _els, <>); -decode_muc_owner_password_els([_ | _els], Cdata) -> - decode_muc_owner_password_els(_els, Cdata). +decode_muc_owner_password_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_muc_owner_password_els(__TopXMLNS, _els, Cdata). encode_muc_owner_password(Cdata, _xmlns_attrs) -> _els = encode_muc_owner_password_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"password">>, _attrs, _els}. -decode_muc_owner_password_cdata(<<>>) -> undefined; -decode_muc_owner_password_cdata(_val) -> _val. +decode_muc_owner_password_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_muc_owner_password_cdata(__TopXMLNS, _val) -> + _val. encode_muc_owner_password_cdata(undefined, _acc) -> _acc; encode_muc_owner_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_muc_user({xmlel, <<"x">>, _attrs, _els}) -> +decode_muc_user(__TopXMLNS, + {xmlel, <<"x">>, _attrs, _els}) -> {Status_codes, Items, Invites, Decline, Destroy} = - decode_muc_user_els(_els, [], [], [], undefined, - undefined), - Password = decode_muc_user_attrs(_attrs, undefined), + decode_muc_user_els(__TopXMLNS, _els, [], [], [], + undefined, undefined), + Password = decode_muc_user_attrs(__TopXMLNS, _attrs, + undefined), {muc_user, Decline, Destroy, Invites, Items, Status_codes, Password}. -decode_muc_user_els([], Status_codes, Items, Invites, - Decline, Destroy) -> +decode_muc_user_els(__TopXMLNS, [], Status_codes, Items, + Invites, Decline, Destroy) -> {lists:reverse(Status_codes), lists:reverse(Items), lists:reverse(Invites), Decline, Destroy}; -decode_muc_user_els([{xmlel, <<"decline">>, _attrs, _} = - _el - | _els], +decode_muc_user_els(__TopXMLNS, + [{xmlel, <<"decline">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Decline, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - decode_muc_user_decline(_el), Destroy); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, + decode_muc_user_decline(__TopXMLNS, _el), + Destroy); true -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy) + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy) end; -decode_muc_user_els([{xmlel, <<"destroy">>, _attrs, _} = - _el - | _els], +decode_muc_user_els(__TopXMLNS, + [{xmlel, <<"destroy">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Decline, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, decode_muc_user_destroy(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, + decode_muc_user_destroy(__TopXMLNS, _el)); true -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy) + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy) end; -decode_muc_user_els([{xmlel, <<"invite">>, _attrs, _} = - _el - | _els], +decode_muc_user_els(__TopXMLNS, + [{xmlel, <<"invite">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Decline, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_els(_els, Status_codes, Items, - [decode_muc_user_invite(_el) | Invites], Decline, - Destroy); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, + [decode_muc_user_invite(__TopXMLNS, _el) + | Invites], + Decline, Destroy); true -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy) + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy) end; -decode_muc_user_els([{xmlel, <<"item">>, _attrs, _} = - _el - | _els], +decode_muc_user_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Decline, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_els(_els, Status_codes, - [decode_muc_user_item(_el) | Items], Invites, - Decline, Destroy); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + [decode_muc_user_item(__TopXMLNS, _el) | Items], + Invites, Decline, Destroy); true -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy) + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy) end; -decode_muc_user_els([{xmlel, <<"status">>, _attrs, _} = - _el - | _els], +decode_muc_user_els(__TopXMLNS, + [{xmlel, <<"status">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Decline, Destroy) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_els(_els, - case decode_muc_user_status(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_els(__TopXMLNS, _els, + case decode_muc_user_status(__TopXMLNS, _el) of undefined -> Status_codes; _new_el -> [_new_el | Status_codes] end, Items, Invites, Decline, Destroy); true -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy) + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy) end; -decode_muc_user_els([_ | _els], Status_codes, Items, - Invites, Decline, Destroy) -> - decode_muc_user_els(_els, Status_codes, Items, Invites, - Decline, Destroy). - -decode_muc_user_attrs([{<<"password">>, _val} | _attrs], - _Password) -> - decode_muc_user_attrs(_attrs, _val); -decode_muc_user_attrs([_ | _attrs], Password) -> - decode_muc_user_attrs(_attrs, Password); -decode_muc_user_attrs([], Password) -> - decode_muc_user_attr_password(Password). +decode_muc_user_els(__TopXMLNS, [_ | _els], + Status_codes, Items, Invites, Decline, Destroy) -> + decode_muc_user_els(__TopXMLNS, _els, Status_codes, + Items, Invites, Decline, Destroy). + +decode_muc_user_attrs(__TopXMLNS, + [{<<"password">>, _val} | _attrs], _Password) -> + decode_muc_user_attrs(__TopXMLNS, _attrs, _val); +decode_muc_user_attrs(__TopXMLNS, [_ | _attrs], + Password) -> + decode_muc_user_attrs(__TopXMLNS, _attrs, Password); +decode_muc_user_attrs(__TopXMLNS, [], Password) -> + decode_muc_user_attr_password(__TopXMLNS, Password). encode_muc_user({muc_user, Decline, Destroy, Invites, Items, Status_codes, Password}, @@ -3435,99 +3811,100 @@ encode_muc_user({muc_user, Decline, Destroy, Invites, 'encode_muc_user_$destroy'(Destroy, _acc) -> [encode_muc_user_destroy(Destroy, []) | _acc]. -decode_muc_user_attr_password(undefined) -> undefined; -decode_muc_user_attr_password(_val) -> _val. +decode_muc_user_attr_password(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_attr_password(__TopXMLNS, _val) -> _val. encode_muc_user_attr_password(undefined, _acc) -> _acc; encode_muc_user_attr_password(_val, _acc) -> [{<<"password">>, _val} | _acc]. -decode_muc_user_item({xmlel, <<"item">>, _attrs, - _els}) -> +decode_muc_user_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> {Actor, Continue, Reason} = - decode_muc_user_item_els(_els, undefined, undefined, - undefined), + decode_muc_user_item_els(__TopXMLNS, _els, undefined, + undefined, undefined), {Affiliation, Role, Jid, Nick} = - decode_muc_user_item_attrs(_attrs, undefined, undefined, - undefined, undefined), + decode_muc_user_item_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined, undefined), {muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}. -decode_muc_user_item_els([], Actor, Continue, Reason) -> +decode_muc_user_item_els(__TopXMLNS, [], Actor, + Continue, Reason) -> {Actor, Continue, Reason}; -decode_muc_user_item_els([{xmlel, <<"actor">>, _attrs, - _} = - _el - | _els], +decode_muc_user_item_els(__TopXMLNS, + [{xmlel, <<"actor">>, _attrs, _} = _el | _els], Actor, + Continue, Reason) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_item_els(__TopXMLNS, _els, + decode_muc_user_actor(__TopXMLNS, _el), + Continue, Reason); + true -> + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) + end; +decode_muc_user_item_els(__TopXMLNS, + [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_item_els(_els, - decode_muc_user_actor(_el), Continue, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + decode_muc_user_continue(__TopXMLNS, _el), Reason); true -> - decode_muc_user_item_els(_els, Actor, Continue, Reason) + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) end; -decode_muc_user_item_els([{xmlel, <<"continue">>, - _attrs, _} = - _el - | _els], - Actor, Continue, Reason) -> +decode_muc_user_item_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Actor, + Continue, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_item_els(_els, Actor, - decode_muc_user_continue(_el), Reason); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + Continue, + decode_muc_user_reason(__TopXMLNS, _el)); true -> - decode_muc_user_item_els(_els, Actor, Continue, Reason) + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + Continue, Reason) end; -decode_muc_user_item_els([{xmlel, <<"reason">>, _attrs, - _} = - _el - | _els], - Actor, Continue, Reason) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_item_els(_els, Actor, Continue, - decode_muc_user_reason(_el)); - true -> - decode_muc_user_item_els(_els, Actor, Continue, Reason) - end; -decode_muc_user_item_els([_ | _els], Actor, Continue, - Reason) -> - decode_muc_user_item_els(_els, Actor, Continue, Reason). - -decode_muc_user_item_attrs([{<<"affiliation">>, _val} - | _attrs], - _Affiliation, Role, Jid, Nick) -> - decode_muc_user_item_attrs(_attrs, _val, Role, Jid, - Nick); -decode_muc_user_item_attrs([{<<"role">>, _val} - | _attrs], - Affiliation, _Role, Jid, Nick) -> - decode_muc_user_item_attrs(_attrs, Affiliation, _val, - Jid, Nick); -decode_muc_user_item_attrs([{<<"jid">>, _val} | _attrs], - Affiliation, Role, _Jid, Nick) -> - decode_muc_user_item_attrs(_attrs, Affiliation, Role, - _val, Nick); -decode_muc_user_item_attrs([{<<"nick">>, _val} - | _attrs], - Affiliation, Role, Jid, _Nick) -> - decode_muc_user_item_attrs(_attrs, Affiliation, Role, - Jid, _val); -decode_muc_user_item_attrs([_ | _attrs], Affiliation, +decode_muc_user_item_els(__TopXMLNS, [_ | _els], Actor, + Continue, Reason) -> + decode_muc_user_item_els(__TopXMLNS, _els, Actor, + Continue, Reason). + +decode_muc_user_item_attrs(__TopXMLNS, + [{<<"affiliation">>, _val} | _attrs], _Affiliation, Role, Jid, Nick) -> - decode_muc_user_item_attrs(_attrs, Affiliation, Role, - Jid, Nick); -decode_muc_user_item_attrs([], Affiliation, Role, Jid, - Nick) -> - {decode_muc_user_item_attr_affiliation(Affiliation), - decode_muc_user_item_attr_role(Role), - decode_muc_user_item_attr_jid(Jid), - decode_muc_user_item_attr_nick(Nick)}. + decode_muc_user_item_attrs(__TopXMLNS, _attrs, _val, + Role, Jid, Nick); +decode_muc_user_item_attrs(__TopXMLNS, + [{<<"role">>, _val} | _attrs], Affiliation, _Role, + Jid, Nick) -> + decode_muc_user_item_attrs(__TopXMLNS, _attrs, + Affiliation, _val, Jid, Nick); +decode_muc_user_item_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Affiliation, Role, + _Jid, Nick) -> + decode_muc_user_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, _val, Nick); +decode_muc_user_item_attrs(__TopXMLNS, + [{<<"nick">>, _val} | _attrs], Affiliation, Role, + Jid, _Nick) -> + decode_muc_user_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, Jid, _val); +decode_muc_user_item_attrs(__TopXMLNS, [_ | _attrs], + Affiliation, Role, Jid, Nick) -> + decode_muc_user_item_attrs(__TopXMLNS, _attrs, + Affiliation, Role, Jid, Nick); +decode_muc_user_item_attrs(__TopXMLNS, [], Affiliation, + Role, Jid, Nick) -> + {decode_muc_user_item_attr_affiliation(__TopXMLNS, + Affiliation), + decode_muc_user_item_attr_role(__TopXMLNS, Role), + decode_muc_user_item_attr_jid(__TopXMLNS, Jid), + decode_muc_user_item_attr_nick(__TopXMLNS, Nick)}. encode_muc_user_item({muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}, @@ -3556,16 +3933,18 @@ encode_muc_user_item({muc_item, Actor, Continue, Reason, 'encode_muc_user_item_$reason'(Reason, _acc) -> [encode_muc_user_reason(Reason, []) | _acc]. -decode_muc_user_item_attr_affiliation(undefined) -> +decode_muc_user_item_attr_affiliation(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_item_attr_affiliation(_val) -> +decode_muc_user_item_attr_affiliation(__TopXMLNS, + _val) -> case catch dec_enum(_val, [admin, member, none, outcast, owner]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"item">>, - <<"http://jabber.org/protocol/muc#user">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3575,15 +3954,15 @@ encode_muc_user_item_attr_affiliation(undefined, encode_muc_user_item_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. -decode_muc_user_item_attr_role(undefined) -> undefined; -decode_muc_user_item_attr_role(_val) -> +decode_muc_user_item_attr_role(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_item_attr_role(__TopXMLNS, _val) -> case catch dec_enum(_val, [moderator, none, participant, visitor]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"role">>, <<"item">>, - <<"http://jabber.org/protocol/muc#user">>}}); + {bad_attr_value, <<"role">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -3591,13 +3970,13 @@ encode_muc_user_item_attr_role(undefined, _acc) -> _acc; encode_muc_user_item_attr_role(_val, _acc) -> [{<<"role">>, enc_enum(_val)} | _acc]. -decode_muc_user_item_attr_jid(undefined) -> undefined; -decode_muc_user_item_attr_jid(_val) -> +decode_muc_user_item_attr_jid(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"item">>, - <<"http://jabber.org/protocol/muc#user">>}}); + {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -3605,26 +3984,29 @@ encode_muc_user_item_attr_jid(undefined, _acc) -> _acc; encode_muc_user_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_user_item_attr_nick(undefined) -> undefined; -decode_muc_user_item_attr_nick(_val) -> _val. +decode_muc_user_item_attr_nick(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_item_attr_nick(__TopXMLNS, _val) -> + _val. encode_muc_user_item_attr_nick(undefined, _acc) -> _acc; encode_muc_user_item_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. -decode_muc_user_status({xmlel, <<"status">>, _attrs, - _els}) -> - Code = decode_muc_user_status_attrs(_attrs, undefined), +decode_muc_user_status(__TopXMLNS, + {xmlel, <<"status">>, _attrs, _els}) -> + Code = decode_muc_user_status_attrs(__TopXMLNS, _attrs, + undefined), Code. -decode_muc_user_status_attrs([{<<"code">>, _val} - | _attrs], - _Code) -> - decode_muc_user_status_attrs(_attrs, _val); -decode_muc_user_status_attrs([_ | _attrs], Code) -> - decode_muc_user_status_attrs(_attrs, Code); -decode_muc_user_status_attrs([], Code) -> - decode_muc_user_status_attr_code(Code). +decode_muc_user_status_attrs(__TopXMLNS, + [{<<"code">>, _val} | _attrs], _Code) -> + decode_muc_user_status_attrs(__TopXMLNS, _attrs, _val); +decode_muc_user_status_attrs(__TopXMLNS, [_ | _attrs], + Code) -> + decode_muc_user_status_attrs(__TopXMLNS, _attrs, Code); +decode_muc_user_status_attrs(__TopXMLNS, [], Code) -> + decode_muc_user_status_attr_code(__TopXMLNS, Code). encode_muc_user_status(Code, _xmlns_attrs) -> _els = [], @@ -3632,14 +4014,15 @@ encode_muc_user_status(Code, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"status">>, _attrs, _els}. -decode_muc_user_status_attr_code(undefined) -> +decode_muc_user_status_attr_code(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_status_attr_code(_val) -> +decode_muc_user_status_attr_code(__TopXMLNS, _val) -> case catch dec_int(_val, 100, 999) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"code">>, <<"status">>, - <<"http://jabber.org/protocol/muc#user">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3648,20 +4031,24 @@ encode_muc_user_status_attr_code(undefined, _acc) -> encode_muc_user_status_attr_code(_val, _acc) -> [{<<"code">>, enc_int(_val)} | _acc]. -decode_muc_user_continue({xmlel, <<"continue">>, _attrs, - _els}) -> - Thread = decode_muc_user_continue_attrs(_attrs, - undefined), +decode_muc_user_continue(__TopXMLNS, + {xmlel, <<"continue">>, _attrs, _els}) -> + Thread = decode_muc_user_continue_attrs(__TopXMLNS, + _attrs, undefined), Thread. -decode_muc_user_continue_attrs([{<<"thread">>, _val} - | _attrs], - _Thread) -> - decode_muc_user_continue_attrs(_attrs, _val); -decode_muc_user_continue_attrs([_ | _attrs], Thread) -> - decode_muc_user_continue_attrs(_attrs, Thread); -decode_muc_user_continue_attrs([], Thread) -> - decode_muc_user_continue_attr_thread(Thread). +decode_muc_user_continue_attrs(__TopXMLNS, + [{<<"thread">>, _val} | _attrs], _Thread) -> + decode_muc_user_continue_attrs(__TopXMLNS, _attrs, + _val); +decode_muc_user_continue_attrs(__TopXMLNS, [_ | _attrs], + Thread) -> + decode_muc_user_continue_attrs(__TopXMLNS, _attrs, + Thread); +decode_muc_user_continue_attrs(__TopXMLNS, [], + Thread) -> + decode_muc_user_continue_attr_thread(__TopXMLNS, + Thread). encode_muc_user_continue(Thread, _xmlns_attrs) -> _els = [], @@ -3669,34 +4056,40 @@ encode_muc_user_continue(Thread, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"continue">>, _attrs, _els}. -decode_muc_user_continue_attr_thread(undefined) -> +decode_muc_user_continue_attr_thread(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_continue_attr_thread(_val) -> _val. +decode_muc_user_continue_attr_thread(__TopXMLNS, + _val) -> + _val. encode_muc_user_continue_attr_thread(undefined, _acc) -> _acc; encode_muc_user_continue_attr_thread(_val, _acc) -> [{<<"thread">>, _val} | _acc]. -decode_muc_user_actor({xmlel, <<"actor">>, _attrs, - _els}) -> - {Jid, Nick} = decode_muc_user_actor_attrs(_attrs, - undefined, undefined), +decode_muc_user_actor(__TopXMLNS, + {xmlel, <<"actor">>, _attrs, _els}) -> + {Jid, Nick} = decode_muc_user_actor_attrs(__TopXMLNS, + _attrs, undefined, undefined), {muc_actor, Jid, Nick}. -decode_muc_user_actor_attrs([{<<"jid">>, _val} - | _attrs], - _Jid, Nick) -> - decode_muc_user_actor_attrs(_attrs, _val, Nick); -decode_muc_user_actor_attrs([{<<"nick">>, _val} - | _attrs], - Jid, _Nick) -> - decode_muc_user_actor_attrs(_attrs, Jid, _val); -decode_muc_user_actor_attrs([_ | _attrs], Jid, Nick) -> - decode_muc_user_actor_attrs(_attrs, Jid, Nick); -decode_muc_user_actor_attrs([], Jid, Nick) -> - {decode_muc_user_actor_attr_jid(Jid), - decode_muc_user_actor_attr_nick(Nick)}. +decode_muc_user_actor_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Nick) -> + decode_muc_user_actor_attrs(__TopXMLNS, _attrs, _val, + Nick); +decode_muc_user_actor_attrs(__TopXMLNS, + [{<<"nick">>, _val} | _attrs], Jid, _Nick) -> + decode_muc_user_actor_attrs(__TopXMLNS, _attrs, Jid, + _val); +decode_muc_user_actor_attrs(__TopXMLNS, [_ | _attrs], + Jid, Nick) -> + decode_muc_user_actor_attrs(__TopXMLNS, _attrs, Jid, + Nick); +decode_muc_user_actor_attrs(__TopXMLNS, [], Jid, + Nick) -> + {decode_muc_user_actor_attr_jid(__TopXMLNS, Jid), + decode_muc_user_actor_attr_nick(__TopXMLNS, Nick)}. encode_muc_user_actor({muc_actor, Jid, Nick}, _xmlns_attrs) -> @@ -3706,13 +4099,13 @@ encode_muc_user_actor({muc_actor, Jid, Nick}, _xmlns_attrs)), {xmlel, <<"actor">>, _attrs, _els}. -decode_muc_user_actor_attr_jid(undefined) -> undefined; -decode_muc_user_actor_attr_jid(_val) -> +decode_muc_user_actor_attr_jid(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_actor_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"actor">>, - <<"http://jabber.org/protocol/muc#user">>}}); + {bad_attr_value, <<"jid">>, <<"actor">>, __TopXMLNS}}); _res -> _res end. @@ -3720,50 +4113,57 @@ encode_muc_user_actor_attr_jid(undefined, _acc) -> _acc; encode_muc_user_actor_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_user_actor_attr_nick(undefined) -> undefined; -decode_muc_user_actor_attr_nick(_val) -> _val. +decode_muc_user_actor_attr_nick(__TopXMLNS, + undefined) -> + undefined; +decode_muc_user_actor_attr_nick(__TopXMLNS, _val) -> + _val. encode_muc_user_actor_attr_nick(undefined, _acc) -> _acc; encode_muc_user_actor_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. -decode_muc_user_invite({xmlel, <<"invite">>, _attrs, - _els}) -> - Reason = decode_muc_user_invite_els(_els, undefined), - {To, From} = decode_muc_user_invite_attrs(_attrs, - undefined, undefined), +decode_muc_user_invite(__TopXMLNS, + {xmlel, <<"invite">>, _attrs, _els}) -> + Reason = decode_muc_user_invite_els(__TopXMLNS, _els, + undefined), + {To, From} = decode_muc_user_invite_attrs(__TopXMLNS, + _attrs, undefined, undefined), {muc_invite, Reason, From, To}. -decode_muc_user_invite_els([], Reason) -> Reason; -decode_muc_user_invite_els([{xmlel, <<"reason">>, - _attrs, _} = - _el - | _els], +decode_muc_user_invite_els(__TopXMLNS, [], Reason) -> + Reason; +decode_muc_user_invite_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_invite_els(_els, - decode_muc_user_reason(_el)); - true -> decode_muc_user_invite_els(_els, Reason) - end; -decode_muc_user_invite_els([_ | _els], Reason) -> - decode_muc_user_invite_els(_els, Reason). - -decode_muc_user_invite_attrs([{<<"to">>, _val} - | _attrs], - _To, From) -> - decode_muc_user_invite_attrs(_attrs, _val, From); -decode_muc_user_invite_attrs([{<<"from">>, _val} - | _attrs], - To, _From) -> - decode_muc_user_invite_attrs(_attrs, To, _val); -decode_muc_user_invite_attrs([_ | _attrs], To, From) -> - decode_muc_user_invite_attrs(_attrs, To, From); -decode_muc_user_invite_attrs([], To, From) -> - {decode_muc_user_invite_attr_to(To), - decode_muc_user_invite_attr_from(From)}. + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_invite_els(__TopXMLNS, _els, + decode_muc_user_reason(__TopXMLNS, _el)); + true -> + decode_muc_user_invite_els(__TopXMLNS, _els, Reason) + end; +decode_muc_user_invite_els(__TopXMLNS, [_ | _els], + Reason) -> + decode_muc_user_invite_els(__TopXMLNS, _els, Reason). + +decode_muc_user_invite_attrs(__TopXMLNS, + [{<<"to">>, _val} | _attrs], _To, From) -> + decode_muc_user_invite_attrs(__TopXMLNS, _attrs, _val, + From); +decode_muc_user_invite_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], To, _From) -> + decode_muc_user_invite_attrs(__TopXMLNS, _attrs, To, + _val); +decode_muc_user_invite_attrs(__TopXMLNS, [_ | _attrs], + To, From) -> + decode_muc_user_invite_attrs(__TopXMLNS, _attrs, To, + From); +decode_muc_user_invite_attrs(__TopXMLNS, [], To, + From) -> + {decode_muc_user_invite_attr_to(__TopXMLNS, To), + decode_muc_user_invite_attr_from(__TopXMLNS, From)}. encode_muc_user_invite({muc_invite, Reason, From, To}, _xmlns_attrs) -> @@ -3778,13 +4178,13 @@ encode_muc_user_invite({muc_invite, Reason, From, To}, 'encode_muc_user_invite_$reason'(Reason, _acc) -> [encode_muc_user_reason(Reason, []) | _acc]. -decode_muc_user_invite_attr_to(undefined) -> undefined; -decode_muc_user_invite_attr_to(_val) -> +decode_muc_user_invite_attr_to(__TopXMLNS, undefined) -> + undefined; +decode_muc_user_invite_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"to">>, <<"invite">>, - <<"http://jabber.org/protocol/muc#user">>}}); + {bad_attr_value, <<"to">>, <<"invite">>, __TopXMLNS}}); _res -> _res end. @@ -3792,14 +4192,15 @@ encode_muc_user_invite_attr_to(undefined, _acc) -> _acc; encode_muc_user_invite_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. -decode_muc_user_invite_attr_from(undefined) -> +decode_muc_user_invite_attr_from(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_invite_attr_from(_val) -> +decode_muc_user_invite_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"invite">>, - <<"http://jabber.org/protocol/muc#user">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3808,36 +4209,38 @@ encode_muc_user_invite_attr_from(undefined, _acc) -> encode_muc_user_invite_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_muc_user_destroy({xmlel, <<"destroy">>, _attrs, - _els}) -> - Reason = decode_muc_user_destroy_els(_els, undefined), - Jid = decode_muc_user_destroy_attrs(_attrs, undefined), +decode_muc_user_destroy(__TopXMLNS, + {xmlel, <<"destroy">>, _attrs, _els}) -> + Reason = decode_muc_user_destroy_els(__TopXMLNS, _els, + undefined), + Jid = decode_muc_user_destroy_attrs(__TopXMLNS, _attrs, + undefined), {muc_user_destroy, Reason, Jid}. -decode_muc_user_destroy_els([], Reason) -> Reason; -decode_muc_user_destroy_els([{xmlel, <<"reason">>, - _attrs, _} = - _el - | _els], +decode_muc_user_destroy_els(__TopXMLNS, [], Reason) -> + Reason; +decode_muc_user_destroy_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_destroy_els(_els, - decode_muc_user_reason(_el)); - true -> decode_muc_user_destroy_els(_els, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_destroy_els(__TopXMLNS, _els, + decode_muc_user_reason(__TopXMLNS, _el)); + true -> + decode_muc_user_destroy_els(__TopXMLNS, _els, Reason) end; -decode_muc_user_destroy_els([_ | _els], Reason) -> - decode_muc_user_destroy_els(_els, Reason). +decode_muc_user_destroy_els(__TopXMLNS, [_ | _els], + Reason) -> + decode_muc_user_destroy_els(__TopXMLNS, _els, Reason). -decode_muc_user_destroy_attrs([{<<"jid">>, _val} - | _attrs], - _Jid) -> - decode_muc_user_destroy_attrs(_attrs, _val); -decode_muc_user_destroy_attrs([_ | _attrs], Jid) -> - decode_muc_user_destroy_attrs(_attrs, Jid); -decode_muc_user_destroy_attrs([], Jid) -> - decode_muc_user_destroy_attr_jid(Jid). +decode_muc_user_destroy_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid) -> + decode_muc_user_destroy_attrs(__TopXMLNS, _attrs, _val); +decode_muc_user_destroy_attrs(__TopXMLNS, [_ | _attrs], + Jid) -> + decode_muc_user_destroy_attrs(__TopXMLNS, _attrs, Jid); +decode_muc_user_destroy_attrs(__TopXMLNS, [], Jid) -> + decode_muc_user_destroy_attr_jid(__TopXMLNS, Jid). encode_muc_user_destroy({muc_user_destroy, Reason, Jid}, _xmlns_attrs) -> @@ -3851,14 +4254,15 @@ encode_muc_user_destroy({muc_user_destroy, Reason, Jid}, 'encode_muc_user_destroy_$reason'(Reason, _acc) -> [encode_muc_user_reason(Reason, []) | _acc]. -decode_muc_user_destroy_attr_jid(undefined) -> +decode_muc_user_destroy_attr_jid(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_destroy_attr_jid(_val) -> +decode_muc_user_destroy_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"destroy">>, - <<"http://jabber.org/protocol/muc#user">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3867,42 +4271,46 @@ encode_muc_user_destroy_attr_jid(undefined, _acc) -> encode_muc_user_destroy_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_muc_user_decline({xmlel, <<"decline">>, _attrs, - _els}) -> - Reason = decode_muc_user_decline_els(_els, undefined), - {To, From} = decode_muc_user_decline_attrs(_attrs, - undefined, undefined), +decode_muc_user_decline(__TopXMLNS, + {xmlel, <<"decline">>, _attrs, _els}) -> + Reason = decode_muc_user_decline_els(__TopXMLNS, _els, + undefined), + {To, From} = decode_muc_user_decline_attrs(__TopXMLNS, + _attrs, undefined, undefined), {muc_decline, Reason, From, To}. -decode_muc_user_decline_els([], Reason) -> Reason; -decode_muc_user_decline_els([{xmlel, <<"reason">>, - _attrs, _} = - _el - | _els], +decode_muc_user_decline_els(__TopXMLNS, [], Reason) -> + Reason; +decode_muc_user_decline_els(__TopXMLNS, + [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/muc#user">> -> - decode_muc_user_decline_els(_els, - decode_muc_user_reason(_el)); - true -> decode_muc_user_decline_els(_els, Reason) - end; -decode_muc_user_decline_els([_ | _els], Reason) -> - decode_muc_user_decline_els(_els, Reason). - -decode_muc_user_decline_attrs([{<<"to">>, _val} - | _attrs], - _To, From) -> - decode_muc_user_decline_attrs(_attrs, _val, From); -decode_muc_user_decline_attrs([{<<"from">>, _val} - | _attrs], - To, _From) -> - decode_muc_user_decline_attrs(_attrs, To, _val); -decode_muc_user_decline_attrs([_ | _attrs], To, From) -> - decode_muc_user_decline_attrs(_attrs, To, From); -decode_muc_user_decline_attrs([], To, From) -> - {decode_muc_user_decline_attr_to(To), - decode_muc_user_decline_attr_from(From)}. + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_muc_user_decline_els(__TopXMLNS, _els, + decode_muc_user_reason(__TopXMLNS, _el)); + true -> + decode_muc_user_decline_els(__TopXMLNS, _els, Reason) + end; +decode_muc_user_decline_els(__TopXMLNS, [_ | _els], + Reason) -> + decode_muc_user_decline_els(__TopXMLNS, _els, Reason). + +decode_muc_user_decline_attrs(__TopXMLNS, + [{<<"to">>, _val} | _attrs], _To, From) -> + decode_muc_user_decline_attrs(__TopXMLNS, _attrs, _val, + From); +decode_muc_user_decline_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], To, _From) -> + decode_muc_user_decline_attrs(__TopXMLNS, _attrs, To, + _val); +decode_muc_user_decline_attrs(__TopXMLNS, [_ | _attrs], + To, From) -> + decode_muc_user_decline_attrs(__TopXMLNS, _attrs, To, + From); +decode_muc_user_decline_attrs(__TopXMLNS, [], To, + From) -> + {decode_muc_user_decline_attr_to(__TopXMLNS, To), + decode_muc_user_decline_attr_from(__TopXMLNS, From)}. encode_muc_user_decline({muc_decline, Reason, From, To}, _xmlns_attrs) -> @@ -3917,13 +4325,14 @@ encode_muc_user_decline({muc_decline, Reason, From, To}, 'encode_muc_user_decline_$reason'(Reason, _acc) -> [encode_muc_user_reason(Reason, []) | _acc]. -decode_muc_user_decline_attr_to(undefined) -> undefined; -decode_muc_user_decline_attr_to(_val) -> +decode_muc_user_decline_attr_to(__TopXMLNS, + undefined) -> + undefined; +decode_muc_user_decline_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"to">>, <<"decline">>, - <<"http://jabber.org/protocol/muc#user">>}}); + {bad_attr_value, <<"to">>, <<"decline">>, __TopXMLNS}}); _res -> _res end. @@ -3932,14 +4341,15 @@ encode_muc_user_decline_attr_to(undefined, _acc) -> encode_muc_user_decline_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. -decode_muc_user_decline_attr_from(undefined) -> +decode_muc_user_decline_attr_from(__TopXMLNS, + undefined) -> undefined; -decode_muc_user_decline_attr_from(_val) -> +decode_muc_user_decline_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"decline">>, - <<"http://jabber.org/protocol/muc#user">>}}); + __TopXMLNS}}); _res -> _res end. @@ -3948,67 +4358,73 @@ encode_muc_user_decline_attr_from(undefined, _acc) -> encode_muc_user_decline_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_muc_user_reason({xmlel, <<"reason">>, _attrs, - _els}) -> - Cdata = decode_muc_user_reason_els(_els, <<>>), Cdata. +decode_muc_user_reason(__TopXMLNS, + {xmlel, <<"reason">>, _attrs, _els}) -> + Cdata = decode_muc_user_reason_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_muc_user_reason_els([], Cdata) -> - decode_muc_user_reason_cdata(Cdata); -decode_muc_user_reason_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_muc_user_reason_els(_els, +decode_muc_user_reason_els(__TopXMLNS, [], Cdata) -> + decode_muc_user_reason_cdata(__TopXMLNS, Cdata); +decode_muc_user_reason_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_muc_user_reason_els(__TopXMLNS, _els, <>); -decode_muc_user_reason_els([_ | _els], Cdata) -> - decode_muc_user_reason_els(_els, Cdata). +decode_muc_user_reason_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_muc_user_reason_els(__TopXMLNS, _els, Cdata). encode_muc_user_reason(Cdata, _xmlns_attrs) -> _els = encode_muc_user_reason_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"reason">>, _attrs, _els}. -decode_muc_user_reason_cdata(<<>>) -> undefined; -decode_muc_user_reason_cdata(_val) -> _val. +decode_muc_user_reason_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_muc_user_reason_cdata(__TopXMLNS, _val) -> _val. encode_muc_user_reason_cdata(undefined, _acc) -> _acc; encode_muc_user_reason_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_muc_history({xmlel, <<"history">>, _attrs, - _els}) -> +decode_muc_history(__TopXMLNS, + {xmlel, <<"history">>, _attrs, _els}) -> {Maxchars, Maxstanzas, Seconds, Since} = - decode_muc_history_attrs(_attrs, undefined, undefined, - undefined, undefined), + decode_muc_history_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined), {muc_history, Maxchars, Maxstanzas, Seconds, Since}. -decode_muc_history_attrs([{<<"maxchars">>, _val} - | _attrs], - _Maxchars, Maxstanzas, Seconds, Since) -> - decode_muc_history_attrs(_attrs, _val, Maxstanzas, - Seconds, Since); -decode_muc_history_attrs([{<<"maxstanzas">>, _val} - | _attrs], - Maxchars, _Maxstanzas, Seconds, Since) -> - decode_muc_history_attrs(_attrs, Maxchars, _val, - Seconds, Since); -decode_muc_history_attrs([{<<"seconds">>, _val} - | _attrs], - Maxchars, Maxstanzas, _Seconds, Since) -> - decode_muc_history_attrs(_attrs, Maxchars, Maxstanzas, - _val, Since); -decode_muc_history_attrs([{<<"since">>, _val} | _attrs], - Maxchars, Maxstanzas, Seconds, _Since) -> - decode_muc_history_attrs(_attrs, Maxchars, Maxstanzas, - Seconds, _val); -decode_muc_history_attrs([_ | _attrs], Maxchars, +decode_muc_history_attrs(__TopXMLNS, + [{<<"maxchars">>, _val} | _attrs], _Maxchars, Maxstanzas, Seconds, Since) -> - decode_muc_history_attrs(_attrs, Maxchars, Maxstanzas, - Seconds, Since); -decode_muc_history_attrs([], Maxchars, Maxstanzas, - Seconds, Since) -> - {decode_muc_history_attr_maxchars(Maxchars), - decode_muc_history_attr_maxstanzas(Maxstanzas), - decode_muc_history_attr_seconds(Seconds), - decode_muc_history_attr_since(Since)}. + decode_muc_history_attrs(__TopXMLNS, _attrs, _val, + Maxstanzas, Seconds, Since); +decode_muc_history_attrs(__TopXMLNS, + [{<<"maxstanzas">>, _val} | _attrs], Maxchars, + _Maxstanzas, Seconds, Since) -> + decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, + _val, Seconds, Since); +decode_muc_history_attrs(__TopXMLNS, + [{<<"seconds">>, _val} | _attrs], Maxchars, Maxstanzas, + _Seconds, Since) -> + decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, + Maxstanzas, _val, Since); +decode_muc_history_attrs(__TopXMLNS, + [{<<"since">>, _val} | _attrs], Maxchars, Maxstanzas, + Seconds, _Since) -> + decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, + Maxstanzas, Seconds, _val); +decode_muc_history_attrs(__TopXMLNS, [_ | _attrs], + Maxchars, Maxstanzas, Seconds, Since) -> + decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, + Maxstanzas, Seconds, Since); +decode_muc_history_attrs(__TopXMLNS, [], Maxchars, + Maxstanzas, Seconds, Since) -> + {decode_muc_history_attr_maxchars(__TopXMLNS, Maxchars), + decode_muc_history_attr_maxstanzas(__TopXMLNS, + Maxstanzas), + decode_muc_history_attr_seconds(__TopXMLNS, Seconds), + decode_muc_history_attr_since(__TopXMLNS, Since)}. encode_muc_history({muc_history, Maxchars, Maxstanzas, Seconds, Since}, @@ -4021,14 +4437,15 @@ encode_muc_history({muc_history, Maxchars, Maxstanzas, _xmlns_attrs)))), {xmlel, <<"history">>, _attrs, _els}. -decode_muc_history_attr_maxchars(undefined) -> +decode_muc_history_attr_maxchars(__TopXMLNS, + undefined) -> undefined; -decode_muc_history_attr_maxchars(_val) -> +decode_muc_history_attr_maxchars(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"maxchars">>, <<"history">>, - <<"http://jabber.org/protocol/muc">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4037,14 +4454,15 @@ encode_muc_history_attr_maxchars(undefined, _acc) -> encode_muc_history_attr_maxchars(_val, _acc) -> [{<<"maxchars">>, enc_int(_val)} | _acc]. -decode_muc_history_attr_maxstanzas(undefined) -> +decode_muc_history_attr_maxstanzas(__TopXMLNS, + undefined) -> undefined; -decode_muc_history_attr_maxstanzas(_val) -> +decode_muc_history_attr_maxstanzas(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"maxstanzas">>, <<"history">>, - <<"http://jabber.org/protocol/muc">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4053,13 +4471,15 @@ encode_muc_history_attr_maxstanzas(undefined, _acc) -> encode_muc_history_attr_maxstanzas(_val, _acc) -> [{<<"maxstanzas">>, enc_int(_val)} | _acc]. -decode_muc_history_attr_seconds(undefined) -> undefined; -decode_muc_history_attr_seconds(_val) -> +decode_muc_history_attr_seconds(__TopXMLNS, + undefined) -> + undefined; +decode_muc_history_attr_seconds(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"seconds">>, <<"history">>, - <<"http://jabber.org/protocol/muc">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4068,13 +4488,14 @@ encode_muc_history_attr_seconds(undefined, _acc) -> encode_muc_history_attr_seconds(_val, _acc) -> [{<<"seconds">>, enc_int(_val)} | _acc]. -decode_muc_history_attr_since(undefined) -> undefined; -decode_muc_history_attr_since(_val) -> +decode_muc_history_attr_since(__TopXMLNS, undefined) -> + undefined; +decode_muc_history_attr_since(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"since">>, <<"history">>, - <<"http://jabber.org/protocol/muc">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4082,83 +4503,86 @@ encode_muc_history_attr_since(undefined, _acc) -> _acc; encode_muc_history_attr_since(_val, _acc) -> [{<<"since">>, enc_utc(_val)} | _acc]. -decode_bytestreams({xmlel, <<"query">>, _attrs, - _els}) -> - {Hosts, Used, Activate} = decode_bytestreams_els(_els, - [], undefined, undefined), - {Dstaddr, Sid, Mode} = decode_bytestreams_attrs(_attrs, - undefined, undefined, - undefined), +decode_bytestreams(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + {Hosts, Used, Activate} = + decode_bytestreams_els(__TopXMLNS, _els, [], undefined, + undefined), + {Dstaddr, Sid, Mode} = + decode_bytestreams_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined), {bytestreams, Hosts, Used, Activate, Dstaddr, Mode, Sid}. -decode_bytestreams_els([], Hosts, Used, Activate) -> +decode_bytestreams_els(__TopXMLNS, [], Hosts, Used, + Activate) -> {lists:reverse(Hosts), Used, Activate}; -decode_bytestreams_els([{xmlel, <<"streamhost">>, - _attrs, _} = - _el - | _els], +decode_bytestreams_els(__TopXMLNS, + [{xmlel, <<"streamhost">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/bytestreams">> -> - decode_bytestreams_els(_els, - [decode_bytestreams_streamhost(_el) | Hosts], + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bytestreams_els(__TopXMLNS, _els, + [decode_bytestreams_streamhost(__TopXMLNS, + _el) + | Hosts], Used, Activate); true -> - decode_bytestreams_els(_els, Hosts, Used, Activate) + decode_bytestreams_els(__TopXMLNS, _els, Hosts, Used, + Activate) end; -decode_bytestreams_els([{xmlel, <<"streamhost-used">>, - _attrs, _} = - _el +decode_bytestreams_els(__TopXMLNS, + [{xmlel, <<"streamhost-used">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/bytestreams">> -> - decode_bytestreams_els(_els, Hosts, - decode_bytestreams_streamhost_used(_el), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bytestreams_els(__TopXMLNS, _els, Hosts, + decode_bytestreams_streamhost_used(__TopXMLNS, + _el), Activate); true -> - decode_bytestreams_els(_els, Hosts, Used, Activate) + decode_bytestreams_els(__TopXMLNS, _els, Hosts, Used, + Activate) end; -decode_bytestreams_els([{xmlel, <<"activate">>, _attrs, - _} = - _el - | _els], +decode_bytestreams_els(__TopXMLNS, + [{xmlel, <<"activate">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/bytestreams">> -> - decode_bytestreams_els(_els, Hosts, Used, - decode_bytestreams_activate(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bytestreams_els(__TopXMLNS, _els, Hosts, Used, + decode_bytestreams_activate(__TopXMLNS, _el)); true -> - decode_bytestreams_els(_els, Hosts, Used, Activate) + decode_bytestreams_els(__TopXMLNS, _els, Hosts, Used, + Activate) end; -decode_bytestreams_els([_ | _els], Hosts, Used, - Activate) -> - decode_bytestreams_els(_els, Hosts, Used, Activate). - -decode_bytestreams_attrs([{<<"dstaddr">>, _val} - | _attrs], - _Dstaddr, Sid, Mode) -> - decode_bytestreams_attrs(_attrs, _val, Sid, Mode); -decode_bytestreams_attrs([{<<"sid">>, _val} | _attrs], - Dstaddr, _Sid, Mode) -> - decode_bytestreams_attrs(_attrs, Dstaddr, _val, Mode); -decode_bytestreams_attrs([{<<"mode">>, _val} | _attrs], - Dstaddr, Sid, _Mode) -> - decode_bytestreams_attrs(_attrs, Dstaddr, Sid, _val); -decode_bytestreams_attrs([_ | _attrs], Dstaddr, Sid, +decode_bytestreams_els(__TopXMLNS, [_ | _els], Hosts, + Used, Activate) -> + decode_bytestreams_els(__TopXMLNS, _els, Hosts, Used, + Activate). + +decode_bytestreams_attrs(__TopXMLNS, + [{<<"dstaddr">>, _val} | _attrs], _Dstaddr, Sid, Mode) -> - decode_bytestreams_attrs(_attrs, Dstaddr, Sid, Mode); -decode_bytestreams_attrs([], Dstaddr, Sid, Mode) -> - {decode_bytestreams_attr_dstaddr(Dstaddr), - decode_bytestreams_attr_sid(Sid), - decode_bytestreams_attr_mode(Mode)}. + decode_bytestreams_attrs(__TopXMLNS, _attrs, _val, Sid, + Mode); +decode_bytestreams_attrs(__TopXMLNS, + [{<<"sid">>, _val} | _attrs], Dstaddr, _Sid, Mode) -> + decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, + _val, Mode); +decode_bytestreams_attrs(__TopXMLNS, + [{<<"mode">>, _val} | _attrs], Dstaddr, Sid, _Mode) -> + decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, + Sid, _val); +decode_bytestreams_attrs(__TopXMLNS, [_ | _attrs], + Dstaddr, Sid, Mode) -> + decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, + Sid, Mode); +decode_bytestreams_attrs(__TopXMLNS, [], Dstaddr, Sid, + Mode) -> + {decode_bytestreams_attr_dstaddr(__TopXMLNS, Dstaddr), + decode_bytestreams_attr_sid(__TopXMLNS, Sid), + decode_bytestreams_attr_mode(__TopXMLNS, Mode)}. encode_bytestreams({bytestreams, Hosts, Used, Activate, Dstaddr, Mode, Sid}, @@ -4187,28 +4611,32 @@ encode_bytestreams({bytestreams, Hosts, Used, Activate, 'encode_bytestreams_$activate'(Activate, _acc) -> [encode_bytestreams_activate(Activate, []) | _acc]. -decode_bytestreams_attr_dstaddr(undefined) -> undefined; -decode_bytestreams_attr_dstaddr(_val) -> _val. +decode_bytestreams_attr_dstaddr(__TopXMLNS, + undefined) -> + undefined; +decode_bytestreams_attr_dstaddr(__TopXMLNS, _val) -> + _val. encode_bytestreams_attr_dstaddr(undefined, _acc) -> _acc; encode_bytestreams_attr_dstaddr(_val, _acc) -> [{<<"dstaddr">>, _val} | _acc]. -decode_bytestreams_attr_sid(undefined) -> undefined; -decode_bytestreams_attr_sid(_val) -> _val. +decode_bytestreams_attr_sid(__TopXMLNS, undefined) -> + undefined; +decode_bytestreams_attr_sid(__TopXMLNS, _val) -> _val. encode_bytestreams_attr_sid(undefined, _acc) -> _acc; encode_bytestreams_attr_sid(_val, _acc) -> [{<<"sid">>, _val} | _acc]. -decode_bytestreams_attr_mode(undefined) -> tcp; -decode_bytestreams_attr_mode(_val) -> +decode_bytestreams_attr_mode(__TopXMLNS, undefined) -> + tcp; +decode_bytestreams_attr_mode(__TopXMLNS, _val) -> case catch dec_enum(_val, [tcp, udp]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"mode">>, <<"query">>, - <<"http://jabber.org/protocol/bytestreams">>}}); + {bad_attr_value, <<"mode">>, <<"query">>, __TopXMLNS}}); _res -> _res end. @@ -4216,33 +4644,36 @@ encode_bytestreams_attr_mode(tcp, _acc) -> _acc; encode_bytestreams_attr_mode(_val, _acc) -> [{<<"mode">>, enc_enum(_val)} | _acc]. -decode_bytestreams_activate({xmlel, <<"activate">>, - _attrs, _els}) -> - Cdata = decode_bytestreams_activate_els(_els, <<>>), +decode_bytestreams_activate(__TopXMLNS, + {xmlel, <<"activate">>, _attrs, _els}) -> + Cdata = decode_bytestreams_activate_els(__TopXMLNS, + _els, <<>>), Cdata. -decode_bytestreams_activate_els([], Cdata) -> - decode_bytestreams_activate_cdata(Cdata); -decode_bytestreams_activate_els([{xmlcdata, _data} - | _els], +decode_bytestreams_activate_els(__TopXMLNS, [], Cdata) -> - decode_bytestreams_activate_els(_els, + decode_bytestreams_activate_cdata(__TopXMLNS, Cdata); +decode_bytestreams_activate_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_bytestreams_activate_els(__TopXMLNS, _els, <>); -decode_bytestreams_activate_els([_ | _els], Cdata) -> - decode_bytestreams_activate_els(_els, Cdata). +decode_bytestreams_activate_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_bytestreams_activate_els(__TopXMLNS, _els, + Cdata). encode_bytestreams_activate(Cdata, _xmlns_attrs) -> _els = encode_bytestreams_activate_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"activate">>, _attrs, _els}. -decode_bytestreams_activate_cdata(<<>>) -> undefined; -decode_bytestreams_activate_cdata(_val) -> +decode_bytestreams_activate_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_bytestreams_activate_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"activate">>, - <<"http://jabber.org/protocol/bytestreams">>}}); + {bad_cdata_value, <<>>, <<"activate">>, __TopXMLNS}}); _res -> _res end. @@ -4251,22 +4682,26 @@ encode_bytestreams_activate_cdata(undefined, _acc) -> encode_bytestreams_activate_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. -decode_bytestreams_streamhost_used({xmlel, - <<"streamhost-used">>, _attrs, _els}) -> - Jid = decode_bytestreams_streamhost_used_attrs(_attrs, - undefined), +decode_bytestreams_streamhost_used(__TopXMLNS, + {xmlel, <<"streamhost-used">>, _attrs, + _els}) -> + Jid = + decode_bytestreams_streamhost_used_attrs(__TopXMLNS, + _attrs, undefined), Jid. -decode_bytestreams_streamhost_used_attrs([{<<"jid">>, - _val} - | _attrs], - _Jid) -> - decode_bytestreams_streamhost_used_attrs(_attrs, _val); -decode_bytestreams_streamhost_used_attrs([_ | _attrs], +decode_bytestreams_streamhost_used_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid) -> + decode_bytestreams_streamhost_used_attrs(__TopXMLNS, + _attrs, _val); +decode_bytestreams_streamhost_used_attrs(__TopXMLNS, + [_ | _attrs], Jid) -> + decode_bytestreams_streamhost_used_attrs(__TopXMLNS, + _attrs, Jid); +decode_bytestreams_streamhost_used_attrs(__TopXMLNS, [], Jid) -> - decode_bytestreams_streamhost_used_attrs(_attrs, Jid); -decode_bytestreams_streamhost_used_attrs([], Jid) -> - decode_bytestreams_streamhost_used_attr_jid(Jid). + decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, + Jid). encode_bytestreams_streamhost_used(Jid, _xmlns_attrs) -> _els = [], @@ -4275,16 +4710,18 @@ encode_bytestreams_streamhost_used(Jid, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"streamhost-used">>, _attrs, _els}. -decode_bytestreams_streamhost_used_attr_jid(undefined) -> +decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"streamhost-used">>, - <<"http://jabber.org/protocol/bytestreams">>}}); -decode_bytestreams_streamhost_used_attr_jid(_val) -> + __TopXMLNS}}); +decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, + _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"streamhost-used">>, - <<"http://jabber.org/protocol/bytestreams">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4292,37 +4729,40 @@ encode_bytestreams_streamhost_used_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_bytestreams_streamhost({xmlel, <<"streamhost">>, - _attrs, _els}) -> +decode_bytestreams_streamhost(__TopXMLNS, + {xmlel, <<"streamhost">>, _attrs, _els}) -> {Jid, Host, Port} = - decode_bytestreams_streamhost_attrs(_attrs, undefined, - undefined, undefined), + decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined), {streamhost, Jid, Host, Port}. -decode_bytestreams_streamhost_attrs([{<<"jid">>, _val} - | _attrs], - _Jid, Host, Port) -> - decode_bytestreams_streamhost_attrs(_attrs, _val, Host, - Port); -decode_bytestreams_streamhost_attrs([{<<"host">>, _val} - | _attrs], - Jid, _Host, Port) -> - decode_bytestreams_streamhost_attrs(_attrs, Jid, _val, - Port); -decode_bytestreams_streamhost_attrs([{<<"port">>, _val} - | _attrs], - Jid, Host, _Port) -> - decode_bytestreams_streamhost_attrs(_attrs, Jid, Host, - _val); -decode_bytestreams_streamhost_attrs([_ | _attrs], Jid, - Host, Port) -> - decode_bytestreams_streamhost_attrs(_attrs, Jid, Host, - Port); -decode_bytestreams_streamhost_attrs([], Jid, Host, +decode_bytestreams_streamhost_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Host, Port) -> - {decode_bytestreams_streamhost_attr_jid(Jid), - decode_bytestreams_streamhost_attr_host(Host), - decode_bytestreams_streamhost_attr_port(Port)}. + decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, + _val, Host, Port); +decode_bytestreams_streamhost_attrs(__TopXMLNS, + [{<<"host">>, _val} | _attrs], Jid, _Host, + Port) -> + decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, + Jid, _val, Port); +decode_bytestreams_streamhost_attrs(__TopXMLNS, + [{<<"port">>, _val} | _attrs], Jid, Host, + _Port) -> + decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, + Jid, Host, _val); +decode_bytestreams_streamhost_attrs(__TopXMLNS, + [_ | _attrs], Jid, Host, Port) -> + decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, + Jid, Host, Port); +decode_bytestreams_streamhost_attrs(__TopXMLNS, [], Jid, + Host, Port) -> + {decode_bytestreams_streamhost_attr_jid(__TopXMLNS, + Jid), + decode_bytestreams_streamhost_attr_host(__TopXMLNS, + Host), + decode_bytestreams_streamhost_attr_port(__TopXMLNS, + Port)}. encode_bytestreams_streamhost({streamhost, Jid, Host, Port}, @@ -4334,39 +4774,46 @@ encode_bytestreams_streamhost({streamhost, Jid, Host, _xmlns_attrs))), {xmlel, <<"streamhost">>, _attrs, _els}. -decode_bytestreams_streamhost_attr_jid(undefined) -> +decode_bytestreams_streamhost_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"streamhost">>, - <<"http://jabber.org/protocol/bytestreams">>}}); -decode_bytestreams_streamhost_attr_jid(_val) -> + __TopXMLNS}}); +decode_bytestreams_streamhost_attr_jid(__TopXMLNS, + _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"streamhost">>, - <<"http://jabber.org/protocol/bytestreams">>}}); + __TopXMLNS}}); _res -> _res end. encode_bytestreams_streamhost_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_bytestreams_streamhost_attr_host(undefined) -> +decode_bytestreams_streamhost_attr_host(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"host">>, <<"streamhost">>, - <<"http://jabber.org/protocol/bytestreams">>}}); -decode_bytestreams_streamhost_attr_host(_val) -> _val. + __TopXMLNS}}); +decode_bytestreams_streamhost_attr_host(__TopXMLNS, + _val) -> + _val. encode_bytestreams_streamhost_attr_host(_val, _acc) -> [{<<"host">>, _val} | _acc]. -decode_bytestreams_streamhost_attr_port(undefined) -> +decode_bytestreams_streamhost_attr_port(__TopXMLNS, + undefined) -> 1080; -decode_bytestreams_streamhost_attr_port(_val) -> +decode_bytestreams_streamhost_attr_port(__TopXMLNS, + _val) -> case catch dec_int(_val, 0, 65535) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"port">>, <<"streamhost">>, - <<"http://jabber.org/protocol/bytestreams">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4375,23 +4822,28 @@ encode_bytestreams_streamhost_attr_port(1080, _acc) -> encode_bytestreams_streamhost_attr_port(_val, _acc) -> [{<<"port">>, enc_int(_val)} | _acc]. -decode_legacy_delay({xmlel, <<"x">>, _attrs, _els}) -> - {Stamp, From} = decode_legacy_delay_attrs(_attrs, - undefined, undefined), +decode_legacy_delay(__TopXMLNS, + {xmlel, <<"x">>, _attrs, _els}) -> + {Stamp, From} = decode_legacy_delay_attrs(__TopXMLNS, + _attrs, undefined, undefined), {legacy_delay, Stamp, From}. -decode_legacy_delay_attrs([{<<"stamp">>, _val} - | _attrs], - _Stamp, From) -> - decode_legacy_delay_attrs(_attrs, _val, From); -decode_legacy_delay_attrs([{<<"from">>, _val} | _attrs], - Stamp, _From) -> - decode_legacy_delay_attrs(_attrs, Stamp, _val); -decode_legacy_delay_attrs([_ | _attrs], Stamp, From) -> - decode_legacy_delay_attrs(_attrs, Stamp, From); -decode_legacy_delay_attrs([], Stamp, From) -> - {decode_legacy_delay_attr_stamp(Stamp), - decode_legacy_delay_attr_from(From)}. +decode_legacy_delay_attrs(__TopXMLNS, + [{<<"stamp">>, _val} | _attrs], _Stamp, From) -> + decode_legacy_delay_attrs(__TopXMLNS, _attrs, _val, + From); +decode_legacy_delay_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], Stamp, _From) -> + decode_legacy_delay_attrs(__TopXMLNS, _attrs, Stamp, + _val); +decode_legacy_delay_attrs(__TopXMLNS, [_ | _attrs], + Stamp, From) -> + decode_legacy_delay_attrs(__TopXMLNS, _attrs, Stamp, + From); +decode_legacy_delay_attrs(__TopXMLNS, [], Stamp, + From) -> + {decode_legacy_delay_attr_stamp(__TopXMLNS, Stamp), + decode_legacy_delay_attr_from(__TopXMLNS, From)}. encode_legacy_delay({legacy_delay, Stamp, From}, _xmlns_attrs) -> @@ -4401,22 +4853,22 @@ encode_legacy_delay({legacy_delay, Stamp, From}, _xmlns_attrs)), {xmlel, <<"x">>, _attrs, _els}. -decode_legacy_delay_attr_stamp(undefined) -> +decode_legacy_delay_attr_stamp(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"stamp">>, <<"x">>, - <<"jabber:x:delay">>}}); -decode_legacy_delay_attr_stamp(_val) -> _val. + {missing_attr, <<"stamp">>, <<"x">>, __TopXMLNS}}); +decode_legacy_delay_attr_stamp(__TopXMLNS, _val) -> + _val. encode_legacy_delay_attr_stamp(_val, _acc) -> [{<<"stamp">>, _val} | _acc]. -decode_legacy_delay_attr_from(undefined) -> undefined; -decode_legacy_delay_attr_from(_val) -> +decode_legacy_delay_attr_from(__TopXMLNS, undefined) -> + undefined; +decode_legacy_delay_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"from">>, <<"x">>, - <<"jabber:x:delay">>}}); + {bad_attr_value, <<"from">>, <<"x">>, __TopXMLNS}}); _res -> _res end. @@ -4424,22 +4876,24 @@ encode_legacy_delay_attr_from(undefined, _acc) -> _acc; encode_legacy_delay_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_delay({xmlel, <<"delay">>, _attrs, _els}) -> - {Stamp, From} = decode_delay_attrs(_attrs, undefined, - undefined), +decode_delay(__TopXMLNS, + {xmlel, <<"delay">>, _attrs, _els}) -> + {Stamp, From} = decode_delay_attrs(__TopXMLNS, _attrs, + undefined, undefined), {delay, Stamp, From}. -decode_delay_attrs([{<<"stamp">>, _val} | _attrs], - _Stamp, From) -> - decode_delay_attrs(_attrs, _val, From); -decode_delay_attrs([{<<"from">>, _val} | _attrs], Stamp, - _From) -> - decode_delay_attrs(_attrs, Stamp, _val); -decode_delay_attrs([_ | _attrs], Stamp, From) -> - decode_delay_attrs(_attrs, Stamp, From); -decode_delay_attrs([], Stamp, From) -> - {decode_delay_attr_stamp(Stamp), - decode_delay_attr_from(From)}. +decode_delay_attrs(__TopXMLNS, + [{<<"stamp">>, _val} | _attrs], _Stamp, From) -> + decode_delay_attrs(__TopXMLNS, _attrs, _val, From); +decode_delay_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], Stamp, _From) -> + decode_delay_attrs(__TopXMLNS, _attrs, Stamp, _val); +decode_delay_attrs(__TopXMLNS, [_ | _attrs], Stamp, + From) -> + decode_delay_attrs(__TopXMLNS, _attrs, Stamp, From); +decode_delay_attrs(__TopXMLNS, [], Stamp, From) -> + {decode_delay_attr_stamp(__TopXMLNS, Stamp), + decode_delay_attr_from(__TopXMLNS, From)}. encode_delay({delay, Stamp, From}, _xmlns_attrs) -> _els = [], @@ -4448,29 +4902,28 @@ encode_delay({delay, Stamp, From}, _xmlns_attrs) -> _xmlns_attrs)), {xmlel, <<"delay">>, _attrs, _els}. -decode_delay_attr_stamp(undefined) -> +decode_delay_attr_stamp(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"stamp">>, <<"delay">>, - <<"urn:xmpp:delay">>}}); -decode_delay_attr_stamp(_val) -> + {missing_attr, <<"stamp">>, <<"delay">>, __TopXMLNS}}); +decode_delay_attr_stamp(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"stamp">>, <<"delay">>, - <<"urn:xmpp:delay">>}}); + __TopXMLNS}}); _res -> _res end. encode_delay_attr_stamp(_val, _acc) -> [{<<"stamp">>, enc_utc(_val)} | _acc]. -decode_delay_attr_from(undefined) -> undefined; -decode_delay_attr_from(_val) -> +decode_delay_attr_from(__TopXMLNS, undefined) -> + undefined; +decode_delay_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"from">>, <<"delay">>, - <<"urn:xmpp:delay">>}}); + {bad_attr_value, <<"from">>, <<"delay">>, __TopXMLNS}}); _res -> _res end. @@ -4478,27 +4931,27 @@ encode_delay_attr_from(undefined, _acc) -> _acc; encode_delay_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_shim_headers({xmlel, <<"headers">>, _attrs, - _els}) -> - Headers = decode_shim_headers_els(_els, []), +decode_shim_headers(__TopXMLNS, + {xmlel, <<"headers">>, _attrs, _els}) -> + Headers = decode_shim_headers_els(__TopXMLNS, _els, []), {shim, Headers}. -decode_shim_headers_els([], Headers) -> +decode_shim_headers_els(__TopXMLNS, [], Headers) -> lists:reverse(Headers); -decode_shim_headers_els([{xmlel, <<"header">>, _attrs, - _} = - _el - | _els], +decode_shim_headers_els(__TopXMLNS, + [{xmlel, <<"header">>, _attrs, _} = _el | _els], Headers) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/shim">> -> - decode_shim_headers_els(_els, - [decode_shim_header(_el) | Headers]); - true -> decode_shim_headers_els(_els, Headers) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_shim_headers_els(__TopXMLNS, _els, + [decode_shim_header(__TopXMLNS, _el) + | Headers]); + true -> + decode_shim_headers_els(__TopXMLNS, _els, Headers) end; -decode_shim_headers_els([_ | _els], Headers) -> - decode_shim_headers_els(_els, Headers). +decode_shim_headers_els(__TopXMLNS, [_ | _els], + Headers) -> + decode_shim_headers_els(__TopXMLNS, _els, Headers). encode_shim_headers({shim, Headers}, _xmlns_attrs) -> _els = 'encode_shim_headers_$headers'(Headers, []), @@ -4511,28 +4964,30 @@ encode_shim_headers({shim, Headers}, _xmlns_attrs) -> 'encode_shim_headers_$headers'(_els, [encode_shim_header(Headers, []) | _acc]). -decode_shim_header({xmlel, <<"header">>, _attrs, - _els}) -> - Cdata = decode_shim_header_els(_els, <<>>), - Name = decode_shim_header_attrs(_attrs, undefined), +decode_shim_header(__TopXMLNS, + {xmlel, <<"header">>, _attrs, _els}) -> + Cdata = decode_shim_header_els(__TopXMLNS, _els, <<>>), + Name = decode_shim_header_attrs(__TopXMLNS, _attrs, + undefined), {Name, Cdata}. -decode_shim_header_els([], Cdata) -> - decode_shim_header_cdata(Cdata); -decode_shim_header_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_shim_header_els(_els, +decode_shim_header_els(__TopXMLNS, [], Cdata) -> + decode_shim_header_cdata(__TopXMLNS, Cdata); +decode_shim_header_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_shim_header_els(__TopXMLNS, _els, <>); -decode_shim_header_els([_ | _els], Cdata) -> - decode_shim_header_els(_els, Cdata). - -decode_shim_header_attrs([{<<"name">>, _val} | _attrs], - _Name) -> - decode_shim_header_attrs(_attrs, _val); -decode_shim_header_attrs([_ | _attrs], Name) -> - decode_shim_header_attrs(_attrs, Name); -decode_shim_header_attrs([], Name) -> - decode_shim_header_attr_name(Name). +decode_shim_header_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_shim_header_els(__TopXMLNS, _els, Cdata). + +decode_shim_header_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name) -> + decode_shim_header_attrs(__TopXMLNS, _attrs, _val); +decode_shim_header_attrs(__TopXMLNS, [_ | _attrs], + Name) -> + decode_shim_header_attrs(__TopXMLNS, _attrs, Name); +decode_shim_header_attrs(__TopXMLNS, [], Name) -> + decode_shim_header_attr_name(__TopXMLNS, Name). encode_shim_header({Name, Cdata}, _xmlns_attrs) -> _els = encode_shim_header_cdata(Cdata, []), @@ -4540,174 +4995,160 @@ encode_shim_header({Name, Cdata}, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"header">>, _attrs, _els}. -decode_shim_header_attr_name(undefined) -> +decode_shim_header_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"name">>, <<"header">>, - <<"http://jabber.org/protocol/shim">>}}); -decode_shim_header_attr_name(_val) -> _val. + {missing_attr, <<"name">>, <<"header">>, __TopXMLNS}}); +decode_shim_header_attr_name(__TopXMLNS, _val) -> _val. encode_shim_header_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_shim_header_cdata(<<>>) -> undefined; -decode_shim_header_cdata(_val) -> _val. +decode_shim_header_cdata(__TopXMLNS, <<>>) -> undefined; +decode_shim_header_cdata(__TopXMLNS, _val) -> _val. encode_shim_header_cdata(undefined, _acc) -> _acc; encode_shim_header_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_pubsub({xmlel, <<"pubsub">>, _attrs, _els}) -> +decode_pubsub(__TopXMLNS, + {xmlel, <<"pubsub">>, _attrs, _els}) -> {Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish} = - decode_pubsub_els(_els, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, - undefined), + decode_pubsub_els(__TopXMLNS, _els, undefined, + undefined, undefined, undefined, undefined, undefined, + undefined, undefined), {pubsub, Subscriptions, Affiliations, Publish, Subscribe, Unsubscribe, Options, Items, Retract}. -decode_pubsub_els([], Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) -> +decode_pubsub_els(__TopXMLNS, [], Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) -> {Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish}; -decode_pubsub_els([{xmlel, <<"subscriptions">>, _attrs, - _} = - _el - | _els], +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"subscriptions">>, _attrs, _} = _el | _els], Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, Affiliations, - decode_pubsub_subscriptions(_el), Retract, - Unsubscribe, Subscribe, Publish); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, + decode_pubsub_subscriptions(__TopXMLNS, _el), + Retract, Unsubscribe, Subscribe, Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"affiliations">>, _attrs, - _} = - _el - | _els], +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"affiliations">>, _attrs, _} = _el | _els], Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, - decode_pubsub_affiliations(_el), Subscriptions, - Retract, Unsubscribe, Subscribe, Publish); - true -> - decode_pubsub_els(_els, Items, Options, Affiliations, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + decode_pubsub_affiliations(__TopXMLNS, _el), Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + Publish); + true -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"subscribe">>, _attrs, _} = - _el - | _els], +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"subscribe">>, _attrs, _} = _el | _els], Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, - decode_pubsub_subscribe(_el), Publish); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + decode_pubsub_subscribe(__TopXMLNS, _el), Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"unsubscribe">>, _attrs, - _} = - _el - | _els], +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"unsubscribe">>, _attrs, _} = _el | _els], Items, Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, - decode_pubsub_unsubscribe(_el), Subscribe, - Publish); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, + decode_pubsub_unsubscribe(__TopXMLNS, _el), + Subscribe, Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"options">>, _attrs, _} = - _el - | _els], - Items, Options, Affiliations, Subscriptions, Retract, +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"options">>, _attrs, _} = _el | _els], Items, + Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, - decode_pubsub_options(_el), Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, + decode_pubsub_options(__TopXMLNS, _el), + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"items">>, _attrs, _} = _el - | _els], - Items, Options, Affiliations, Subscriptions, Retract, +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"items">>, _attrs, _} = _el | _els], Items, + Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, decode_pubsub_items(_el), - Options, Affiliations, Subscriptions, Retract, - Unsubscribe, Subscribe, Publish); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, + decode_pubsub_items(__TopXMLNS, _el), Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"retract">>, _attrs, _} = - _el - | _els], - Items, Options, Affiliations, Subscriptions, Retract, +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"retract">>, _attrs, _} = _el | _els], Items, + Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, decode_pubsub_retract(_el), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, + decode_pubsub_retract(__TopXMLNS, _el), Unsubscribe, Subscribe, Publish); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([{xmlel, <<"publish">>, _attrs, _} = - _el - | _els], - Items, Options, Affiliations, Subscriptions, Retract, +decode_pubsub_els(__TopXMLNS, + [{xmlel, <<"publish">>, _attrs, _} = _el | _els], Items, + Options, Affiliations, Subscriptions, Retract, Unsubscribe, Subscribe, Publish) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - decode_pubsub_publish(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, decode_pubsub_publish(__TopXMLNS, _el)); true -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish) + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish) end; -decode_pubsub_els([_ | _els], Items, Options, - Affiliations, Subscriptions, Retract, Unsubscribe, - Subscribe, Publish) -> - decode_pubsub_els(_els, Items, Options, Affiliations, - Subscriptions, Retract, Unsubscribe, Subscribe, - Publish). +decode_pubsub_els(__TopXMLNS, [_ | _els], Items, + Options, Affiliations, Subscriptions, Retract, + Unsubscribe, Subscribe, Publish) -> + decode_pubsub_els(__TopXMLNS, _els, Items, Options, + Affiliations, Subscriptions, Retract, Unsubscribe, + Subscribe, Publish). encode_pubsub({pubsub, Subscriptions, Affiliations, Publish, Subscribe, Unsubscribe, Options, Items, @@ -4757,44 +5198,46 @@ encode_pubsub({pubsub, Subscriptions, Affiliations, 'encode_pubsub_$publish'(Publish, _acc) -> [encode_pubsub_publish(Publish, []) | _acc]. -decode_pubsub_retract({xmlel, <<"retract">>, _attrs, - _els}) -> - Items = decode_pubsub_retract_els(_els, []), - {Node, Notify} = decode_pubsub_retract_attrs(_attrs, - undefined, undefined), +decode_pubsub_retract(__TopXMLNS, + {xmlel, <<"retract">>, _attrs, _els}) -> + Items = decode_pubsub_retract_els(__TopXMLNS, _els, []), + {Node, Notify} = decode_pubsub_retract_attrs(__TopXMLNS, + _attrs, undefined, undefined), {pubsub_retract, Node, Notify, Items}. -decode_pubsub_retract_els([], Items) -> +decode_pubsub_retract_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_pubsub_retract_els([{xmlel, <<"item">>, _attrs, - _} = - _el - | _els], +decode_pubsub_retract_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_retract_els(_els, - [decode_pubsub_item(_el) | Items]); - true -> decode_pubsub_retract_els(_els, Items) - end; -decode_pubsub_retract_els([_ | _els], Items) -> - decode_pubsub_retract_els(_els, Items). - -decode_pubsub_retract_attrs([{<<"node">>, _val} - | _attrs], - _Node, Notify) -> - decode_pubsub_retract_attrs(_attrs, _val, Notify); -decode_pubsub_retract_attrs([{<<"notify">>, _val} - | _attrs], - Node, _Notify) -> - decode_pubsub_retract_attrs(_attrs, Node, _val); -decode_pubsub_retract_attrs([_ | _attrs], Node, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_retract_els(__TopXMLNS, _els, + [decode_pubsub_item(__TopXMLNS, _el) + | Items]); + true -> + decode_pubsub_retract_els(__TopXMLNS, _els, Items) + end; +decode_pubsub_retract_els(__TopXMLNS, [_ | _els], + Items) -> + decode_pubsub_retract_els(__TopXMLNS, _els, Items). + +decode_pubsub_retract_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node, Notify) -> + decode_pubsub_retract_attrs(__TopXMLNS, _attrs, _val, + Notify); +decode_pubsub_retract_attrs(__TopXMLNS, + [{<<"notify">>, _val} | _attrs], Node, _Notify) -> + decode_pubsub_retract_attrs(__TopXMLNS, _attrs, Node, + _val); +decode_pubsub_retract_attrs(__TopXMLNS, [_ | _attrs], + Node, Notify) -> + decode_pubsub_retract_attrs(__TopXMLNS, _attrs, Node, + Notify); +decode_pubsub_retract_attrs(__TopXMLNS, [], Node, Notify) -> - decode_pubsub_retract_attrs(_attrs, Node, Notify); -decode_pubsub_retract_attrs([], Node, Notify) -> - {decode_pubsub_retract_attr_node(Node), - decode_pubsub_retract_attr_notify(Notify)}. + {decode_pubsub_retract_attr_node(__TopXMLNS, Node), + decode_pubsub_retract_attr_notify(__TopXMLNS, Notify)}. encode_pubsub_retract({pubsub_retract, Node, Notify, Items}, @@ -4810,22 +5253,25 @@ encode_pubsub_retract({pubsub_retract, Node, Notify, 'encode_pubsub_retract_$items'(_els, [encode_pubsub_item(Items, []) | _acc]). -decode_pubsub_retract_attr_node(undefined) -> +decode_pubsub_retract_attr_node(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"node">>, <<"retract">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_retract_attr_node(_val) -> _val. + {missing_attr, <<"node">>, <<"retract">>, __TopXMLNS}}); +decode_pubsub_retract_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_retract_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_retract_attr_notify(undefined) -> false; -decode_pubsub_retract_attr_notify(_val) -> +decode_pubsub_retract_attr_notify(__TopXMLNS, + undefined) -> + false; +decode_pubsub_retract_attr_notify(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"notify">>, <<"retract">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. @@ -4833,46 +5279,52 @@ encode_pubsub_retract_attr_notify(false, _acc) -> _acc; encode_pubsub_retract_attr_notify(_val, _acc) -> [{<<"notify">>, enc_bool(_val)} | _acc]. -decode_pubsub_options({xmlel, <<"options">>, _attrs, - _els}) -> - Xdata = decode_pubsub_options_els(_els, undefined), - {Node, Subid, Jid} = decode_pubsub_options_attrs(_attrs, - undefined, undefined, - undefined), +decode_pubsub_options(__TopXMLNS, + {xmlel, <<"options">>, _attrs, _els}) -> + Xdata = decode_pubsub_options_els(__TopXMLNS, _els, + undefined), + {Node, Subid, Jid} = + decode_pubsub_options_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined), {pubsub_options, Node, Jid, Subid, Xdata}. -decode_pubsub_options_els([], Xdata) -> Xdata; -decode_pubsub_options_els([{xmlel, <<"x">>, _attrs, _} = - _el - | _els], - Xdata) -> +decode_pubsub_options_els(__TopXMLNS, [], Xdata) -> + Xdata; +decode_pubsub_options_els(__TopXMLNS, + [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"jabber:x:data">> -> - decode_pubsub_options_els(_els, decode_xdata(_el)); - true -> decode_pubsub_options_els(_els, Xdata) - end; -decode_pubsub_options_els([_ | _els], Xdata) -> - decode_pubsub_options_els(_els, Xdata). - -decode_pubsub_options_attrs([{<<"node">>, _val} - | _attrs], - _Node, Subid, Jid) -> - decode_pubsub_options_attrs(_attrs, _val, Subid, Jid); -decode_pubsub_options_attrs([{<<"subid">>, _val} - | _attrs], - Node, _Subid, Jid) -> - decode_pubsub_options_attrs(_attrs, Node, _val, Jid); -decode_pubsub_options_attrs([{<<"jid">>, _val} - | _attrs], - Node, Subid, _Jid) -> - decode_pubsub_options_attrs(_attrs, Node, Subid, _val); -decode_pubsub_options_attrs([_ | _attrs], Node, Subid, + decode_pubsub_options_els(__TopXMLNS, _els, + decode_xdata(_xmlns, _el)); + true -> + decode_pubsub_options_els(__TopXMLNS, _els, Xdata) + end; +decode_pubsub_options_els(__TopXMLNS, [_ | _els], + Xdata) -> + decode_pubsub_options_els(__TopXMLNS, _els, Xdata). + +decode_pubsub_options_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node, Subid, Jid) -> + decode_pubsub_options_attrs(__TopXMLNS, _attrs, _val, + Subid, Jid); +decode_pubsub_options_attrs(__TopXMLNS, + [{<<"subid">>, _val} | _attrs], Node, _Subid, + Jid) -> + decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, + _val, Jid); +decode_pubsub_options_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Node, Subid, _Jid) -> + decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, + Subid, _val); +decode_pubsub_options_attrs(__TopXMLNS, [_ | _attrs], + Node, Subid, Jid) -> + decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, + Subid, Jid); +decode_pubsub_options_attrs(__TopXMLNS, [], Node, Subid, Jid) -> - decode_pubsub_options_attrs(_attrs, Node, Subid, Jid); -decode_pubsub_options_attrs([], Node, Subid, Jid) -> - {decode_pubsub_options_attr_node(Node), - decode_pubsub_options_attr_subid(Subid), - decode_pubsub_options_attr_jid(Jid)}. + {decode_pubsub_options_attr_node(__TopXMLNS, Node), + decode_pubsub_options_attr_subid(__TopXMLNS, Subid), + decode_pubsub_options_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_options({pubsub_options, Node, Jid, Subid, Xdata}, @@ -4890,70 +5342,75 @@ encode_pubsub_options({pubsub_options, Node, Jid, Subid, [{<<"xmlns">>, <<"jabber:x:data">>}]) | _acc]. -decode_pubsub_options_attr_node(undefined) -> undefined; -decode_pubsub_options_attr_node(_val) -> _val. +decode_pubsub_options_attr_node(__TopXMLNS, + undefined) -> + undefined; +decode_pubsub_options_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_options_attr_node(undefined, _acc) -> _acc; encode_pubsub_options_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_options_attr_subid(undefined) -> +decode_pubsub_options_attr_subid(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_options_attr_subid(_val) -> _val. +decode_pubsub_options_attr_subid(__TopXMLNS, _val) -> + _val. encode_pubsub_options_attr_subid(undefined, _acc) -> _acc; encode_pubsub_options_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. -decode_pubsub_options_attr_jid(undefined) -> +decode_pubsub_options_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"jid">>, <<"options">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_options_attr_jid(_val) -> + {missing_attr, <<"jid">>, <<"options">>, __TopXMLNS}}); +decode_pubsub_options_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"options">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. encode_pubsub_options_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_pubsub_publish({xmlel, <<"publish">>, _attrs, - _els}) -> - Items = decode_pubsub_publish_els(_els, []), - Node = decode_pubsub_publish_attrs(_attrs, undefined), +decode_pubsub_publish(__TopXMLNS, + {xmlel, <<"publish">>, _attrs, _els}) -> + Items = decode_pubsub_publish_els(__TopXMLNS, _els, []), + Node = decode_pubsub_publish_attrs(__TopXMLNS, _attrs, + undefined), {pubsub_publish, Node, Items}. -decode_pubsub_publish_els([], Items) -> +decode_pubsub_publish_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_pubsub_publish_els([{xmlel, <<"item">>, _attrs, - _} = - _el - | _els], +decode_pubsub_publish_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_publish_els(_els, - [decode_pubsub_item(_el) | Items]); - true -> decode_pubsub_publish_els(_els, Items) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_publish_els(__TopXMLNS, _els, + [decode_pubsub_item(__TopXMLNS, _el) + | Items]); + true -> + decode_pubsub_publish_els(__TopXMLNS, _els, Items) end; -decode_pubsub_publish_els([_ | _els], Items) -> - decode_pubsub_publish_els(_els, Items). +decode_pubsub_publish_els(__TopXMLNS, [_ | _els], + Items) -> + decode_pubsub_publish_els(__TopXMLNS, _els, Items). -decode_pubsub_publish_attrs([{<<"node">>, _val} - | _attrs], - _Node) -> - decode_pubsub_publish_attrs(_attrs, _val); -decode_pubsub_publish_attrs([_ | _attrs], Node) -> - decode_pubsub_publish_attrs(_attrs, Node); -decode_pubsub_publish_attrs([], Node) -> - decode_pubsub_publish_attr_node(Node). +decode_pubsub_publish_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node) -> + decode_pubsub_publish_attrs(__TopXMLNS, _attrs, _val); +decode_pubsub_publish_attrs(__TopXMLNS, [_ | _attrs], + Node) -> + decode_pubsub_publish_attrs(__TopXMLNS, _attrs, Node); +decode_pubsub_publish_attrs(__TopXMLNS, [], Node) -> + decode_pubsub_publish_attr_node(__TopXMLNS, Node). encode_pubsub_publish({pubsub_publish, Node, Items}, _xmlns_attrs) -> @@ -4967,45 +5424,47 @@ encode_pubsub_publish({pubsub_publish, Node, Items}, 'encode_pubsub_publish_$items'(_els, [encode_pubsub_item(Items, []) | _acc]). -decode_pubsub_publish_attr_node(undefined) -> +decode_pubsub_publish_attr_node(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"node">>, <<"publish">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_publish_attr_node(_val) -> _val. + {missing_attr, <<"node">>, <<"publish">>, __TopXMLNS}}); +decode_pubsub_publish_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_publish_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_unsubscribe({xmlel, <<"unsubscribe">>, - _attrs, _els}) -> +decode_pubsub_unsubscribe(__TopXMLNS, + {xmlel, <<"unsubscribe">>, _attrs, _els}) -> {Node, Subid, Jid} = - decode_pubsub_unsubscribe_attrs(_attrs, undefined, - undefined, undefined), + decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined), {pubsub_unsubscribe, Node, Jid, Subid}. -decode_pubsub_unsubscribe_attrs([{<<"node">>, _val} - | _attrs], - _Node, Subid, Jid) -> - decode_pubsub_unsubscribe_attrs(_attrs, _val, Subid, - Jid); -decode_pubsub_unsubscribe_attrs([{<<"subid">>, _val} - | _attrs], - Node, _Subid, Jid) -> - decode_pubsub_unsubscribe_attrs(_attrs, Node, _val, - Jid); -decode_pubsub_unsubscribe_attrs([{<<"jid">>, _val} - | _attrs], - Node, Subid, _Jid) -> - decode_pubsub_unsubscribe_attrs(_attrs, Node, Subid, - _val); -decode_pubsub_unsubscribe_attrs([_ | _attrs], Node, +decode_pubsub_unsubscribe_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node, Subid, + Jid) -> + decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, + _val, Subid, Jid); +decode_pubsub_unsubscribe_attrs(__TopXMLNS, + [{<<"subid">>, _val} | _attrs], Node, _Subid, + Jid) -> + decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, + Node, _val, Jid); +decode_pubsub_unsubscribe_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Node, Subid, + _Jid) -> + decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, + Node, Subid, _val); +decode_pubsub_unsubscribe_attrs(__TopXMLNS, + [_ | _attrs], Node, Subid, Jid) -> + decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, + Node, Subid, Jid); +decode_pubsub_unsubscribe_attrs(__TopXMLNS, [], Node, Subid, Jid) -> - decode_pubsub_unsubscribe_attrs(_attrs, Node, Subid, - Jid); -decode_pubsub_unsubscribe_attrs([], Node, Subid, Jid) -> - {decode_pubsub_unsubscribe_attr_node(Node), - decode_pubsub_unsubscribe_attr_subid(Subid), - decode_pubsub_unsubscribe_attr_jid(Jid)}. + {decode_pubsub_unsubscribe_attr_node(__TopXMLNS, Node), + decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, Subid), + decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_unsubscribe({pubsub_unsubscribe, Node, Jid, Subid}, @@ -5017,60 +5476,68 @@ encode_pubsub_unsubscribe({pubsub_unsubscribe, Node, _xmlns_attrs))), {xmlel, <<"unsubscribe">>, _attrs, _els}. -decode_pubsub_unsubscribe_attr_node(undefined) -> +decode_pubsub_unsubscribe_attr_node(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_unsubscribe_attr_node(_val) -> _val. +decode_pubsub_unsubscribe_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_unsubscribe_attr_node(undefined, _acc) -> _acc; encode_pubsub_unsubscribe_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_unsubscribe_attr_subid(undefined) -> +decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_unsubscribe_attr_subid(_val) -> _val. +decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, + _val) -> + _val. encode_pubsub_unsubscribe_attr_subid(undefined, _acc) -> _acc; encode_pubsub_unsubscribe_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. -decode_pubsub_unsubscribe_attr_jid(undefined) -> +decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"unsubscribe">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_unsubscribe_attr_jid(_val) -> + __TopXMLNS}}); +decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"unsubscribe">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. encode_pubsub_unsubscribe_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_pubsub_subscribe({xmlel, <<"subscribe">>, _attrs, - _els}) -> - {Node, Jid} = decode_pubsub_subscribe_attrs(_attrs, - undefined, undefined), +decode_pubsub_subscribe(__TopXMLNS, + {xmlel, <<"subscribe">>, _attrs, _els}) -> + {Node, Jid} = decode_pubsub_subscribe_attrs(__TopXMLNS, + _attrs, undefined, undefined), {pubsub_subscribe, Node, Jid}. -decode_pubsub_subscribe_attrs([{<<"node">>, _val} - | _attrs], - _Node, Jid) -> - decode_pubsub_subscribe_attrs(_attrs, _val, Jid); -decode_pubsub_subscribe_attrs([{<<"jid">>, _val} - | _attrs], - Node, _Jid) -> - decode_pubsub_subscribe_attrs(_attrs, Node, _val); -decode_pubsub_subscribe_attrs([_ | _attrs], Node, +decode_pubsub_subscribe_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node, Jid) -> + decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, _val, + Jid); +decode_pubsub_subscribe_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Node, _Jid) -> + decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, Node, + _val); +decode_pubsub_subscribe_attrs(__TopXMLNS, [_ | _attrs], + Node, Jid) -> + decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, Node, + Jid); +decode_pubsub_subscribe_attrs(__TopXMLNS, [], Node, Jid) -> - decode_pubsub_subscribe_attrs(_attrs, Node, Jid); -decode_pubsub_subscribe_attrs([], Node, Jid) -> - {decode_pubsub_subscribe_attr_node(Node), - decode_pubsub_subscribe_attr_jid(Jid)}. + {decode_pubsub_subscribe_attr_node(__TopXMLNS, Node), + decode_pubsub_subscribe_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_subscribe({pubsub_subscribe, Node, Jid}, _xmlns_attrs) -> @@ -5080,55 +5547,61 @@ encode_pubsub_subscribe({pubsub_subscribe, Node, Jid}, _xmlns_attrs)), {xmlel, <<"subscribe">>, _attrs, _els}. -decode_pubsub_subscribe_attr_node(undefined) -> +decode_pubsub_subscribe_attr_node(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_subscribe_attr_node(_val) -> _val. +decode_pubsub_subscribe_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_subscribe_attr_node(undefined, _acc) -> _acc; encode_pubsub_subscribe_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_subscribe_attr_jid(undefined) -> +decode_pubsub_subscribe_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"subscribe">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_subscribe_attr_jid(_val) -> + __TopXMLNS}}); +decode_pubsub_subscribe_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"subscribe">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. encode_pubsub_subscribe_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_pubsub_affiliations({xmlel, <<"affiliations">>, - _attrs, _els}) -> - Affiliations = decode_pubsub_affiliations_els(_els, []), +decode_pubsub_affiliations(__TopXMLNS, + {xmlel, <<"affiliations">>, _attrs, _els}) -> + Affiliations = + decode_pubsub_affiliations_els(__TopXMLNS, _els, []), Affiliations. -decode_pubsub_affiliations_els([], Affiliations) -> +decode_pubsub_affiliations_els(__TopXMLNS, [], + Affiliations) -> lists:reverse(Affiliations); -decode_pubsub_affiliations_els([{xmlel, - <<"affiliation">>, _attrs, _} = - _el +decode_pubsub_affiliations_els(__TopXMLNS, + [{xmlel, <<"affiliation">>, _attrs, _} = _el | _els], Affiliations) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_affiliations_els(_els, - [decode_pubsub_affiliation(_el) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_affiliations_els(__TopXMLNS, _els, + [decode_pubsub_affiliation(__TopXMLNS, + _el) | Affiliations]); true -> - decode_pubsub_affiliations_els(_els, Affiliations) + decode_pubsub_affiliations_els(__TopXMLNS, _els, + Affiliations) end; -decode_pubsub_affiliations_els([_ | _els], +decode_pubsub_affiliations_els(__TopXMLNS, [_ | _els], Affiliations) -> - decode_pubsub_affiliations_els(_els, Affiliations). + decode_pubsub_affiliations_els(__TopXMLNS, _els, + Affiliations). encode_pubsub_affiliations(Affiliations, _xmlns_attrs) -> @@ -5148,42 +5621,47 @@ encode_pubsub_affiliations(Affiliations, []) | _acc]). -decode_pubsub_subscriptions({xmlel, <<"subscriptions">>, - _attrs, _els}) -> - Subscriptions = decode_pubsub_subscriptions_els(_els, - []), - Node = decode_pubsub_subscriptions_attrs(_attrs, - undefined), +decode_pubsub_subscriptions(__TopXMLNS, + {xmlel, <<"subscriptions">>, _attrs, _els}) -> + Subscriptions = + decode_pubsub_subscriptions_els(__TopXMLNS, _els, []), + Node = decode_pubsub_subscriptions_attrs(__TopXMLNS, + _attrs, undefined), {Node, Subscriptions}. -decode_pubsub_subscriptions_els([], Subscriptions) -> +decode_pubsub_subscriptions_els(__TopXMLNS, [], + Subscriptions) -> lists:reverse(Subscriptions); -decode_pubsub_subscriptions_els([{xmlel, - <<"subscription">>, _attrs, _} = - _el +decode_pubsub_subscriptions_els(__TopXMLNS, + [{xmlel, <<"subscription">>, _attrs, _} = _el | _els], Subscriptions) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_subscriptions_els(_els, - [decode_pubsub_subscription(_el) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_subscriptions_els(__TopXMLNS, _els, + [decode_pubsub_subscription(__TopXMLNS, + _el) | Subscriptions]); true -> - decode_pubsub_subscriptions_els(_els, Subscriptions) + decode_pubsub_subscriptions_els(__TopXMLNS, _els, + Subscriptions) end; -decode_pubsub_subscriptions_els([_ | _els], +decode_pubsub_subscriptions_els(__TopXMLNS, [_ | _els], Subscriptions) -> - decode_pubsub_subscriptions_els(_els, Subscriptions). - -decode_pubsub_subscriptions_attrs([{<<"node">>, _val} - | _attrs], - _Node) -> - decode_pubsub_subscriptions_attrs(_attrs, _val); -decode_pubsub_subscriptions_attrs([_ | _attrs], Node) -> - decode_pubsub_subscriptions_attrs(_attrs, Node); -decode_pubsub_subscriptions_attrs([], Node) -> - decode_pubsub_subscriptions_attr_node(Node). + decode_pubsub_subscriptions_els(__TopXMLNS, _els, + Subscriptions). + +decode_pubsub_subscriptions_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node) -> + decode_pubsub_subscriptions_attrs(__TopXMLNS, _attrs, + _val); +decode_pubsub_subscriptions_attrs(__TopXMLNS, + [_ | _attrs], Node) -> + decode_pubsub_subscriptions_attrs(__TopXMLNS, _attrs, + Node); +decode_pubsub_subscriptions_attrs(__TopXMLNS, [], + Node) -> + decode_pubsub_subscriptions_attr_node(__TopXMLNS, Node). encode_pubsub_subscriptions({Node, Subscriptions}, _xmlns_attrs) -> @@ -5205,37 +5683,38 @@ encode_pubsub_subscriptions({Node, Subscriptions}, []) | _acc]). -decode_pubsub_subscriptions_attr_node(undefined) -> +decode_pubsub_subscriptions_attr_node(__TopXMLNS, + undefined) -> none; -decode_pubsub_subscriptions_attr_node(_val) -> _val. +decode_pubsub_subscriptions_attr_node(__TopXMLNS, + _val) -> + _val. encode_pubsub_subscriptions_attr_node(none, _acc) -> _acc; encode_pubsub_subscriptions_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_event({xmlel, <<"event">>, _attrs, - _els}) -> - Items = decode_pubsub_event_els(_els, []), +decode_pubsub_event(__TopXMLNS, + {xmlel, <<"event">>, _attrs, _els}) -> + Items = decode_pubsub_event_els(__TopXMLNS, _els, []), {pubsub_event, Items}. -decode_pubsub_event_els([], Items) -> +decode_pubsub_event_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_pubsub_event_els([{xmlel, <<"items">>, _attrs, - _} = - _el - | _els], +decode_pubsub_event_els(__TopXMLNS, + [{xmlel, <<"items">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/pubsub#event">> -> - decode_pubsub_event_els(_els, - [decode_pubsub_event_items(_el) | Items]); - true -> decode_pubsub_event_els(_els, Items) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_event_els(__TopXMLNS, _els, + [decode_pubsub_event_items(__TopXMLNS, _el) + | Items]); + true -> decode_pubsub_event_els(__TopXMLNS, _els, Items) end; -decode_pubsub_event_els([_ | _els], Items) -> - decode_pubsub_event_els(_els, Items). +decode_pubsub_event_els(__TopXMLNS, [_ | _els], + Items) -> + decode_pubsub_event_els(__TopXMLNS, _els, Items). encode_pubsub_event({pubsub_event, Items}, _xmlns_attrs) -> @@ -5248,59 +5727,59 @@ encode_pubsub_event({pubsub_event, Items}, 'encode_pubsub_event_$items'(_els, [encode_pubsub_event_items(Items, []) | _acc]). -decode_pubsub_event_items({xmlel, <<"items">>, _attrs, - _els}) -> - {Items, Retract} = decode_pubsub_event_items_els(_els, - [], []), - Node = decode_pubsub_event_items_attrs(_attrs, - undefined), +decode_pubsub_event_items(__TopXMLNS, + {xmlel, <<"items">>, _attrs, _els}) -> + {Items, Retract} = + decode_pubsub_event_items_els(__TopXMLNS, _els, [], []), + Node = decode_pubsub_event_items_attrs(__TopXMLNS, + _attrs, undefined), {pubsub_event_items, Node, Retract, Items}. -decode_pubsub_event_items_els([], Items, Retract) -> +decode_pubsub_event_items_els(__TopXMLNS, [], Items, + Retract) -> {lists:reverse(Items), lists:reverse(Retract)}; -decode_pubsub_event_items_els([{xmlel, <<"retract">>, - _attrs, _} = - _el - | _els], +decode_pubsub_event_items_els(__TopXMLNS, + [{xmlel, <<"retract">>, _attrs, _} = _el | _els], Items, Retract) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/pubsub#event">> -> - decode_pubsub_event_items_els(_els, Items, - [decode_pubsub_event_retract(_el) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_event_items_els(__TopXMLNS, _els, Items, + [decode_pubsub_event_retract(__TopXMLNS, + _el) | Retract]); true -> - decode_pubsub_event_items_els(_els, Items, Retract) + decode_pubsub_event_items_els(__TopXMLNS, _els, Items, + Retract) end; -decode_pubsub_event_items_els([{xmlel, <<"item">>, - _attrs, _} = - _el - | _els], +decode_pubsub_event_items_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items, Retract) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/pubsub#event">> -> - decode_pubsub_event_items_els(_els, - [decode_pubsub_event_item(_el) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_event_items_els(__TopXMLNS, _els, + [decode_pubsub_event_item(__TopXMLNS, + _el) | Items], Retract); true -> - decode_pubsub_event_items_els(_els, Items, Retract) + decode_pubsub_event_items_els(__TopXMLNS, _els, Items, + Retract) end; -decode_pubsub_event_items_els([_ | _els], Items, - Retract) -> - decode_pubsub_event_items_els(_els, Items, Retract). +decode_pubsub_event_items_els(__TopXMLNS, [_ | _els], + Items, Retract) -> + decode_pubsub_event_items_els(__TopXMLNS, _els, Items, + Retract). -decode_pubsub_event_items_attrs([{<<"node">>, _val} - | _attrs], - _Node) -> - decode_pubsub_event_items_attrs(_attrs, _val); -decode_pubsub_event_items_attrs([_ | _attrs], Node) -> - decode_pubsub_event_items_attrs(_attrs, Node); -decode_pubsub_event_items_attrs([], Node) -> - decode_pubsub_event_items_attr_node(Node). +decode_pubsub_event_items_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node) -> + decode_pubsub_event_items_attrs(__TopXMLNS, _attrs, + _val); +decode_pubsub_event_items_attrs(__TopXMLNS, + [_ | _attrs], Node) -> + decode_pubsub_event_items_attrs(__TopXMLNS, _attrs, + Node); +decode_pubsub_event_items_attrs(__TopXMLNS, [], Node) -> + decode_pubsub_event_items_attr_node(__TopXMLNS, Node). encode_pubsub_event_items({pubsub_event_items, Node, Retract, Items}, @@ -5327,45 +5806,48 @@ encode_pubsub_event_items({pubsub_event_items, Node, []) | _acc]). -decode_pubsub_event_items_attr_node(undefined) -> +decode_pubsub_event_items_attr_node(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"node">>, <<"items">>, - <<"http://jabber.org/protocol/pubsub#event">>}}); -decode_pubsub_event_items_attr_node(_val) -> _val. + {missing_attr, <<"node">>, <<"items">>, __TopXMLNS}}); +decode_pubsub_event_items_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_event_items_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_event_item({xmlel, <<"item">>, _attrs, - _els}) -> +decode_pubsub_event_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> {Id, Node, Publisher} = - decode_pubsub_event_item_attrs(_attrs, undefined, - undefined, undefined), + decode_pubsub_event_item_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined), {pubsub_event_item, Id, Node, Publisher}. -decode_pubsub_event_item_attrs([{<<"id">>, _val} - | _attrs], - _Id, Node, Publisher) -> - decode_pubsub_event_item_attrs(_attrs, _val, Node, - Publisher); -decode_pubsub_event_item_attrs([{<<"node">>, _val} - | _attrs], - Id, _Node, Publisher) -> - decode_pubsub_event_item_attrs(_attrs, Id, _val, - Publisher); -decode_pubsub_event_item_attrs([{<<"publisher">>, _val} - | _attrs], - Id, Node, _Publisher) -> - decode_pubsub_event_item_attrs(_attrs, Id, Node, _val); -decode_pubsub_event_item_attrs([_ | _attrs], Id, Node, +decode_pubsub_event_item_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id, Node, + Publisher) -> + decode_pubsub_event_item_attrs(__TopXMLNS, _attrs, _val, + Node, Publisher); +decode_pubsub_event_item_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], Id, _Node, Publisher) -> - decode_pubsub_event_item_attrs(_attrs, Id, Node, - Publisher); -decode_pubsub_event_item_attrs([], Id, Node, + decode_pubsub_event_item_attrs(__TopXMLNS, _attrs, Id, + _val, Publisher); +decode_pubsub_event_item_attrs(__TopXMLNS, + [{<<"publisher">>, _val} | _attrs], Id, Node, + _Publisher) -> + decode_pubsub_event_item_attrs(__TopXMLNS, _attrs, Id, + Node, _val); +decode_pubsub_event_item_attrs(__TopXMLNS, [_ | _attrs], + Id, Node, Publisher) -> + decode_pubsub_event_item_attrs(__TopXMLNS, _attrs, Id, + Node, Publisher); +decode_pubsub_event_item_attrs(__TopXMLNS, [], Id, Node, Publisher) -> - {decode_pubsub_event_item_attr_id(Id), - decode_pubsub_event_item_attr_node(Node), - decode_pubsub_event_item_attr_publisher(Publisher)}. + {decode_pubsub_event_item_attr_id(__TopXMLNS, Id), + decode_pubsub_event_item_attr_node(__TopXMLNS, Node), + decode_pubsub_event_item_attr_publisher(__TopXMLNS, + Publisher)}. encode_pubsub_event_item({pubsub_event_item, Id, Node, Publisher}, @@ -5378,27 +5860,34 @@ encode_pubsub_event_item({pubsub_event_item, Id, Node, _xmlns_attrs))), {xmlel, <<"item">>, _attrs, _els}. -decode_pubsub_event_item_attr_id(undefined) -> +decode_pubsub_event_item_attr_id(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_event_item_attr_id(_val) -> _val. +decode_pubsub_event_item_attr_id(__TopXMLNS, _val) -> + _val. encode_pubsub_event_item_attr_id(undefined, _acc) -> _acc; encode_pubsub_event_item_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_pubsub_event_item_attr_node(undefined) -> +decode_pubsub_event_item_attr_node(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_event_item_attr_node(_val) -> _val. +decode_pubsub_event_item_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_event_item_attr_node(undefined, _acc) -> _acc; encode_pubsub_event_item_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_event_item_attr_publisher(undefined) -> +decode_pubsub_event_item_attr_publisher(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_event_item_attr_publisher(_val) -> _val. +decode_pubsub_event_item_attr_publisher(__TopXMLNS, + _val) -> + _val. encode_pubsub_event_item_attr_publisher(undefined, _acc) -> @@ -5406,20 +5895,22 @@ encode_pubsub_event_item_attr_publisher(undefined, encode_pubsub_event_item_attr_publisher(_val, _acc) -> [{<<"publisher">>, _val} | _acc]. -decode_pubsub_event_retract({xmlel, <<"retract">>, - _attrs, _els}) -> - Id = decode_pubsub_event_retract_attrs(_attrs, - undefined), +decode_pubsub_event_retract(__TopXMLNS, + {xmlel, <<"retract">>, _attrs, _els}) -> + Id = decode_pubsub_event_retract_attrs(__TopXMLNS, + _attrs, undefined), Id. -decode_pubsub_event_retract_attrs([{<<"id">>, _val} - | _attrs], - _Id) -> - decode_pubsub_event_retract_attrs(_attrs, _val); -decode_pubsub_event_retract_attrs([_ | _attrs], Id) -> - decode_pubsub_event_retract_attrs(_attrs, Id); -decode_pubsub_event_retract_attrs([], Id) -> - decode_pubsub_event_retract_attr_id(Id). +decode_pubsub_event_retract_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id) -> + decode_pubsub_event_retract_attrs(__TopXMLNS, _attrs, + _val); +decode_pubsub_event_retract_attrs(__TopXMLNS, + [_ | _attrs], Id) -> + decode_pubsub_event_retract_attrs(__TopXMLNS, _attrs, + Id); +decode_pubsub_event_retract_attrs(__TopXMLNS, [], Id) -> + decode_pubsub_event_retract_attr_id(__TopXMLNS, Id). encode_pubsub_event_retract(Id, _xmlns_attrs) -> _els = [], @@ -5427,61 +5918,64 @@ encode_pubsub_event_retract(Id, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"retract">>, _attrs, _els}. -decode_pubsub_event_retract_attr_id(undefined) -> +decode_pubsub_event_retract_attr_id(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"id">>, <<"retract">>, - <<"http://jabber.org/protocol/pubsub#event">>}}); -decode_pubsub_event_retract_attr_id(_val) -> _val. + {missing_attr, <<"id">>, <<"retract">>, __TopXMLNS}}); +decode_pubsub_event_retract_attr_id(__TopXMLNS, _val) -> + _val. encode_pubsub_event_retract_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_pubsub_items({xmlel, <<"items">>, _attrs, - _els}) -> - Items = decode_pubsub_items_els(_els, []), +decode_pubsub_items(__TopXMLNS, + {xmlel, <<"items">>, _attrs, _els}) -> + Items = decode_pubsub_items_els(__TopXMLNS, _els, []), {Max_items, Node, Subid} = - decode_pubsub_items_attrs(_attrs, undefined, undefined, - undefined), + decode_pubsub_items_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined), {pubsub_items, Node, Max_items, Subid, Items}. -decode_pubsub_items_els([], Items) -> +decode_pubsub_items_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_pubsub_items_els([{xmlel, <<"item">>, _attrs, - _} = - _el - | _els], - Items) -> +decode_pubsub_items_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/pubsub">> -> - decode_pubsub_items_els(_els, - [decode_pubsub_item(_el) | Items]); - true -> decode_pubsub_items_els(_els, Items) - end; -decode_pubsub_items_els([_ | _els], Items) -> - decode_pubsub_items_els(_els, Items). - -decode_pubsub_items_attrs([{<<"max_items">>, _val} - | _attrs], - _Max_items, Node, Subid) -> - decode_pubsub_items_attrs(_attrs, _val, Node, Subid); -decode_pubsub_items_attrs([{<<"node">>, _val} | _attrs], - Max_items, _Node, Subid) -> - decode_pubsub_items_attrs(_attrs, Max_items, _val, - Subid); -decode_pubsub_items_attrs([{<<"subid">>, _val} - | _attrs], - Max_items, Node, _Subid) -> - decode_pubsub_items_attrs(_attrs, Max_items, Node, - _val); -decode_pubsub_items_attrs([_ | _attrs], Max_items, Node, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_pubsub_items_els(__TopXMLNS, _els, + [decode_pubsub_item(__TopXMLNS, _el) + | Items]); + true -> decode_pubsub_items_els(__TopXMLNS, _els, Items) + end; +decode_pubsub_items_els(__TopXMLNS, [_ | _els], + Items) -> + decode_pubsub_items_els(__TopXMLNS, _els, Items). + +decode_pubsub_items_attrs(__TopXMLNS, + [{<<"max_items">>, _val} | _attrs], _Max_items, Node, + Subid) -> + decode_pubsub_items_attrs(__TopXMLNS, _attrs, _val, + Node, Subid); +decode_pubsub_items_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], Max_items, _Node, Subid) -> - decode_pubsub_items_attrs(_attrs, Max_items, Node, - Subid); -decode_pubsub_items_attrs([], Max_items, Node, Subid) -> - {decode_pubsub_items_attr_max_items(Max_items), - decode_pubsub_items_attr_node(Node), - decode_pubsub_items_attr_subid(Subid)}. + decode_pubsub_items_attrs(__TopXMLNS, _attrs, Max_items, + _val, Subid); +decode_pubsub_items_attrs(__TopXMLNS, + [{<<"subid">>, _val} | _attrs], Max_items, Node, + _Subid) -> + decode_pubsub_items_attrs(__TopXMLNS, _attrs, Max_items, + Node, _val); +decode_pubsub_items_attrs(__TopXMLNS, [_ | _attrs], + Max_items, Node, Subid) -> + decode_pubsub_items_attrs(__TopXMLNS, _attrs, Max_items, + Node, Subid); +decode_pubsub_items_attrs(__TopXMLNS, [], Max_items, + Node, Subid) -> + {decode_pubsub_items_attr_max_items(__TopXMLNS, + Max_items), + decode_pubsub_items_attr_node(__TopXMLNS, Node), + decode_pubsub_items_attr_subid(__TopXMLNS, Subid)}. encode_pubsub_items({pubsub_items, Node, Max_items, Subid, Items}, @@ -5498,14 +5992,15 @@ encode_pubsub_items({pubsub_items, Node, Max_items, 'encode_pubsub_items_$items'(_els, [encode_pubsub_item(Items, []) | _acc]). -decode_pubsub_items_attr_max_items(undefined) -> +decode_pubsub_items_attr_max_items(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_items_attr_max_items(_val) -> +decode_pubsub_items_attr_max_items(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max_items">>, <<"items">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. @@ -5514,42 +6009,48 @@ encode_pubsub_items_attr_max_items(undefined, _acc) -> encode_pubsub_items_attr_max_items(_val, _acc) -> [{<<"max_items">>, enc_int(_val)} | _acc]. -decode_pubsub_items_attr_node(undefined) -> +decode_pubsub_items_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"node">>, <<"items">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_items_attr_node(_val) -> _val. + {missing_attr, <<"node">>, <<"items">>, __TopXMLNS}}); +decode_pubsub_items_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_items_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_items_attr_subid(undefined) -> undefined; -decode_pubsub_items_attr_subid(_val) -> _val. +decode_pubsub_items_attr_subid(__TopXMLNS, undefined) -> + undefined; +decode_pubsub_items_attr_subid(__TopXMLNS, _val) -> + _val. encode_pubsub_items_attr_subid(undefined, _acc) -> _acc; encode_pubsub_items_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. -decode_pubsub_item({xmlel, <<"item">>, _attrs, _els}) -> - __Xmls = decode_pubsub_item_els(_els, []), - Id = decode_pubsub_item_attrs(_attrs, undefined), +decode_pubsub_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + __Xmls = decode_pubsub_item_els(__TopXMLNS, _els, []), + Id = decode_pubsub_item_attrs(__TopXMLNS, _attrs, + undefined), {pubsub_item, Id, __Xmls}. -decode_pubsub_item_els([], __Xmls) -> +decode_pubsub_item_els(__TopXMLNS, [], __Xmls) -> lists:reverse(__Xmls); -decode_pubsub_item_els([{xmlel, _, _, _} = _el | _els], +decode_pubsub_item_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], __Xmls) -> + decode_pubsub_item_els(__TopXMLNS, _els, + [_el | __Xmls]); +decode_pubsub_item_els(__TopXMLNS, [_ | _els], __Xmls) -> - decode_pubsub_item_els(_els, [_el | __Xmls]); -decode_pubsub_item_els([_ | _els], __Xmls) -> - decode_pubsub_item_els(_els, __Xmls). - -decode_pubsub_item_attrs([{<<"id">>, _val} | _attrs], - _Id) -> - decode_pubsub_item_attrs(_attrs, _val); -decode_pubsub_item_attrs([_ | _attrs], Id) -> - decode_pubsub_item_attrs(_attrs, Id); -decode_pubsub_item_attrs([], Id) -> - decode_pubsub_item_attr_id(Id). + decode_pubsub_item_els(__TopXMLNS, _els, __Xmls). + +decode_pubsub_item_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id) -> + decode_pubsub_item_attrs(__TopXMLNS, _attrs, _val); +decode_pubsub_item_attrs(__TopXMLNS, [_ | _attrs], + Id) -> + decode_pubsub_item_attrs(__TopXMLNS, _attrs, Id); +decode_pubsub_item_attrs(__TopXMLNS, [], Id) -> + decode_pubsub_item_attr_id(__TopXMLNS, Id). encode_pubsub_item({pubsub_item, Id, __Xmls}, _xmlns_attrs) -> @@ -5557,34 +6058,39 @@ encode_pubsub_item({pubsub_item, Id, __Xmls}, _attrs = encode_pubsub_item_attr_id(Id, _xmlns_attrs), {xmlel, <<"item">>, _attrs, _els}. -decode_pubsub_item_attr_id(undefined) -> undefined; -decode_pubsub_item_attr_id(_val) -> _val. +decode_pubsub_item_attr_id(__TopXMLNS, undefined) -> + undefined; +decode_pubsub_item_attr_id(__TopXMLNS, _val) -> _val. encode_pubsub_item_attr_id(undefined, _acc) -> _acc; encode_pubsub_item_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_pubsub_affiliation({xmlel, <<"affiliation">>, - _attrs, _els}) -> - {Node, Type} = decode_pubsub_affiliation_attrs(_attrs, - undefined, undefined), +decode_pubsub_affiliation(__TopXMLNS, + {xmlel, <<"affiliation">>, _attrs, _els}) -> + {Node, Type} = + decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, + undefined, undefined), {pubsub_affiliation, Node, Type}. -decode_pubsub_affiliation_attrs([{<<"node">>, _val} - | _attrs], - _Node, Type) -> - decode_pubsub_affiliation_attrs(_attrs, _val, Type); -decode_pubsub_affiliation_attrs([{<<"affiliation">>, - _val} - | _attrs], - Node, _Type) -> - decode_pubsub_affiliation_attrs(_attrs, Node, _val); -decode_pubsub_affiliation_attrs([_ | _attrs], Node, +decode_pubsub_affiliation_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node, Type) -> + decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, + _val, Type); +decode_pubsub_affiliation_attrs(__TopXMLNS, + [{<<"affiliation">>, _val} | _attrs], Node, + _Type) -> + decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, + Node, _val); +decode_pubsub_affiliation_attrs(__TopXMLNS, + [_ | _attrs], Node, Type) -> + decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, + Node, Type); +decode_pubsub_affiliation_attrs(__TopXMLNS, [], Node, Type) -> - decode_pubsub_affiliation_attrs(_attrs, Node, Type); -decode_pubsub_affiliation_attrs([], Node, Type) -> - {decode_pubsub_affiliation_attr_node(Node), - decode_pubsub_affiliation_attr_affiliation(Type)}. + {decode_pubsub_affiliation_attr_node(__TopXMLNS, Node), + decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, + Type)}. encode_pubsub_affiliation({pubsub_affiliation, Node, Type}, @@ -5596,20 +6102,24 @@ encode_pubsub_affiliation({pubsub_affiliation, Node, _xmlns_attrs)), {xmlel, <<"affiliation">>, _attrs, _els}. -decode_pubsub_affiliation_attr_node(undefined) -> +decode_pubsub_affiliation_attr_node(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"affiliation">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_affiliation_attr_node(_val) -> _val. + __TopXMLNS}}); +decode_pubsub_affiliation_attr_node(__TopXMLNS, _val) -> + _val. encode_pubsub_affiliation_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_affiliation_attr_affiliation(undefined) -> +decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"affiliation">>, <<"affiliation">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_affiliation_attr_affiliation(_val) -> + __TopXMLNS}}); +decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, + _val) -> case catch dec_enum(_val, [member, none, outcast, owner, publisher, 'publish-only']) @@ -5617,7 +6127,7 @@ decode_pubsub_affiliation_attr_affiliation(_val) -> {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"affiliation">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. @@ -5625,44 +6135,46 @@ encode_pubsub_affiliation_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. -decode_pubsub_subscription({xmlel, <<"subscription">>, - _attrs, _els}) -> +decode_pubsub_subscription(__TopXMLNS, + {xmlel, <<"subscription">>, _attrs, _els}) -> {Jid, Node, Subid, Type} = - decode_pubsub_subscription_attrs(_attrs, undefined, - undefined, undefined, undefined), + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined, + undefined), {pubsub_subscription, Jid, Node, Subid, Type}. -decode_pubsub_subscription_attrs([{<<"jid">>, _val} - | _attrs], - _Jid, Node, Subid, Type) -> - decode_pubsub_subscription_attrs(_attrs, _val, Node, - Subid, Type); -decode_pubsub_subscription_attrs([{<<"node">>, _val} - | _attrs], - Jid, _Node, Subid, Type) -> - decode_pubsub_subscription_attrs(_attrs, Jid, _val, - Subid, Type); -decode_pubsub_subscription_attrs([{<<"subid">>, _val} - | _attrs], - Jid, Node, _Subid, Type) -> - decode_pubsub_subscription_attrs(_attrs, Jid, Node, - _val, Type); -decode_pubsub_subscription_attrs([{<<"subscription">>, - _val} - | _attrs], - Jid, Node, Subid, _Type) -> - decode_pubsub_subscription_attrs(_attrs, Jid, Node, - Subid, _val); -decode_pubsub_subscription_attrs([_ | _attrs], Jid, +decode_pubsub_subscription_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Node, + Subid, Type) -> + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + _val, Node, Subid, Type); +decode_pubsub_subscription_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], Jid, _Node, + Subid, Type) -> + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + Jid, _val, Subid, Type); +decode_pubsub_subscription_attrs(__TopXMLNS, + [{<<"subid">>, _val} | _attrs], Jid, Node, + _Subid, Type) -> + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + Jid, Node, _val, Type); +decode_pubsub_subscription_attrs(__TopXMLNS, + [{<<"subscription">>, _val} | _attrs], Jid, + Node, Subid, _Type) -> + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + Jid, Node, Subid, _val); +decode_pubsub_subscription_attrs(__TopXMLNS, + [_ | _attrs], Jid, Node, Subid, Type) -> + decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, + Jid, Node, Subid, Type); +decode_pubsub_subscription_attrs(__TopXMLNS, [], Jid, Node, Subid, Type) -> - decode_pubsub_subscription_attrs(_attrs, Jid, Node, - Subid, Type); -decode_pubsub_subscription_attrs([], Jid, Node, Subid, - Type) -> - {decode_pubsub_subscription_attr_jid(Jid), - decode_pubsub_subscription_attr_node(Node), - decode_pubsub_subscription_attr_subid(Subid), - decode_pubsub_subscription_attr_subscription(Type)}. + {decode_pubsub_subscription_attr_jid(__TopXMLNS, Jid), + decode_pubsub_subscription_attr_node(__TopXMLNS, Node), + decode_pubsub_subscription_attr_subid(__TopXMLNS, + Subid), + decode_pubsub_subscription_attr_subscription(__TopXMLNS, + Type)}. encode_pubsub_subscription({pubsub_subscription, Jid, Node, Subid, Type}, @@ -5676,34 +6188,41 @@ encode_pubsub_subscription({pubsub_subscription, Jid, _xmlns_attrs)))), {xmlel, <<"subscription">>, _attrs, _els}. -decode_pubsub_subscription_attr_jid(undefined) -> +decode_pubsub_subscription_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"subscription">>, - <<"http://jabber.org/protocol/pubsub">>}}); -decode_pubsub_subscription_attr_jid(_val) -> + __TopXMLNS}}); +decode_pubsub_subscription_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"subscription">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. encode_pubsub_subscription_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_pubsub_subscription_attr_node(undefined) -> +decode_pubsub_subscription_attr_node(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_subscription_attr_node(_val) -> _val. +decode_pubsub_subscription_attr_node(__TopXMLNS, + _val) -> + _val. encode_pubsub_subscription_attr_node(undefined, _acc) -> _acc; encode_pubsub_subscription_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_pubsub_subscription_attr_subid(undefined) -> +decode_pubsub_subscription_attr_subid(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_subscription_attr_subid(_val) -> _val. +decode_pubsub_subscription_attr_subid(__TopXMLNS, + _val) -> + _val. encode_pubsub_subscription_attr_subid(undefined, _acc) -> @@ -5711,16 +6230,18 @@ encode_pubsub_subscription_attr_subid(undefined, encode_pubsub_subscription_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. -decode_pubsub_subscription_attr_subscription(undefined) -> +decode_pubsub_subscription_attr_subscription(__TopXMLNS, + undefined) -> undefined; -decode_pubsub_subscription_attr_subscription(_val) -> +decode_pubsub_subscription_attr_subscription(__TopXMLNS, + _val) -> case catch dec_enum(_val, [none, pending, subscribed, unconfigured]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"subscription">>, <<"subscription">>, - <<"http://jabber.org/protocol/pubsub">>}}); + __TopXMLNS}}); _res -> _res end. @@ -5731,94 +6252,95 @@ encode_pubsub_subscription_attr_subscription(_val, _acc) -> [{<<"subscription">>, enc_enum(_val)} | _acc]. -decode_xdata({xmlel, <<"x">>, _attrs, _els}) -> +decode_xdata(__TopXMLNS, + {xmlel, <<"x">>, _attrs, _els}) -> {Fields, Items, Instructions, Reported, Title} = - decode_xdata_els(_els, [], [], [], undefined, - undefined), - Type = decode_xdata_attrs(_attrs, undefined), + decode_xdata_els(__TopXMLNS, _els, [], [], [], + undefined, undefined), + Type = decode_xdata_attrs(__TopXMLNS, _attrs, + undefined), {xdata, Type, Instructions, Title, Reported, Items, Fields}. -decode_xdata_els([], Fields, Items, Instructions, - Reported, Title) -> +decode_xdata_els(__TopXMLNS, [], Fields, Items, + Instructions, Reported, Title) -> {lists:reverse(Fields), lists:reverse(Items), lists:reverse(Instructions), Reported, Title}; -decode_xdata_els([{xmlel, <<"instructions">>, _attrs, - _} = - _el - | _els], +decode_xdata_els(__TopXMLNS, + [{xmlel, <<"instructions">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_els(_els, Fields, Items, - case decode_xdata_instructions(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + case decode_xdata_instructions(__TopXMLNS, _el) of undefined -> Instructions; _new_el -> [_new_el | Instructions] end, Reported, Title); true -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title) + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title) end; -decode_xdata_els([{xmlel, <<"title">>, _attrs, _} = _el - | _els], - Fields, Items, Instructions, Reported, Title) -> +decode_xdata_els(__TopXMLNS, + [{xmlel, <<"title">>, _attrs, _} = _el | _els], Fields, + Items, Instructions, Reported, Title) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, decode_xdata_title(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, + decode_xdata_title(__TopXMLNS, _el)); true -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title) + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title) end; -decode_xdata_els([{xmlel, <<"reported">>, _attrs, _} = - _el - | _els], +decode_xdata_els(__TopXMLNS, + [{xmlel, <<"reported">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_els(_els, Fields, Items, Instructions, - decode_xdata_reported(_el), Title); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, + decode_xdata_reported(__TopXMLNS, _el), Title); true -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title) + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title) end; -decode_xdata_els([{xmlel, <<"item">>, _attrs, _} = _el - | _els], - Fields, Items, Instructions, Reported, Title) -> +decode_xdata_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Fields, + Items, Instructions, Reported, Title) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_els(_els, Fields, - [decode_xdata_item(_el) | Items], Instructions, - Reported, Title); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_els(__TopXMLNS, _els, Fields, + [decode_xdata_item(__TopXMLNS, _el) | Items], + Instructions, Reported, Title); true -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title) + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title) end; -decode_xdata_els([{xmlel, <<"field">>, _attrs, _} = _el - | _els], - Fields, Items, Instructions, Reported, Title) -> +decode_xdata_els(__TopXMLNS, + [{xmlel, <<"field">>, _attrs, _} = _el | _els], Fields, + Items, Instructions, Reported, Title) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_els(_els, - [decode_xdata_field(_el) | Fields], Items, - Instructions, Reported, Title); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_els(__TopXMLNS, _els, + [decode_xdata_field(__TopXMLNS, _el) | Fields], + Items, Instructions, Reported, Title); true -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title) + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title) end; -decode_xdata_els([_ | _els], Fields, Items, +decode_xdata_els(__TopXMLNS, [_ | _els], Fields, Items, Instructions, Reported, Title) -> - decode_xdata_els(_els, Fields, Items, Instructions, - Reported, Title). + decode_xdata_els(__TopXMLNS, _els, Fields, Items, + Instructions, Reported, Title). -decode_xdata_attrs([{<<"type">>, _val} | _attrs], - _Type) -> - decode_xdata_attrs(_attrs, _val); -decode_xdata_attrs([_ | _attrs], Type) -> - decode_xdata_attrs(_attrs, Type); -decode_xdata_attrs([], Type) -> - decode_xdata_attr_type(Type). +decode_xdata_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], _Type) -> + decode_xdata_attrs(__TopXMLNS, _attrs, _val); +decode_xdata_attrs(__TopXMLNS, [_ | _attrs], Type) -> + decode_xdata_attrs(__TopXMLNS, _attrs, Type); +decode_xdata_attrs(__TopXMLNS, [], Type) -> + decode_xdata_attr_type(__TopXMLNS, Type). encode_xdata({xdata, Type, Instructions, Title, Reported, Items, Fields}, @@ -5857,1014 +6379,1057 @@ encode_xdata({xdata, Type, Instructions, Title, 'encode_xdata_$title'(Title, _acc) -> [encode_xdata_title(Title, []) | _acc]. -decode_xdata_attr_type(undefined) -> +decode_xdata_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"type">>, <<"x">>, - <<"jabber:x:data">>}}); -decode_xdata_attr_type(_val) -> + {missing_attr, <<"type">>, <<"x">>, __TopXMLNS}}); +decode_xdata_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [cancel, form, result, submit]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"type">>, <<"x">>, - <<"jabber:x:data">>}}); + {bad_attr_value, <<"type">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_xdata_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_xdata_item({xmlel, <<"item">>, _attrs, _els}) -> - Fields = decode_xdata_item_els(_els, []), Fields. - -decode_xdata_item_els([], Fields) -> - lists:reverse(Fields); -decode_xdata_item_els([{xmlel, <<"field">>, _attrs, _} = - _el - | _els], - Fields) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_item_els(_els, - [decode_xdata_field(_el) | Fields]); - true -> decode_xdata_item_els(_els, Fields) - end; -decode_xdata_item_els([_ | _els], Fields) -> - decode_xdata_item_els(_els, Fields). - -encode_xdata_item(Fields, _xmlns_attrs) -> - _els = 'encode_xdata_item_$fields'(Fields, []), - _attrs = _xmlns_attrs, - {xmlel, <<"item">>, _attrs, _els}. - -'encode_xdata_item_$fields'([], _acc) -> _acc; -'encode_xdata_item_$fields'([Fields | _els], _acc) -> - 'encode_xdata_item_$fields'(_els, - [encode_xdata_field(Fields, []) | _acc]). - -decode_xdata_reported({xmlel, <<"reported">>, _attrs, - _els}) -> - Fields = decode_xdata_reported_els(_els, []), Fields. - -decode_xdata_reported_els([], Fields) -> - lists:reverse(Fields); -decode_xdata_reported_els([{xmlel, <<"field">>, _attrs, - _} = - _el - | _els], - Fields) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_reported_els(_els, - [decode_xdata_field(_el) | Fields]); - true -> decode_xdata_reported_els(_els, Fields) - end; -decode_xdata_reported_els([_ | _els], Fields) -> - decode_xdata_reported_els(_els, Fields). - -encode_xdata_reported(Fields, _xmlns_attrs) -> - _els = 'encode_xdata_reported_$fields'(Fields, []), - _attrs = _xmlns_attrs, - {xmlel, <<"reported">>, _attrs, _els}. - -'encode_xdata_reported_$fields'([], _acc) -> _acc; -'encode_xdata_reported_$fields'([Fields | _els], - _acc) -> - 'encode_xdata_reported_$fields'(_els, - [encode_xdata_field(Fields, []) | _acc]). - -decode_xdata_title({xmlel, <<"title">>, _attrs, - _els}) -> - Cdata = decode_xdata_title_els(_els, <<>>), Cdata. - -decode_xdata_title_els([], Cdata) -> - decode_xdata_title_cdata(Cdata); -decode_xdata_title_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_xdata_title_els(_els, - <>); -decode_xdata_title_els([_ | _els], Cdata) -> - decode_xdata_title_els(_els, Cdata). - -encode_xdata_title(Cdata, _xmlns_attrs) -> - _els = encode_xdata_title_cdata(Cdata, []), - _attrs = _xmlns_attrs, - {xmlel, <<"title">>, _attrs, _els}. - -decode_xdata_title_cdata(<<>>) -> undefined; -decode_xdata_title_cdata(_val) -> _val. - -encode_xdata_title_cdata(undefined, _acc) -> _acc; -encode_xdata_title_cdata(_val, _acc) -> - [{xmlcdata, _val} | _acc]. - -decode_xdata_instructions({xmlel, <<"instructions">>, - _attrs, _els}) -> - Cdata = decode_xdata_instructions_els(_els, <<>>), - Cdata. - -decode_xdata_instructions_els([], Cdata) -> - decode_xdata_instructions_cdata(Cdata); -decode_xdata_instructions_els([{xmlcdata, _data} - | _els], - Cdata) -> - decode_xdata_instructions_els(_els, - <>); -decode_xdata_instructions_els([_ | _els], Cdata) -> - decode_xdata_instructions_els(_els, Cdata). - -encode_xdata_instructions(Cdata, _xmlns_attrs) -> - _els = encode_xdata_instructions_cdata(Cdata, []), - _attrs = _xmlns_attrs, - {xmlel, <<"instructions">>, _attrs, _els}. - -decode_xdata_instructions_cdata(<<>>) -> undefined; -decode_xdata_instructions_cdata(_val) -> _val. - -encode_xdata_instructions_cdata(undefined, _acc) -> - _acc; -encode_xdata_instructions_cdata(_val, _acc) -> - [{xmlcdata, _val} | _acc]. - -decode_xdata_field({xmlel, <<"field">>, _attrs, - _els}) -> - {Options, Values, Desc, Required} = - decode_xdata_field_els(_els, [], [], undefined, false), - {Label, Type, Var} = decode_xdata_field_attrs(_attrs, - undefined, undefined, - undefined), - {xdata_field, Label, Type, Var, Required, Desc, Values, - Options}. - -decode_xdata_field_els([], Options, Values, Desc, - Required) -> - {lists:reverse(Options), lists:reverse(Values), Desc, - Required}; -decode_xdata_field_els([{xmlel, <<"required">>, _attrs, - _} = - _el - | _els], - Options, Values, Desc, Required) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_field_els(_els, Options, Values, Desc, - decode_xdata_field_required(_el)); - true -> - decode_xdata_field_els(_els, Options, Values, Desc, - Required) - end; -decode_xdata_field_els([{xmlel, <<"desc">>, _attrs, _} = - _el - | _els], - Options, Values, Desc, Required) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_field_els(_els, Options, Values, - decode_xdata_field_desc(_el), Required); - true -> - decode_xdata_field_els(_els, Options, Values, Desc, - Required) - end; -decode_xdata_field_els([{xmlel, <<"value">>, _attrs, - _} = - _el - | _els], - Options, Values, Desc, Required) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_field_els(_els, Options, - case decode_xdata_field_value(_el) of - undefined -> Values; - _new_el -> [_new_el | Values] - end, - Desc, Required); - true -> - decode_xdata_field_els(_els, Options, Values, Desc, - Required) - end; -decode_xdata_field_els([{xmlel, <<"option">>, _attrs, - _} = - _el - | _els], - Options, Values, Desc, Required) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_field_els(_els, - case decode_xdata_field_option(_el) of - undefined -> Options; - _new_el -> [_new_el | Options] - end, - Values, Desc, Required); - true -> - decode_xdata_field_els(_els, Options, Values, Desc, - Required) - end; -decode_xdata_field_els([_ | _els], Options, Values, - Desc, Required) -> - decode_xdata_field_els(_els, Options, Values, Desc, - Required). - -decode_xdata_field_attrs([{<<"label">>, _val} | _attrs], - _Label, Type, Var) -> - decode_xdata_field_attrs(_attrs, _val, Type, Var); -decode_xdata_field_attrs([{<<"type">>, _val} | _attrs], - Label, _Type, Var) -> - decode_xdata_field_attrs(_attrs, Label, _val, Var); -decode_xdata_field_attrs([{<<"var">>, _val} | _attrs], - Label, Type, _Var) -> - decode_xdata_field_attrs(_attrs, Label, Type, _val); -decode_xdata_field_attrs([_ | _attrs], Label, Type, - Var) -> - decode_xdata_field_attrs(_attrs, Label, Type, Var); -decode_xdata_field_attrs([], Label, Type, Var) -> - {decode_xdata_field_attr_label(Label), - decode_xdata_field_attr_type(Type), - decode_xdata_field_attr_var(Var)}. - -encode_xdata_field({xdata_field, Label, Type, Var, - Required, Desc, Values, Options}, - _xmlns_attrs) -> - _els = 'encode_xdata_field_$required'(Required, - 'encode_xdata_field_$desc'(Desc, - 'encode_xdata_field_$values'(Values, - 'encode_xdata_field_$options'(Options, - [])))), - _attrs = encode_xdata_field_attr_var(Var, - encode_xdata_field_attr_type(Type, - encode_xdata_field_attr_label(Label, - _xmlns_attrs))), - {xmlel, <<"field">>, _attrs, _els}. - -'encode_xdata_field_$options'([], _acc) -> _acc; -'encode_xdata_field_$options'([Options | _els], _acc) -> - 'encode_xdata_field_$options'(_els, - [encode_xdata_field_option(Options, []) - | _acc]). - -'encode_xdata_field_$values'([], _acc) -> _acc; -'encode_xdata_field_$values'([Values | _els], _acc) -> - 'encode_xdata_field_$values'(_els, - [encode_xdata_field_value(Values, []) | _acc]). - -'encode_xdata_field_$desc'(undefined, _acc) -> _acc; -'encode_xdata_field_$desc'(Desc, _acc) -> - [encode_xdata_field_desc(Desc, []) | _acc]. - -'encode_xdata_field_$required'(false, _acc) -> _acc; -'encode_xdata_field_$required'(Required, _acc) -> - [encode_xdata_field_required(Required, []) | _acc]. - -decode_xdata_field_attr_label(undefined) -> undefined; -decode_xdata_field_attr_label(_val) -> _val. - -encode_xdata_field_attr_label(undefined, _acc) -> _acc; -encode_xdata_field_attr_label(_val, _acc) -> - [{<<"label">>, _val} | _acc]. - -decode_xdata_field_attr_type(undefined) -> undefined; -decode_xdata_field_attr_type(_val) -> - case catch dec_enum(_val, - [boolean, fixed, hidden, 'jid-multi', 'jid-single', - 'list-multi', 'list-single', 'text-multi', - 'text-private', 'text-single']) - of - {'EXIT', _} -> - erlang:error({xmpp_codec, - {bad_attr_value, <<"type">>, <<"field">>, - <<"jabber:x:data">>}}); - _res -> _res - end. +decode_xdata_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + Fields = decode_xdata_item_els(__TopXMLNS, _els, []), + Fields. -encode_xdata_field_attr_type(undefined, _acc) -> _acc; -encode_xdata_field_attr_type(_val, _acc) -> - [{<<"type">>, enc_enum(_val)} | _acc]. +decode_xdata_item_els(__TopXMLNS, [], Fields) -> + lists:reverse(Fields); +decode_xdata_item_els(__TopXMLNS, + [{xmlel, <<"field">>, _attrs, _} = _el | _els], + Fields) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_item_els(__TopXMLNS, _els, + [decode_xdata_field(__TopXMLNS, _el) + | Fields]); + true -> decode_xdata_item_els(__TopXMLNS, _els, Fields) + end; +decode_xdata_item_els(__TopXMLNS, [_ | _els], Fields) -> + decode_xdata_item_els(__TopXMLNS, _els, Fields). -decode_xdata_field_attr_var(undefined) -> undefined; -decode_xdata_field_attr_var(_val) -> _val. +encode_xdata_item(Fields, _xmlns_attrs) -> + _els = 'encode_xdata_item_$fields'(Fields, []), + _attrs = _xmlns_attrs, + {xmlel, <<"item">>, _attrs, _els}. -encode_xdata_field_attr_var(undefined, _acc) -> _acc; -encode_xdata_field_attr_var(_val, _acc) -> - [{<<"var">>, _val} | _acc]. +'encode_xdata_item_$fields'([], _acc) -> _acc; +'encode_xdata_item_$fields'([Fields | _els], _acc) -> + 'encode_xdata_item_$fields'(_els, + [encode_xdata_field(Fields, []) | _acc]). -decode_xdata_field_option({xmlel, <<"option">>, _attrs, - _els}) -> - Value = decode_xdata_field_option_els(_els, error), - Value. +decode_xdata_reported(__TopXMLNS, + {xmlel, <<"reported">>, _attrs, _els}) -> + Fields = decode_xdata_reported_els(__TopXMLNS, _els, + []), + Fields. -decode_xdata_field_option_els([], Value) -> - case Value of - error -> - erlang:error({xmpp_codec, - {missing_tag, <<"value">>, <<"jabber:x:data">>}}); - {value, Value1} -> Value1 - end; -decode_xdata_field_option_els([{xmlel, <<"value">>, - _attrs, _} = - _el - | _els], - Value) -> +decode_xdata_reported_els(__TopXMLNS, [], Fields) -> + lists:reverse(Fields); +decode_xdata_reported_els(__TopXMLNS, + [{xmlel, <<"field">>, _attrs, _} = _el | _els], + Fields) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:x:data">> -> - decode_xdata_field_option_els(_els, - {value, - decode_xdata_field_value(_el)}); - true -> decode_xdata_field_option_els(_els, Value) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_reported_els(__TopXMLNS, _els, + [decode_xdata_field(__TopXMLNS, _el) + | Fields]); + true -> + decode_xdata_reported_els(__TopXMLNS, _els, Fields) end; -decode_xdata_field_option_els([_ | _els], Value) -> - decode_xdata_field_option_els(_els, Value). +decode_xdata_reported_els(__TopXMLNS, [_ | _els], + Fields) -> + decode_xdata_reported_els(__TopXMLNS, _els, Fields). -encode_xdata_field_option(Value, _xmlns_attrs) -> - _els = 'encode_xdata_field_option_$value'(Value, []), +encode_xdata_reported(Fields, _xmlns_attrs) -> + _els = 'encode_xdata_reported_$fields'(Fields, []), _attrs = _xmlns_attrs, - {xmlel, <<"option">>, _attrs, _els}. + {xmlel, <<"reported">>, _attrs, _els}. -'encode_xdata_field_option_$value'(Value, _acc) -> - [encode_xdata_field_value(Value, []) | _acc]. +'encode_xdata_reported_$fields'([], _acc) -> _acc; +'encode_xdata_reported_$fields'([Fields | _els], + _acc) -> + 'encode_xdata_reported_$fields'(_els, + [encode_xdata_field(Fields, []) | _acc]). -decode_xdata_field_value({xmlel, <<"value">>, _attrs, - _els}) -> - Cdata = decode_xdata_field_value_els(_els, <<>>), Cdata. +decode_xdata_title(__TopXMLNS, + {xmlel, <<"title">>, _attrs, _els}) -> + Cdata = decode_xdata_title_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_xdata_field_value_els([], Cdata) -> - decode_xdata_field_value_cdata(Cdata); -decode_xdata_field_value_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_xdata_field_value_els(_els, - <>); -decode_xdata_field_value_els([_ | _els], Cdata) -> - decode_xdata_field_value_els(_els, Cdata). +decode_xdata_title_els(__TopXMLNS, [], Cdata) -> + decode_xdata_title_cdata(__TopXMLNS, Cdata); +decode_xdata_title_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_xdata_title_els(__TopXMLNS, _els, + <>); +decode_xdata_title_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_xdata_title_els(__TopXMLNS, _els, Cdata). -encode_xdata_field_value(Cdata, _xmlns_attrs) -> - _els = encode_xdata_field_value_cdata(Cdata, []), +encode_xdata_title(Cdata, _xmlns_attrs) -> + _els = encode_xdata_title_cdata(Cdata, []), _attrs = _xmlns_attrs, - {xmlel, <<"value">>, _attrs, _els}. + {xmlel, <<"title">>, _attrs, _els}. -decode_xdata_field_value_cdata(<<>>) -> undefined; -decode_xdata_field_value_cdata(_val) -> _val. +decode_xdata_title_cdata(__TopXMLNS, <<>>) -> undefined; +decode_xdata_title_cdata(__TopXMLNS, _val) -> _val. -encode_xdata_field_value_cdata(undefined, _acc) -> _acc; -encode_xdata_field_value_cdata(_val, _acc) -> +encode_xdata_title_cdata(undefined, _acc) -> _acc; +encode_xdata_title_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_xdata_field_desc({xmlel, <<"desc">>, _attrs, - _els}) -> - Cdata = decode_xdata_field_desc_els(_els, <<>>), Cdata. +decode_xdata_instructions(__TopXMLNS, + {xmlel, <<"instructions">>, _attrs, _els}) -> + Cdata = decode_xdata_instructions_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_xdata_field_desc_els([], Cdata) -> - decode_xdata_field_desc_cdata(Cdata); -decode_xdata_field_desc_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_xdata_field_desc_els(_els, - <>); -decode_xdata_field_desc_els([_ | _els], Cdata) -> - decode_xdata_field_desc_els(_els, Cdata). +decode_xdata_instructions_els(__TopXMLNS, [], Cdata) -> + decode_xdata_instructions_cdata(__TopXMLNS, Cdata); +decode_xdata_instructions_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_xdata_instructions_els(__TopXMLNS, _els, + <>); +decode_xdata_instructions_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_xdata_instructions_els(__TopXMLNS, _els, Cdata). -encode_xdata_field_desc(Cdata, _xmlns_attrs) -> - _els = encode_xdata_field_desc_cdata(Cdata, []), +encode_xdata_instructions(Cdata, _xmlns_attrs) -> + _els = encode_xdata_instructions_cdata(Cdata, []), _attrs = _xmlns_attrs, - {xmlel, <<"desc">>, _attrs, _els}. + {xmlel, <<"instructions">>, _attrs, _els}. -decode_xdata_field_desc_cdata(<<>>) -> undefined; -decode_xdata_field_desc_cdata(_val) -> _val. +decode_xdata_instructions_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_xdata_instructions_cdata(__TopXMLNS, _val) -> + _val. -encode_xdata_field_desc_cdata(undefined, _acc) -> _acc; -encode_xdata_field_desc_cdata(_val, _acc) -> +encode_xdata_instructions_cdata(undefined, _acc) -> + _acc; +encode_xdata_instructions_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_xdata_field_required({xmlel, <<"required">>, - _attrs, _els}) -> - true. - -encode_xdata_field_required(true, _xmlns_attrs) -> - _els = [], - _attrs = _xmlns_attrs, - {xmlel, <<"required">>, _attrs, _els}. - -decode_vcard({xmlel, <<"vCard">>, _attrs, _els}) -> - {Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo} = - decode_vcard_els(_els, undefined, [], undefined, [], - undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, - undefined, [], [], [], undefined, undefined, undefined, - undefined, undefined, undefined), - {vcard, Version, Fn, N, Nickname, Photo, Bday, Adr, - Label, Tel, Email, Jabberid, Mailer, Tz, Geo, Title, - Role, Logo, Org, Categories, Note, Prodid, Rev, - Sort_string, Sound, Uid, Url, Class, Key, Desc}. +decode_xdata_field(__TopXMLNS, + {xmlel, <<"field">>, _attrs, _els}) -> + {Options, Values, Desc, Required} = + decode_xdata_field_els(__TopXMLNS, _els, [], [], + undefined, false), + {Label, Type, Var} = + decode_xdata_field_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined), + {xdata_field, Label, Type, Var, Required, Desc, Values, + Options}. -decode_vcard_els([], Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, - Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, - Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> - {Mailer, lists:reverse(Adr), Class, Categories, Desc, - Uid, Prodid, Jabberid, Sound, Note, Role, Title, - Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, - lists:reverse(Email), lists:reverse(Tel), - lists:reverse(Label), Fn, Version, N, Photo, Logo, Geo}; -decode_vcard_els([{xmlel, <<"N">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, - decode_vcard_N(_el), Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"ADR">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, - [decode_vcard_ADR(_el) | Adr], Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"LABEL">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, - [decode_vcard_LABEL(_el) | Label], Fn, Version, N, - Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"TEL">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, [decode_vcard_TEL(_el) | Tel], - Label, Fn, Version, N, Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"EMAIL">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, [decode_vcard_EMAIL(_el) | Email], Tel, - Label, Fn, Version, N, Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"GEO">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, decode_vcard_GEO(_el)); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"LOGO">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - decode_vcard_LOGO(_el), Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"PHOTO">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, - decode_vcard_PHOTO(_el), Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"ORG">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, - decode_vcard_ORG(_el), Bday, Key, Tz, Url, Email, - Tel, Label, Fn, Version, N, Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"SOUND">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, - decode_vcard_SOUND(_el), Note, Role, Title, - Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, - Email, Tel, Label, Fn, Version, N, Photo, Logo, - Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"KEY">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, - decode_vcard_KEY(_el), Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"VERSION">>, _attrs, _} = - _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> +decode_xdata_field_els(__TopXMLNS, [], Options, Values, + Desc, Required) -> + {lists:reverse(Options), lists:reverse(Values), Desc, + Required}; +decode_xdata_field_els(__TopXMLNS, + [{xmlel, <<"required">>, _attrs, _} = _el | _els], + Options, Values, Desc, Required) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, - decode_vcard_VERSION(_el), N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, + decode_xdata_field_required(__TopXMLNS, _el)); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"FN">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, decode_vcard_FN(_el), - Version, N, Photo, Logo, Geo); + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, Required) + end; +decode_xdata_field_els(__TopXMLNS, + [{xmlel, <<"desc">>, _attrs, _} = _el | _els], Options, + Values, Desc, Required) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, + decode_xdata_field_desc(__TopXMLNS, _el), + Required); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, Required) end; -decode_vcard_els([{xmlel, <<"NICKNAME">>, _attrs, _} = - _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> +decode_xdata_field_els(__TopXMLNS, + [{xmlel, <<"value">>, _attrs, _} = _el | _els], Options, + Values, Desc, Required) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, decode_vcard_NICKNAME(_el), Rev, Sort_string, - Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, - Version, N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_field_els(__TopXMLNS, _els, Options, + case decode_xdata_field_value(__TopXMLNS, _el) + of + undefined -> Values; + _new_el -> [_new_el | Values] + end, + Desc, Required); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, Required) end; -decode_vcard_els([{xmlel, <<"BDAY">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> +decode_xdata_field_els(__TopXMLNS, + [{xmlel, <<"option">>, _attrs, _} = _el | _els], + Options, Values, Desc, Required) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, - decode_vcard_BDAY(_el), Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_field_els(__TopXMLNS, _els, + case decode_xdata_field_option(__TopXMLNS, + _el) + of + undefined -> Options; + _new_el -> [_new_el | Options] + end, + Values, Desc, Required); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, Required) + end; +decode_xdata_field_els(__TopXMLNS, [_ | _els], Options, + Values, Desc, Required) -> + decode_xdata_field_els(__TopXMLNS, _els, Options, + Values, Desc, Required). + +decode_xdata_field_attrs(__TopXMLNS, + [{<<"label">>, _val} | _attrs], _Label, Type, Var) -> + decode_xdata_field_attrs(__TopXMLNS, _attrs, _val, Type, + Var); +decode_xdata_field_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Label, _Type, Var) -> + decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, + _val, Var); +decode_xdata_field_attrs(__TopXMLNS, + [{<<"var">>, _val} | _attrs], Label, Type, _Var) -> + decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, + Type, _val); +decode_xdata_field_attrs(__TopXMLNS, [_ | _attrs], + Label, Type, Var) -> + decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, + Type, Var); +decode_xdata_field_attrs(__TopXMLNS, [], Label, Type, + Var) -> + {decode_xdata_field_attr_label(__TopXMLNS, Label), + decode_xdata_field_attr_type(__TopXMLNS, Type), + decode_xdata_field_attr_var(__TopXMLNS, Var)}. + +encode_xdata_field({xdata_field, Label, Type, Var, + Required, Desc, Values, Options}, + _xmlns_attrs) -> + _els = 'encode_xdata_field_$required'(Required, + 'encode_xdata_field_$desc'(Desc, + 'encode_xdata_field_$values'(Values, + 'encode_xdata_field_$options'(Options, + [])))), + _attrs = encode_xdata_field_attr_var(Var, + encode_xdata_field_attr_type(Type, + encode_xdata_field_attr_label(Label, + _xmlns_attrs))), + {xmlel, <<"field">>, _attrs, _els}. + +'encode_xdata_field_$options'([], _acc) -> _acc; +'encode_xdata_field_$options'([Options | _els], _acc) -> + 'encode_xdata_field_$options'(_els, + [encode_xdata_field_option(Options, []) + | _acc]). + +'encode_xdata_field_$values'([], _acc) -> _acc; +'encode_xdata_field_$values'([Values | _els], _acc) -> + 'encode_xdata_field_$values'(_els, + [encode_xdata_field_value(Values, []) | _acc]). + +'encode_xdata_field_$desc'(undefined, _acc) -> _acc; +'encode_xdata_field_$desc'(Desc, _acc) -> + [encode_xdata_field_desc(Desc, []) | _acc]. + +'encode_xdata_field_$required'(false, _acc) -> _acc; +'encode_xdata_field_$required'(Required, _acc) -> + [encode_xdata_field_required(Required, []) | _acc]. + +decode_xdata_field_attr_label(__TopXMLNS, undefined) -> + undefined; +decode_xdata_field_attr_label(__TopXMLNS, _val) -> _val. + +encode_xdata_field_attr_label(undefined, _acc) -> _acc; +encode_xdata_field_attr_label(_val, _acc) -> + [{<<"label">>, _val} | _acc]. + +decode_xdata_field_attr_type(__TopXMLNS, undefined) -> + undefined; +decode_xdata_field_attr_type(__TopXMLNS, _val) -> + case catch dec_enum(_val, + [boolean, fixed, hidden, 'jid-multi', 'jid-single', + 'list-multi', 'list-single', 'text-multi', + 'text-private', 'text-single']) + of + {'EXIT', _} -> + erlang:error({xmpp_codec, + {bad_attr_value, <<"type">>, <<"field">>, __TopXMLNS}}); + _res -> _res + end. + +encode_xdata_field_attr_type(undefined, _acc) -> _acc; +encode_xdata_field_attr_type(_val, _acc) -> + [{<<"type">>, enc_enum(_val)} | _acc]. + +decode_xdata_field_attr_var(__TopXMLNS, undefined) -> + undefined; +decode_xdata_field_attr_var(__TopXMLNS, _val) -> _val. + +encode_xdata_field_attr_var(undefined, _acc) -> _acc; +encode_xdata_field_attr_var(_val, _acc) -> + [{<<"var">>, _val} | _acc]. + +decode_xdata_field_option(__TopXMLNS, + {xmlel, <<"option">>, _attrs, _els}) -> + Value = decode_xdata_field_option_els(__TopXMLNS, _els, + error), + Value. + +decode_xdata_field_option_els(__TopXMLNS, [], Value) -> + case Value of + error -> + erlang:error({xmpp_codec, + {missing_tag, <<"value">>, __TopXMLNS}}); + {value, Value1} -> Value1 end; -decode_vcard_els([{xmlel, <<"JABBERID">>, _attrs, _} = - _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> +decode_xdata_field_option_els(__TopXMLNS, + [{xmlel, <<"value">>, _attrs, _} = _el | _els], + Value) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, decode_vcard_JABBERID(_el), - Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_xdata_field_option_els(__TopXMLNS, _els, + {value, + decode_xdata_field_value(__TopXMLNS, + _el)}); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) + decode_xdata_field_option_els(__TopXMLNS, _els, Value) end; -decode_vcard_els([{xmlel, <<"MAILER">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, decode_vcard_MAILER(_el), Adr, - Class, Categories, Desc, Uid, Prodid, Jabberid, - Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); +decode_xdata_field_option_els(__TopXMLNS, [_ | _els], + Value) -> + decode_xdata_field_option_els(__TopXMLNS, _els, Value). + +encode_xdata_field_option(Value, _xmlns_attrs) -> + _els = 'encode_xdata_field_option_$value'(Value, []), + _attrs = _xmlns_attrs, + {xmlel, <<"option">>, _attrs, _els}. + +'encode_xdata_field_option_$value'(Value, _acc) -> + [encode_xdata_field_value(Value, []) | _acc]. + +decode_xdata_field_value(__TopXMLNS, + {xmlel, <<"value">>, _attrs, _els}) -> + Cdata = decode_xdata_field_value_els(__TopXMLNS, _els, + <<>>), + Cdata. + +decode_xdata_field_value_els(__TopXMLNS, [], Cdata) -> + decode_xdata_field_value_cdata(__TopXMLNS, Cdata); +decode_xdata_field_value_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_xdata_field_value_els(__TopXMLNS, _els, + <>); +decode_xdata_field_value_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_xdata_field_value_els(__TopXMLNS, _els, Cdata). + +encode_xdata_field_value(Cdata, _xmlns_attrs) -> + _els = encode_xdata_field_value_cdata(Cdata, []), + _attrs = _xmlns_attrs, + {xmlel, <<"value">>, _attrs, _els}. + +decode_xdata_field_value_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_xdata_field_value_cdata(__TopXMLNS, _val) -> + _val. + +encode_xdata_field_value_cdata(undefined, _acc) -> _acc; +encode_xdata_field_value_cdata(_val, _acc) -> + [{xmlcdata, _val} | _acc]. + +decode_xdata_field_desc(__TopXMLNS, + {xmlel, <<"desc">>, _attrs, _els}) -> + Cdata = decode_xdata_field_desc_els(__TopXMLNS, _els, + <<>>), + Cdata. + +decode_xdata_field_desc_els(__TopXMLNS, [], Cdata) -> + decode_xdata_field_desc_cdata(__TopXMLNS, Cdata); +decode_xdata_field_desc_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_xdata_field_desc_els(__TopXMLNS, _els, + <>); +decode_xdata_field_desc_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_xdata_field_desc_els(__TopXMLNS, _els, Cdata). + +encode_xdata_field_desc(Cdata, _xmlns_attrs) -> + _els = encode_xdata_field_desc_cdata(Cdata, []), + _attrs = _xmlns_attrs, + {xmlel, <<"desc">>, _attrs, _els}. + +decode_xdata_field_desc_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_xdata_field_desc_cdata(__TopXMLNS, _val) -> _val. + +encode_xdata_field_desc_cdata(undefined, _acc) -> _acc; +encode_xdata_field_desc_cdata(_val, _acc) -> + [{xmlcdata, _val} | _acc]. + +decode_xdata_field_required(__TopXMLNS, + {xmlel, <<"required">>, _attrs, _els}) -> + true. + +encode_xdata_field_required(true, _xmlns_attrs) -> + _els = [], + _attrs = _xmlns_attrs, + {xmlel, <<"required">>, _attrs, _els}. + +decode_vcard(__TopXMLNS, + {xmlel, <<"vCard">>, _attrs, _els}) -> + {Mailer, Adr, Class, Categories, Desc, Uid, Prodid, + Jabberid, Sound, Note, Role, Title, Nickname, Rev, + Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, + Fn, Version, N, Photo, Logo, Geo} = + decode_vcard_els(__TopXMLNS, _els, undefined, [], + undefined, [], undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, [], [], [], undefined, + undefined, undefined, undefined, undefined, undefined), + {vcard, Version, Fn, N, Nickname, Photo, Bday, Adr, + Label, Tel, Email, Jabberid, Mailer, Tz, Geo, Title, + Role, Logo, Org, Categories, Note, Prodid, Rev, + Sort_string, Sound, Uid, Url, Class, Key, Desc}. + +decode_vcard_els(__TopXMLNS, [], Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, + Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, + Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo) -> + {Mailer, lists:reverse(Adr), Class, Categories, Desc, + Uid, Prodid, Jabberid, Sound, Note, Role, Title, + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + lists:reverse(Email), lists:reverse(Tel), + lists:reverse(Label), Fn, Version, N, Photo, Logo, Geo}; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"N">>, _attrs, _} = _el | _els], Mailer, Adr, + Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, + Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + decode_vcard_N(__TopXMLNS, _el), Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"TZ">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - decode_vcard_TZ(_el), Url, Email, Tel, Label, Fn, - Version, N, Photo, Logo, Geo); + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"ADR">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, + [decode_vcard_ADR(__TopXMLNS, _el) | Adr], Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"TITLE">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - decode_vcard_TITLE(_el), Nickname, Rev, Sort_string, - Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"LABEL">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, + [decode_vcard_LABEL(__TopXMLNS, _el) | Label], Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"ROLE">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, - decode_vcard_ROLE(_el), Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); - true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"NOTE">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, - decode_vcard_NOTE(_el), Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"TEL">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, + [decode_vcard_TEL(__TopXMLNS, _el) | Tel], Label, + Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"PRODID">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, decode_vcard_PRODID(_el), Jabberid, - Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"EMAIL">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, + [decode_vcard_EMAIL(__TopXMLNS, _el) | Email], Tel, Label, Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"REV">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, decode_vcard_REV(_el), Sort_string, - Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, - Version, N, Photo, Logo, Geo); + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"GEO">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, decode_vcard_GEO(__TopXMLNS, _el)); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"LOGO">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, decode_vcard_LOGO(__TopXMLNS, _el), Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"PHOTO">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, decode_vcard_PHOTO(__TopXMLNS, _el), Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"ORG">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, + decode_vcard_ORG(__TopXMLNS, _el), Bday, Key, Tz, + Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"SOUND">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, + decode_vcard_SOUND(__TopXMLNS, _el), Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"SORT-STRING">>, _attrs, - _} = - _el - | _els], + Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"KEY">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, decode_vcard_KEY(__TopXMLNS, _el), Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"VERSION">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, decode_vcard_SORT_STRING(_el), - Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, - Version, N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, + decode_vcard_VERSION(__TopXMLNS, _el), N, Photo, + Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"UID">>, _attrs, _} = _el - | _els], + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"FN">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, + decode_vcard_FN(__TopXMLNS, _el), Version, N, Photo, + Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"NICKNAME">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, decode_vcard_UID(_el), Prodid, Jabberid, - Sound, Note, Role, Title, Nickname, Rev, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, + decode_vcard_NICKNAME(__TopXMLNS, _el), Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"URL">>, _attrs, _} = _el - | _els], - Mailer, Adr, Class, Categories, Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, - Fn, Version, N, Photo, Logo, Geo) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, decode_vcard_URL(_el), Email, Tel, Label, Fn, - Version, N, Photo, Logo, Geo); + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"BDAY">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + decode_vcard_BDAY(__TopXMLNS, _el), Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"DESC">>, _attrs, _} = _el - | _els], + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"JABBERID">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - decode_vcard_DESC(_el), Uid, Prodid, Jabberid, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, + decode_vcard_JABBERID(__TopXMLNS, _el), Sound, Note, + Role, Title, Nickname, Rev, Sort_string, Org, Bday, + Key, Tz, Url, Email, Tel, Label, Fn, Version, N, + Photo, Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"MAILER">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, + decode_vcard_MAILER(__TopXMLNS, _el), Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"TZ">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, decode_vcard_TZ(__TopXMLNS, _el), Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"TITLE">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, decode_vcard_TITLE(__TopXMLNS, _el), + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"ROLE">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, decode_vcard_ROLE(__TopXMLNS, _el), Title, + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"NOTE">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + decode_vcard_NOTE(__TopXMLNS, _el), Role, Title, + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"PRODID">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, + decode_vcard_PRODID(__TopXMLNS, _el), Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"CATEGORIES">>, _attrs, _} = - _el - | _els], + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"REV">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, + decode_vcard_REV(__TopXMLNS, _el), Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"SORT-STRING">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, Class, - decode_vcard_CATEGORIES(_el), Desc, Uid, Prodid, - Jabberid, Sound, Note, Role, Title, Nickname, Rev, - Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, - Label, Fn, Version, N, Photo, Logo, Geo); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, + decode_vcard_SORT_STRING(__TopXMLNS, _el), Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, - Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([{xmlel, <<"CLASS">>, _attrs, _} = _el - | _els], + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"UID">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, decode_vcard_UID(__TopXMLNS, _el), + Prodid, Jabberid, Sound, Note, Role, Title, + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"URL">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, decode_vcard_URL(__TopXMLNS, _el), + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"DESC">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, decode_vcard_DESC(__TopXMLNS, _el), Uid, + Prodid, Jabberid, Sound, Note, Role, Title, + Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, + Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"CATEGORIES">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_els(_els, Mailer, Adr, - decode_vcard_CLASS(_el), Categories, Desc, Uid, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + decode_vcard_CATEGORIES(__TopXMLNS, _el), Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); true -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, + [{xmlel, <<"CLASS">>, _attrs, _} = _el | _els], Mailer, + Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, + Sound, Note, Role, Title, Nickname, Rev, Sort_string, + Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, + decode_vcard_CLASS(__TopXMLNS, _el), Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, - Logo, Geo) - end; -decode_vcard_els([_ | _els], Mailer, Adr, Class, - Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, - Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, - Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, - Geo) -> - decode_vcard_els(_els, Mailer, Adr, Class, Categories, - Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, - Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, - Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo). + Logo, Geo); + true -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, + N, Photo, Logo, Geo) + end; +decode_vcard_els(__TopXMLNS, [_ | _els], Mailer, Adr, + Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, + Note, Role, Title, Nickname, Rev, Sort_string, Org, + Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, + Photo, Logo, Geo) -> + decode_vcard_els(__TopXMLNS, _els, Mailer, Adr, Class, + Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, + Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, + Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, + Geo). encode_vcard({vcard, Version, Fn, N, Nickname, Photo, Bday, Adr, Label, Tel, Email, Jabberid, Mailer, Tz, Geo, @@ -7024,44 +7589,42 @@ encode_vcard({vcard, Version, Fn, N, Nickname, Photo, 'encode_vcard_$geo'(Geo, _acc) -> [encode_vcard_GEO(Geo, []) | _acc]. -decode_vcard_CLASS({xmlel, <<"CLASS">>, _attrs, - _els}) -> - Class = decode_vcard_CLASS_els(_els, undefined), Class. +decode_vcard_CLASS(__TopXMLNS, + {xmlel, <<"CLASS">>, _attrs, _els}) -> + Class = decode_vcard_CLASS_els(__TopXMLNS, _els, + undefined), + Class. -decode_vcard_CLASS_els([], Class) -> Class; -decode_vcard_CLASS_els([{xmlel, <<"PUBLIC">>, _attrs, - _} = - _el - | _els], +decode_vcard_CLASS_els(__TopXMLNS, [], Class) -> Class; +decode_vcard_CLASS_els(__TopXMLNS, + [{xmlel, <<"PUBLIC">>, _attrs, _} = _el | _els], Class) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_CLASS_els(_els, decode_vcard_PUBLIC(_el)); - true -> decode_vcard_CLASS_els(_els, Class) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_CLASS_els(__TopXMLNS, _els, + decode_vcard_PUBLIC(__TopXMLNS, _el)); + true -> decode_vcard_CLASS_els(__TopXMLNS, _els, Class) end; -decode_vcard_CLASS_els([{xmlel, <<"PRIVATE">>, _attrs, - _} = - _el - | _els], +decode_vcard_CLASS_els(__TopXMLNS, + [{xmlel, <<"PRIVATE">>, _attrs, _} = _el | _els], Class) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_CLASS_els(_els, decode_vcard_PRIVATE(_el)); - true -> decode_vcard_CLASS_els(_els, Class) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_CLASS_els(__TopXMLNS, _els, + decode_vcard_PRIVATE(__TopXMLNS, _el)); + true -> decode_vcard_CLASS_els(__TopXMLNS, _els, Class) end; -decode_vcard_CLASS_els([{xmlel, <<"CONFIDENTIAL">>, - _attrs, _} = - _el - | _els], +decode_vcard_CLASS_els(__TopXMLNS, + [{xmlel, <<"CONFIDENTIAL">>, _attrs, _} = _el | _els], Class) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_CLASS_els(_els, - decode_vcard_CONFIDENTIAL(_el)); - true -> decode_vcard_CLASS_els(_els, Class) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_CLASS_els(__TopXMLNS, _els, + decode_vcard_CONFIDENTIAL(__TopXMLNS, _el)); + true -> decode_vcard_CLASS_els(__TopXMLNS, _els, Class) end; -decode_vcard_CLASS_els([_ | _els], Class) -> - decode_vcard_CLASS_els(_els, Class). +decode_vcard_CLASS_els(__TopXMLNS, [_ | _els], Class) -> + decode_vcard_CLASS_els(__TopXMLNS, _els, Class). encode_vcard_CLASS(Class, _xmlns_attrs) -> _els = 'encode_vcard_CLASS_$class'(Class, []), @@ -7077,29 +7640,32 @@ encode_vcard_CLASS(Class, _xmlns_attrs) -> _acc) -> [encode_vcard_CONFIDENTIAL(Class, []) | _acc]. -decode_vcard_CATEGORIES({xmlel, <<"CATEGORIES">>, - _attrs, _els}) -> - Keywords = decode_vcard_CATEGORIES_els(_els, []), +decode_vcard_CATEGORIES(__TopXMLNS, + {xmlel, <<"CATEGORIES">>, _attrs, _els}) -> + Keywords = decode_vcard_CATEGORIES_els(__TopXMLNS, _els, + []), Keywords. -decode_vcard_CATEGORIES_els([], Keywords) -> +decode_vcard_CATEGORIES_els(__TopXMLNS, [], Keywords) -> lists:reverse(Keywords); -decode_vcard_CATEGORIES_els([{xmlel, <<"KEYWORD">>, - _attrs, _} = - _el - | _els], +decode_vcard_CATEGORIES_els(__TopXMLNS, + [{xmlel, <<"KEYWORD">>, _attrs, _} = _el | _els], Keywords) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_CATEGORIES_els(_els, - case decode_vcard_KEYWORD(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_CATEGORIES_els(__TopXMLNS, _els, + case decode_vcard_KEYWORD(__TopXMLNS, + _el) + of undefined -> Keywords; _new_el -> [_new_el | Keywords] end); - true -> decode_vcard_CATEGORIES_els(_els, Keywords) + true -> + decode_vcard_CATEGORIES_els(__TopXMLNS, _els, Keywords) end; -decode_vcard_CATEGORIES_els([_ | _els], Keywords) -> - decode_vcard_CATEGORIES_els(_els, Keywords). +decode_vcard_CATEGORIES_els(__TopXMLNS, [_ | _els], + Keywords) -> + decode_vcard_CATEGORIES_els(__TopXMLNS, _els, Keywords). encode_vcard_CATEGORIES(Keywords, _xmlns_attrs) -> _els = 'encode_vcard_CATEGORIES_$keywords'(Keywords, @@ -7114,34 +7680,37 @@ encode_vcard_CATEGORIES(Keywords, _xmlns_attrs) -> [encode_vcard_KEYWORD(Keywords, []) | _acc]). -decode_vcard_KEY({xmlel, <<"KEY">>, _attrs, _els}) -> - {Cred, Type} = decode_vcard_KEY_els(_els, undefined, - undefined), +decode_vcard_KEY(__TopXMLNS, + {xmlel, <<"KEY">>, _attrs, _els}) -> + {Cred, Type} = decode_vcard_KEY_els(__TopXMLNS, _els, + undefined, undefined), {vcard_key, Type, Cred}. -decode_vcard_KEY_els([], Cred, Type) -> {Cred, Type}; -decode_vcard_KEY_els([{xmlel, <<"TYPE">>, _attrs, _} = - _el - | _els], - Cred, Type) -> +decode_vcard_KEY_els(__TopXMLNS, [], Cred, Type) -> + {Cred, Type}; +decode_vcard_KEY_els(__TopXMLNS, + [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Cred, + Type) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_KEY_els(_els, Cred, - decode_vcard_TYPE(_el)); - true -> decode_vcard_KEY_els(_els, Cred, Type) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_KEY_els(__TopXMLNS, _els, Cred, + decode_vcard_TYPE(__TopXMLNS, _el)); + true -> + decode_vcard_KEY_els(__TopXMLNS, _els, Cred, Type) end; -decode_vcard_KEY_els([{xmlel, <<"CRED">>, _attrs, _} = - _el - | _els], - Cred, Type) -> +decode_vcard_KEY_els(__TopXMLNS, + [{xmlel, <<"CRED">>, _attrs, _} = _el | _els], Cred, + Type) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_KEY_els(_els, decode_vcard_CRED(_el), - Type); - true -> decode_vcard_KEY_els(_els, Cred, Type) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_KEY_els(__TopXMLNS, _els, + decode_vcard_CRED(__TopXMLNS, _el), Type); + true -> + decode_vcard_KEY_els(__TopXMLNS, _els, Cred, Type) end; -decode_vcard_KEY_els([_ | _els], Cred, Type) -> - decode_vcard_KEY_els(_els, Cred, Type). +decode_vcard_KEY_els(__TopXMLNS, [_ | _els], Cred, + Type) -> + decode_vcard_KEY_els(__TopXMLNS, _els, Cred, Type). encode_vcard_KEY({vcard_key, Type, Cred}, _xmlns_attrs) -> @@ -7158,54 +7727,54 @@ encode_vcard_KEY({vcard_key, Type, Cred}, 'encode_vcard_KEY_$type'(Type, _acc) -> [encode_vcard_TYPE(Type, []) | _acc]. -decode_vcard_SOUND({xmlel, <<"SOUND">>, _attrs, - _els}) -> +decode_vcard_SOUND(__TopXMLNS, + {xmlel, <<"SOUND">>, _attrs, _els}) -> {Phonetic, Extval, Binval} = - decode_vcard_SOUND_els(_els, undefined, undefined, - undefined), + decode_vcard_SOUND_els(__TopXMLNS, _els, undefined, + undefined, undefined), {vcard_sound, Phonetic, Binval, Extval}. -decode_vcard_SOUND_els([], Phonetic, Extval, Binval) -> +decode_vcard_SOUND_els(__TopXMLNS, [], Phonetic, Extval, + Binval) -> {Phonetic, Extval, Binval}; -decode_vcard_SOUND_els([{xmlel, <<"BINVAL">>, _attrs, - _} = - _el - | _els], +decode_vcard_SOUND_els(__TopXMLNS, + [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_SOUND_els(_els, Phonetic, Extval, - decode_vcard_BINVAL(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + Extval, decode_vcard_BINVAL(__TopXMLNS, _el)); true -> - decode_vcard_SOUND_els(_els, Phonetic, Extval, Binval) + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + Extval, Binval) end; -decode_vcard_SOUND_els([{xmlel, <<"EXTVAL">>, _attrs, - _} = - _el - | _els], +decode_vcard_SOUND_els(__TopXMLNS, + [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_SOUND_els(_els, Phonetic, - decode_vcard_EXTVAL(_el), Binval); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + decode_vcard_EXTVAL(__TopXMLNS, _el), Binval); true -> - decode_vcard_SOUND_els(_els, Phonetic, Extval, Binval) + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + Extval, Binval) end; -decode_vcard_SOUND_els([{xmlel, <<"PHONETIC">>, _attrs, - _} = - _el - | _els], +decode_vcard_SOUND_els(__TopXMLNS, + [{xmlel, <<"PHONETIC">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_SOUND_els(_els, decode_vcard_PHONETIC(_el), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_SOUND_els(__TopXMLNS, _els, + decode_vcard_PHONETIC(__TopXMLNS, _el), Extval, Binval); true -> - decode_vcard_SOUND_els(_els, Phonetic, Extval, Binval) + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + Extval, Binval) end; -decode_vcard_SOUND_els([_ | _els], Phonetic, Extval, - Binval) -> - decode_vcard_SOUND_els(_els, Phonetic, Extval, Binval). +decode_vcard_SOUND_els(__TopXMLNS, [_ | _els], Phonetic, + Extval, Binval) -> + decode_vcard_SOUND_els(__TopXMLNS, _els, Phonetic, + Extval, Binval). encode_vcard_SOUND({vcard_sound, Phonetic, Binval, Extval}, @@ -7229,41 +7798,41 @@ encode_vcard_SOUND({vcard_sound, Phonetic, Binval, 'encode_vcard_SOUND_$binval'(Binval, _acc) -> [encode_vcard_BINVAL(Binval, []) | _acc]. -decode_vcard_ORG({xmlel, <<"ORG">>, _attrs, _els}) -> - {Units, Name} = decode_vcard_ORG_els(_els, [], - undefined), +decode_vcard_ORG(__TopXMLNS, + {xmlel, <<"ORG">>, _attrs, _els}) -> + {Units, Name} = decode_vcard_ORG_els(__TopXMLNS, _els, + [], undefined), {vcard_org, Name, Units}. -decode_vcard_ORG_els([], Units, Name) -> +decode_vcard_ORG_els(__TopXMLNS, [], Units, Name) -> {lists:reverse(Units), Name}; -decode_vcard_ORG_els([{xmlel, <<"ORGNAME">>, _attrs, - _} = - _el - | _els], - Units, Name) -> +decode_vcard_ORG_els(__TopXMLNS, + [{xmlel, <<"ORGNAME">>, _attrs, _} = _el | _els], Units, + Name) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ORG_els(_els, Units, - decode_vcard_ORGNAME(_el)); - true -> decode_vcard_ORG_els(_els, Units, Name) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ORG_els(__TopXMLNS, _els, Units, + decode_vcard_ORGNAME(__TopXMLNS, _el)); + true -> + decode_vcard_ORG_els(__TopXMLNS, _els, Units, Name) end; -decode_vcard_ORG_els([{xmlel, <<"ORGUNIT">>, _attrs, - _} = - _el - | _els], - Units, Name) -> +decode_vcard_ORG_els(__TopXMLNS, + [{xmlel, <<"ORGUNIT">>, _attrs, _} = _el | _els], Units, + Name) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ORG_els(_els, - case decode_vcard_ORGUNIT(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ORG_els(__TopXMLNS, _els, + case decode_vcard_ORGUNIT(__TopXMLNS, _el) of undefined -> Units; _new_el -> [_new_el | Units] end, Name); - true -> decode_vcard_ORG_els(_els, Units, Name) + true -> + decode_vcard_ORG_els(__TopXMLNS, _els, Units, Name) end; -decode_vcard_ORG_els([_ | _els], Units, Name) -> - decode_vcard_ORG_els(_els, Units, Name). +decode_vcard_ORG_els(__TopXMLNS, [_ | _els], Units, + Name) -> + decode_vcard_ORG_els(__TopXMLNS, _els, Units, Name). encode_vcard_ORG({vcard_org, Name, Units}, _xmlns_attrs) -> @@ -7281,53 +7850,54 @@ encode_vcard_ORG({vcard_org, Name, Units}, 'encode_vcard_ORG_$name'(Name, _acc) -> [encode_vcard_ORGNAME(Name, []) | _acc]. -decode_vcard_PHOTO({xmlel, <<"PHOTO">>, _attrs, - _els}) -> - {Type, Extval, Binval} = decode_vcard_PHOTO_els(_els, - undefined, undefined, - undefined), +decode_vcard_PHOTO(__TopXMLNS, + {xmlel, <<"PHOTO">>, _attrs, _els}) -> + {Type, Extval, Binval} = + decode_vcard_PHOTO_els(__TopXMLNS, _els, undefined, + undefined, undefined), {vcard_photo, Type, Binval, Extval}. -decode_vcard_PHOTO_els([], Type, Extval, Binval) -> +decode_vcard_PHOTO_els(__TopXMLNS, [], Type, Extval, + Binval) -> {Type, Extval, Binval}; -decode_vcard_PHOTO_els([{xmlel, <<"TYPE">>, _attrs, _} = - _el - | _els], - Type, Extval, Binval) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_PHOTO_els(_els, decode_vcard_TYPE(_el), - Extval, Binval); +decode_vcard_PHOTO_els(__TopXMLNS, + [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_PHOTO_els(__TopXMLNS, _els, + decode_vcard_TYPE(__TopXMLNS, _el), Extval, + Binval); true -> - decode_vcard_PHOTO_els(_els, Type, Extval, Binval) + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_PHOTO_els([{xmlel, <<"BINVAL">>, _attrs, - _} = - _el - | _els], - Type, Extval, Binval) -> +decode_vcard_PHOTO_els(__TopXMLNS, + [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_PHOTO_els(_els, Type, Extval, - decode_vcard_BINVAL(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, Extval, + decode_vcard_BINVAL(__TopXMLNS, _el)); true -> - decode_vcard_PHOTO_els(_els, Type, Extval, Binval) + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_PHOTO_els([{xmlel, <<"EXTVAL">>, _attrs, - _} = - _el - | _els], - Type, Extval, Binval) -> +decode_vcard_PHOTO_els(__TopXMLNS, + [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_PHOTO_els(_els, Type, - decode_vcard_EXTVAL(_el), Binval); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, + decode_vcard_EXTVAL(__TopXMLNS, _el), Binval); true -> - decode_vcard_PHOTO_els(_els, Type, Extval, Binval) + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_PHOTO_els([_ | _els], Type, Extval, - Binval) -> - decode_vcard_PHOTO_els(_els, Type, Extval, Binval). +decode_vcard_PHOTO_els(__TopXMLNS, [_ | _els], Type, + Extval, Binval) -> + decode_vcard_PHOTO_els(__TopXMLNS, _els, Type, Extval, + Binval). encode_vcard_PHOTO({vcard_photo, Type, Binval, Extval}, _xmlns_attrs) -> @@ -7350,52 +7920,54 @@ encode_vcard_PHOTO({vcard_photo, Type, Binval, Extval}, 'encode_vcard_PHOTO_$binval'(Binval, _acc) -> [encode_vcard_BINVAL(Binval, []) | _acc]. -decode_vcard_LOGO({xmlel, <<"LOGO">>, _attrs, _els}) -> - {Type, Extval, Binval} = decode_vcard_LOGO_els(_els, - undefined, undefined, - undefined), +decode_vcard_LOGO(__TopXMLNS, + {xmlel, <<"LOGO">>, _attrs, _els}) -> + {Type, Extval, Binval} = + decode_vcard_LOGO_els(__TopXMLNS, _els, undefined, + undefined, undefined), {vcard_logo, Type, Binval, Extval}. -decode_vcard_LOGO_els([], Type, Extval, Binval) -> +decode_vcard_LOGO_els(__TopXMLNS, [], Type, Extval, + Binval) -> {Type, Extval, Binval}; -decode_vcard_LOGO_els([{xmlel, <<"TYPE">>, _attrs, _} = - _el - | _els], - Type, Extval, Binval) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LOGO_els(_els, decode_vcard_TYPE(_el), - Extval, Binval); +decode_vcard_LOGO_els(__TopXMLNS, + [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LOGO_els(__TopXMLNS, _els, + decode_vcard_TYPE(__TopXMLNS, _el), Extval, + Binval); true -> - decode_vcard_LOGO_els(_els, Type, Extval, Binval) + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_LOGO_els([{xmlel, <<"BINVAL">>, _attrs, - _} = - _el - | _els], - Type, Extval, Binval) -> +decode_vcard_LOGO_els(__TopXMLNS, + [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LOGO_els(_els, Type, Extval, - decode_vcard_BINVAL(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, Extval, + decode_vcard_BINVAL(__TopXMLNS, _el)); true -> - decode_vcard_LOGO_els(_els, Type, Extval, Binval) + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_LOGO_els([{xmlel, <<"EXTVAL">>, _attrs, - _} = - _el - | _els], - Type, Extval, Binval) -> +decode_vcard_LOGO_els(__TopXMLNS, + [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Type, + Extval, Binval) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LOGO_els(_els, Type, - decode_vcard_EXTVAL(_el), Binval); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, + decode_vcard_EXTVAL(__TopXMLNS, _el), Binval); true -> - decode_vcard_LOGO_els(_els, Type, Extval, Binval) + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, Extval, + Binval) end; -decode_vcard_LOGO_els([_ | _els], Type, Extval, - Binval) -> - decode_vcard_LOGO_els(_els, Type, Extval, Binval). +decode_vcard_LOGO_els(__TopXMLNS, [_ | _els], Type, + Extval, Binval) -> + decode_vcard_LOGO_els(__TopXMLNS, _els, Type, Extval, + Binval). encode_vcard_LOGO({vcard_logo, Type, Binval, Extval}, _xmlns_attrs) -> @@ -7418,31 +7990,33 @@ encode_vcard_LOGO({vcard_logo, Type, Binval, Extval}, 'encode_vcard_LOGO_$binval'(Binval, _acc) -> [encode_vcard_BINVAL(Binval, []) | _acc]. -decode_vcard_BINVAL({xmlel, <<"BINVAL">>, _attrs, - _els}) -> - Cdata = decode_vcard_BINVAL_els(_els, <<>>), Cdata. +decode_vcard_BINVAL(__TopXMLNS, + {xmlel, <<"BINVAL">>, _attrs, _els}) -> + Cdata = decode_vcard_BINVAL_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_BINVAL_els([], Cdata) -> - decode_vcard_BINVAL_cdata(Cdata); -decode_vcard_BINVAL_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_BINVAL_els(_els, +decode_vcard_BINVAL_els(__TopXMLNS, [], Cdata) -> + decode_vcard_BINVAL_cdata(__TopXMLNS, Cdata); +decode_vcard_BINVAL_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_BINVAL_els(__TopXMLNS, _els, <>); -decode_vcard_BINVAL_els([_ | _els], Cdata) -> - decode_vcard_BINVAL_els(_els, Cdata). +decode_vcard_BINVAL_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_BINVAL_els(__TopXMLNS, _els, Cdata). encode_vcard_BINVAL(Cdata, _xmlns_attrs) -> _els = encode_vcard_BINVAL_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"BINVAL">>, _attrs, _els}. -decode_vcard_BINVAL_cdata(<<>>) -> undefined; -decode_vcard_BINVAL_cdata(_val) -> +decode_vcard_BINVAL_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_BINVAL_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"BINVAL">>, - <<"vcard-temp">>}}); + {bad_cdata_value, <<>>, <<"BINVAL">>, __TopXMLNS}}); _res -> _res end. @@ -7450,32 +8024,35 @@ encode_vcard_BINVAL_cdata(undefined, _acc) -> _acc; encode_vcard_BINVAL_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. -decode_vcard_GEO({xmlel, <<"GEO">>, _attrs, _els}) -> - {Lat, Lon} = decode_vcard_GEO_els(_els, undefined, - undefined), +decode_vcard_GEO(__TopXMLNS, + {xmlel, <<"GEO">>, _attrs, _els}) -> + {Lat, Lon} = decode_vcard_GEO_els(__TopXMLNS, _els, + undefined, undefined), {vcard_geo, Lat, Lon}. -decode_vcard_GEO_els([], Lat, Lon) -> {Lat, Lon}; -decode_vcard_GEO_els([{xmlel, <<"LAT">>, _attrs, _} = - _el - | _els], - Lat, Lon) -> +decode_vcard_GEO_els(__TopXMLNS, [], Lat, Lon) -> + {Lat, Lon}; +decode_vcard_GEO_els(__TopXMLNS, + [{xmlel, <<"LAT">>, _attrs, _} = _el | _els], Lat, + Lon) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_GEO_els(_els, decode_vcard_LAT(_el), Lon); - true -> decode_vcard_GEO_els(_els, Lat, Lon) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_GEO_els(__TopXMLNS, _els, + decode_vcard_LAT(__TopXMLNS, _el), Lon); + true -> decode_vcard_GEO_els(__TopXMLNS, _els, Lat, Lon) end; -decode_vcard_GEO_els([{xmlel, <<"LON">>, _attrs, _} = - _el - | _els], - Lat, Lon) -> +decode_vcard_GEO_els(__TopXMLNS, + [{xmlel, <<"LON">>, _attrs, _} = _el | _els], Lat, + Lon) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_GEO_els(_els, Lat, decode_vcard_LON(_el)); - true -> decode_vcard_GEO_els(_els, Lat, Lon) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_GEO_els(__TopXMLNS, _els, Lat, + decode_vcard_LON(__TopXMLNS, _el)); + true -> decode_vcard_GEO_els(__TopXMLNS, _els, Lat, Lon) end; -decode_vcard_GEO_els([_ | _els], Lat, Lon) -> - decode_vcard_GEO_els(_els, Lat, Lon). +decode_vcard_GEO_els(__TopXMLNS, [_ | _els], Lat, + Lon) -> + decode_vcard_GEO_els(__TopXMLNS, _els, Lat, Lon). encode_vcard_GEO({vcard_geo, Lat, Lon}, _xmlns_attrs) -> _els = 'encode_vcard_GEO_$lon'(Lon, @@ -7491,95 +8068,92 @@ encode_vcard_GEO({vcard_geo, Lat, Lon}, _xmlns_attrs) -> 'encode_vcard_GEO_$lon'(Lon, _acc) -> [encode_vcard_LON(Lon, []) | _acc]. -decode_vcard_EMAIL({xmlel, <<"EMAIL">>, _attrs, - _els}) -> +decode_vcard_EMAIL(__TopXMLNS, + {xmlel, <<"EMAIL">>, _attrs, _els}) -> {X400, Userid, Internet, Home, Pref, Work} = - decode_vcard_EMAIL_els(_els, false, undefined, false, - false, false, false), + decode_vcard_EMAIL_els(__TopXMLNS, _els, false, + undefined, false, false, false, false), {vcard_email, Home, Work, Internet, Pref, X400, Userid}. -decode_vcard_EMAIL_els([], X400, Userid, Internet, Home, - Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, [], X400, Userid, + Internet, Home, Pref, Work) -> {X400, Userid, Internet, Home, Pref, Work}; -decode_vcard_EMAIL_els([{xmlel, <<"HOME">>, _attrs, _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - decode_vcard_HOME(_el), Pref, Work); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, decode_vcard_HOME(__TopXMLNS, _el), + Pref, Work); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([{xmlel, <<"WORK">>, _attrs, _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, decode_vcard_WORK(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, + decode_vcard_WORK(__TopXMLNS, _el)); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([{xmlel, <<"INTERNET">>, _attrs, - _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"INTERNET">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, X400, Userid, - decode_vcard_INTERNET(_el), Home, Pref, Work); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + decode_vcard_INTERNET(__TopXMLNS, _el), Home, + Pref, Work); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([{xmlel, <<"PREF">>, _attrs, _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, decode_vcard_PREF(_el), Work); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, + decode_vcard_PREF(__TopXMLNS, _el), Work); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([{xmlel, <<"X400">>, _attrs, _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"X400">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, decode_vcard_X400(_el), - Userid, Internet, Home, Pref, Work); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, + decode_vcard_X400(__TopXMLNS, _el), Userid, + Internet, Home, Pref, Work); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([{xmlel, <<"USERID">>, _attrs, - _} = - _el - | _els], - X400, Userid, Internet, Home, Pref, Work) -> +decode_vcard_EMAIL_els(__TopXMLNS, + [{xmlel, <<"USERID">>, _attrs, _} = _el | _els], X400, + Userid, Internet, Home, Pref, Work) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_EMAIL_els(_els, X400, - decode_vcard_USERID(_el), Internet, Home, - Pref, Work); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, + decode_vcard_USERID(__TopXMLNS, _el), + Internet, Home, Pref, Work); true -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work) + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work) end; -decode_vcard_EMAIL_els([_ | _els], X400, Userid, - Internet, Home, Pref, Work) -> - decode_vcard_EMAIL_els(_els, X400, Userid, Internet, - Home, Pref, Work). +decode_vcard_EMAIL_els(__TopXMLNS, [_ | _els], X400, + Userid, Internet, Home, Pref, Work) -> + decode_vcard_EMAIL_els(__TopXMLNS, _els, X400, Userid, + Internet, Home, Pref, Work). encode_vcard_EMAIL({vcard_email, Home, Work, Internet, Pref, X400, Userid}, @@ -7618,236 +8192,237 @@ encode_vcard_EMAIL({vcard_email, Home, Work, Internet, 'encode_vcard_EMAIL_$work'(Work, _acc) -> [encode_vcard_WORK(Work, []) | _acc]. -decode_vcard_TEL({xmlel, <<"TEL">>, _attrs, _els}) -> +decode_vcard_TEL(__TopXMLNS, + {xmlel, <<"TEL">>, _attrs, _els}) -> {Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video} = - decode_vcard_TEL_els(_els, undefined, false, false, + decode_vcard_TEL_els(__TopXMLNS, _els, undefined, false, false, false, false, false, false, false, false, - false, false, false, false), + false, false, false, false, false), {vcard_tel, Home, Work, Voice, Fax, Pager, Msg, Cell, Video, Bbs, Modem, Isdn, Pcs, Pref, Number}. -decode_vcard_TEL_els([], Number, Pager, Pcs, Bbs, Voice, - Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> +decode_vcard_TEL_els(__TopXMLNS, [], Number, Pager, Pcs, + Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, + Isdn, Video) -> {Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video}; -decode_vcard_TEL_els([{xmlel, <<"HOME">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, decode_vcard_HOME(_el), Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video); +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, + decode_vcard_HOME(__TopXMLNS, _el), Pref, Msg, + Fax, Work, Cell, Modem, Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"WORK">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, - decode_vcard_WORK(_el), Cell, Modem, Isdn, - Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, + decode_vcard_WORK(__TopXMLNS, _el), Cell, Modem, + Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"VOICE">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - decode_vcard_VOICE(_el), Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"VOICE">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, decode_vcard_VOICE(__TopXMLNS, _el), + Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"FAX">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, decode_vcard_FAX(_el), - Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"FAX">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, + decode_vcard_FAX(__TopXMLNS, _el), Work, Cell, + Modem, Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"PAGER">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, + decode_vcard_PAGER(__TopXMLNS, _el), Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"PAGER">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, - decode_vcard_PAGER(_el), Pcs, Bbs, Voice, Home, - Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); + Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"MSG">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, decode_vcard_MSG(_el), Fax, - Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"MSG">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, + decode_vcard_MSG(__TopXMLNS, _el), Fax, Work, + Cell, Modem, Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"CELL">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, - decode_vcard_CELL(_el), Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"CELL">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + decode_vcard_CELL(__TopXMLNS, _el), Modem, Isdn, + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"VIDEO">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, decode_vcard_VIDEO(_el)); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"VIDEO">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, + decode_vcard_VIDEO(__TopXMLNS, _el)); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"BBS">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, - decode_vcard_BBS(_el), Voice, Home, Pref, Msg, - Fax, Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"BBS">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, decode_vcard_BBS(__TopXMLNS, _el), Voice, + Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"MODEM">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, - decode_vcard_MODEM(_el), Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"MODEM">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, decode_vcard_MODEM(__TopXMLNS, _el), Isdn, + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"ISDN">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - decode_vcard_ISDN(_el), Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"ISDN">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, decode_vcard_ISDN(__TopXMLNS, _el), + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"PCS">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, - decode_vcard_PCS(_el), Bbs, Voice, Home, Pref, - Msg, Fax, Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"PCS">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + decode_vcard_PCS(__TopXMLNS, _el), Bbs, Voice, + Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, + Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"PREF">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, decode_vcard_PREF(_el), Msg, Fax, + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, + decode_vcard_PREF(__TopXMLNS, _el), Msg, Fax, Work, Cell, Modem, Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) - end; -decode_vcard_TEL_els([{xmlel, <<"NUMBER">>, _attrs, _} = - _el - | _els], - Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_TEL_els(_els, decode_vcard_NUMBER(_el), - Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, - Work, Cell, Modem, Isdn, Video); + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) + end; +decode_vcard_TEL_els(__TopXMLNS, + [{xmlel, <<"NUMBER">>, _attrs, _} = _el | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_TEL_els(__TopXMLNS, _els, + decode_vcard_NUMBER(__TopXMLNS, _el), Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video); true -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) end; -decode_vcard_TEL_els([_ | _els], Number, Pager, Pcs, - Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, - Isdn, Video) -> - decode_vcard_TEL_els(_els, Number, Pager, Pcs, Bbs, - Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, - Video). +decode_vcard_TEL_els(__TopXMLNS, [_ | _els], Number, + Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, + Cell, Modem, Isdn, Video) -> + decode_vcard_TEL_els(__TopXMLNS, _els, Number, Pager, + Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, + Modem, Isdn, Video). encode_vcard_TEL({vcard_tel, Home, Work, Voice, Fax, Pager, Msg, Cell, Video, Bbs, Modem, Isdn, Pcs, Pref, @@ -7927,127 +8502,123 @@ encode_vcard_TEL({vcard_tel, Home, Work, Voice, Fax, 'encode_vcard_TEL_$video'(Video, _acc) -> [encode_vcard_VIDEO(Video, []) | _acc]. -decode_vcard_LABEL({xmlel, <<"LABEL">>, _attrs, - _els}) -> +decode_vcard_LABEL(__TopXMLNS, + {xmlel, <<"LABEL">>, _attrs, _els}) -> {Line, Home, Pref, Work, Intl, Parcel, Postal, Dom} = - decode_vcard_LABEL_els(_els, [], false, false, false, - false, false, false, false), + decode_vcard_LABEL_els(__TopXMLNS, _els, [], false, + false, false, false, false, false, false), {vcard_label, Home, Work, Postal, Parcel, Dom, Intl, Pref, Line}. -decode_vcard_LABEL_els([], Line, Home, Pref, Work, Intl, - Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, [], Line, Home, Pref, + Work, Intl, Parcel, Postal, Dom) -> {lists:reverse(Line), Home, Pref, Work, Intl, Parcel, Postal, Dom}; -decode_vcard_LABEL_els([{xmlel, <<"HOME">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, - decode_vcard_HOME(_el), Pref, Work, Intl, - Parcel, Postal, Dom); +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, + decode_vcard_HOME(__TopXMLNS, _el), Pref, + Work, Intl, Parcel, Postal, Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"WORK">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, - decode_vcard_WORK(_el), Intl, Parcel, Postal, - Dom); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, decode_vcard_WORK(__TopXMLNS, _el), + Intl, Parcel, Postal, Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"POSTAL">>, _attrs, - _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"POSTAL">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, decode_vcard_POSTAL(_el), Dom); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, + decode_vcard_POSTAL(__TopXMLNS, _el), Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"PARCEL">>, _attrs, - _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"PARCEL">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, decode_vcard_PARCEL(_el), Postal, Dom); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, + decode_vcard_PARCEL(__TopXMLNS, _el), Postal, + Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"DOM">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"DOM">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, decode_vcard_DOM(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, + decode_vcard_DOM(__TopXMLNS, _el)); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"INTL">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"INTL">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - decode_vcard_INTL(_el), Parcel, Postal, Dom); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, + decode_vcard_INTL(__TopXMLNS, _el), Parcel, + Postal, Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"PREF">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, Line, Home, - decode_vcard_PREF(_el), Work, Intl, Parcel, - Postal, Dom); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + decode_vcard_PREF(__TopXMLNS, _el), Work, + Intl, Parcel, Postal, Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([{xmlel, <<"LINE">>, _attrs, _} = - _el - | _els], - Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> +decode_vcard_LABEL_els(__TopXMLNS, + [{xmlel, <<"LINE">>, _attrs, _} = _el | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_LABEL_els(_els, - case decode_vcard_LINE(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_LABEL_els(__TopXMLNS, _els, + case decode_vcard_LINE(__TopXMLNS, _el) of undefined -> Line; _new_el -> [_new_el | Line] end, Home, Pref, Work, Intl, Parcel, Postal, Dom); true -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom) + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom) end; -decode_vcard_LABEL_els([_ | _els], Line, Home, Pref, - Work, Intl, Parcel, Postal, Dom) -> - decode_vcard_LABEL_els(_els, Line, Home, Pref, Work, - Intl, Parcel, Postal, Dom). +decode_vcard_LABEL_els(__TopXMLNS, [_ | _els], Line, + Home, Pref, Work, Intl, Parcel, Postal, Dom) -> + decode_vcard_LABEL_els(__TopXMLNS, _els, Line, Home, + Pref, Work, Intl, Parcel, Postal, Dom). encode_vcard_LABEL({vcard_label, Home, Work, Postal, Parcel, Dom, Intl, Pref, Line}, @@ -8097,244 +8668,240 @@ encode_vcard_LABEL({vcard_label, Home, Work, Postal, 'encode_vcard_LABEL_$dom'(Dom, _acc) -> [encode_vcard_DOM(Dom, []) | _acc]. -decode_vcard_ADR({xmlel, <<"ADR">>, _attrs, _els}) -> +decode_vcard_ADR(__TopXMLNS, + {xmlel, <<"ADR">>, _attrs, _els}) -> {Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region} = - decode_vcard_ADR_els(_els, undefined, undefined, - undefined, false, false, undefined, undefined, - undefined, false, false, false, false, false, - undefined), + decode_vcard_ADR_els(__TopXMLNS, _els, undefined, + undefined, undefined, false, false, undefined, + undefined, undefined, false, false, false, false, + false, undefined), {vcard_adr, Home, Work, Postal, Parcel, Dom, Intl, Pref, Pobox, Extadd, Street, Locality, Region, Pcode, Ctry}. -decode_vcard_ADR_els([], Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, - Dom, Region) -> +decode_vcard_ADR_els(__TopXMLNS, [], Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, + Parcel, Postal, Dom, Region) -> {Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region}; -decode_vcard_ADR_els([{xmlel, <<"HOME">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, - decode_vcard_HOME(_el), Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, - Region); - true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"WORK">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, - decode_vcard_WORK(_el), Intl, Parcel, Postal, - Dom, Region); - true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"POSTAL">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - decode_vcard_POSTAL(_el), Dom, Region); - true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"PARCEL">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, - decode_vcard_PARCEL(_el), Postal, Dom, Region); +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, decode_vcard_HOME(__TopXMLNS, _el), Pref, + Pobox, Ctry, Locality, Work, Intl, Parcel, + Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"DOM">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, decode_vcard_DOM(_el), Region); + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, + decode_vcard_WORK(__TopXMLNS, _el), Intl, + Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"INTL">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, - decode_vcard_INTL(_el), Parcel, Postal, Dom, + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"POSTAL">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, + decode_vcard_POSTAL(__TopXMLNS, _el), Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"PREF">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - decode_vcard_PREF(_el), Pobox, Ctry, Locality, - Work, Intl, Parcel, Postal, Dom, Region); + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"PARCEL">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, decode_vcard_PARCEL(__TopXMLNS, _el), + Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"POBOX">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, decode_vcard_POBOX(_el), Ctry, Locality, - Work, Intl, Parcel, Postal, Dom, Region); + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"DOM">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, + decode_vcard_DOM(__TopXMLNS, _el), Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"EXTADD">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, - decode_vcard_EXTADD(_el), Pcode, Home, Pref, + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"INTL">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + decode_vcard_INTL(__TopXMLNS, _el), Parcel, + Postal, Dom, Region); + true -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, decode_vcard_PREF(__TopXMLNS, _el), Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"STREET">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, decode_vcard_STREET(_el), - Extadd, Pcode, Home, Pref, Pobox, Ctry, + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"POBOX">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, + decode_vcard_POBOX(__TopXMLNS, _el), Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"LOCALITY">>, _attrs, - _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, decode_vcard_LOCALITY(_el), - Work, Intl, Parcel, Postal, Dom, Region); + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"EXTADD">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, + decode_vcard_EXTADD(__TopXMLNS, _el), Pcode, + Home, Pref, Pobox, Ctry, Locality, Work, Intl, + Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"REGION">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, decode_vcard_REGION(_el)); + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"STREET">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, + decode_vcard_STREET(__TopXMLNS, _el), Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) end; -decode_vcard_ADR_els([{xmlel, <<"PCODE">>, _attrs, _} = - _el - | _els], +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"LOCALITY">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, - decode_vcard_PCODE(_el), Home, Pref, Pobox, - Ctry, Locality, Work, Intl, Parcel, Postal, Dom, - Region); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, + decode_vcard_LOCALITY(__TopXMLNS, _el), Work, + Intl, Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) - end; -decode_vcard_ADR_els([{xmlel, <<"CTRY">>, _attrs, _} = - _el - | _els], - Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, - Locality, Work, Intl, Parcel, Postal, Dom, Region) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, decode_vcard_CTRY(_el), Locality, + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"REGION">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, + decode_vcard_REGION(__TopXMLNS, _el)); + true -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"PCODE">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + decode_vcard_PCODE(__TopXMLNS, _el), Home, Pref, + Pobox, Ctry, Locality, Work, Intl, Parcel, + Postal, Dom, Region); + true -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) + end; +decode_vcard_ADR_els(__TopXMLNS, + [{xmlel, <<"CTRY">>, _attrs, _} = _el | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, + decode_vcard_CTRY(__TopXMLNS, _el), Locality, Work, Intl, Parcel, Postal, Dom, Region); true -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) end; -decode_vcard_ADR_els([_ | _els], Street, Extadd, Pcode, - Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region) -> - decode_vcard_ADR_els(_els, Street, Extadd, Pcode, Home, - Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, - Postal, Dom, Region). +decode_vcard_ADR_els(__TopXMLNS, [_ | _els], Street, + Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, + Intl, Parcel, Postal, Dom, Region) -> + decode_vcard_ADR_els(__TopXMLNS, _els, Street, Extadd, + Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, + Parcel, Postal, Dom, Region). encode_vcard_ADR({vcard_adr, Home, Work, Postal, Parcel, Dom, Intl, Pref, Pobox, Extadd, Street, Locality, @@ -8414,79 +8981,80 @@ encode_vcard_ADR({vcard_adr, Home, Work, Postal, Parcel, 'encode_vcard_ADR_$region'(Region, _acc) -> [encode_vcard_REGION(Region, []) | _acc]. -decode_vcard_N({xmlel, <<"N">>, _attrs, _els}) -> +decode_vcard_N(__TopXMLNS, + {xmlel, <<"N">>, _attrs, _els}) -> {Middle, Suffix, Prefix, Family, Given} = - decode_vcard_N_els(_els, undefined, undefined, - undefined, undefined, undefined), + decode_vcard_N_els(__TopXMLNS, _els, undefined, + undefined, undefined, undefined, undefined), {vcard_name, Family, Given, Middle, Prefix, Suffix}. -decode_vcard_N_els([], Middle, Suffix, Prefix, Family, - Given) -> +decode_vcard_N_els(__TopXMLNS, [], Middle, Suffix, + Prefix, Family, Given) -> {Middle, Suffix, Prefix, Family, Given}; -decode_vcard_N_els([{xmlel, <<"FAMILY">>, _attrs, _} = - _el - | _els], - Middle, Suffix, Prefix, Family, Given) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, - decode_vcard_FAMILY(_el), Given); +decode_vcard_N_els(__TopXMLNS, + [{xmlel, <<"FAMILY">>, _attrs, _} = _el | _els], Middle, + Suffix, Prefix, Family, Given) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, decode_vcard_FAMILY(__TopXMLNS, _el), + Given); true -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given) + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given) end; -decode_vcard_N_els([{xmlel, <<"GIVEN">>, _attrs, _} = - _el - | _els], - Middle, Suffix, Prefix, Family, Given) -> +decode_vcard_N_els(__TopXMLNS, + [{xmlel, <<"GIVEN">>, _attrs, _} = _el | _els], Middle, + Suffix, Prefix, Family, Given) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - decode_vcard_GIVEN(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, + decode_vcard_GIVEN(__TopXMLNS, _el)); true -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given) + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given) end; -decode_vcard_N_els([{xmlel, <<"MIDDLE">>, _attrs, _} = - _el - | _els], - Middle, Suffix, Prefix, Family, Given) -> +decode_vcard_N_els(__TopXMLNS, + [{xmlel, <<"MIDDLE">>, _attrs, _} = _el | _els], Middle, + Suffix, Prefix, Family, Given) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_N_els(_els, decode_vcard_MIDDLE(_el), - Suffix, Prefix, Family, Given); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_N_els(__TopXMLNS, _els, + decode_vcard_MIDDLE(__TopXMLNS, _el), Suffix, + Prefix, Family, Given); true -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given) + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given) end; -decode_vcard_N_els([{xmlel, <<"PREFIX">>, _attrs, _} = - _el - | _els], - Middle, Suffix, Prefix, Family, Given) -> +decode_vcard_N_els(__TopXMLNS, + [{xmlel, <<"PREFIX">>, _attrs, _} = _el | _els], Middle, + Suffix, Prefix, Family, Given) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_N_els(_els, Middle, Suffix, - decode_vcard_PREFIX(_el), Family, Given); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + decode_vcard_PREFIX(__TopXMLNS, _el), Family, + Given); true -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given) + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given) end; -decode_vcard_N_els([{xmlel, <<"SUFFIX">>, _attrs, _} = - _el - | _els], - Middle, Suffix, Prefix, Family, Given) -> +decode_vcard_N_els(__TopXMLNS, + [{xmlel, <<"SUFFIX">>, _attrs, _} = _el | _els], Middle, + Suffix, Prefix, Family, Given) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"vcard-temp">> -> - decode_vcard_N_els(_els, Middle, - decode_vcard_SUFFIX(_el), Prefix, Family, Given); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_vcard_N_els(__TopXMLNS, _els, Middle, + decode_vcard_SUFFIX(__TopXMLNS, _el), Prefix, + Family, Given); true -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given) + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given) end; -decode_vcard_N_els([_ | _els], Middle, Suffix, Prefix, - Family, Given) -> - decode_vcard_N_els(_els, Middle, Suffix, Prefix, Family, - Given). +decode_vcard_N_els(__TopXMLNS, [_ | _els], Middle, + Suffix, Prefix, Family, Given) -> + decode_vcard_N_els(__TopXMLNS, _els, Middle, Suffix, + Prefix, Family, Given). encode_vcard_N({vcard_name, Family, Given, Middle, Prefix, Suffix}, @@ -8520,8 +9088,8 @@ encode_vcard_N({vcard_name, Family, Given, Middle, 'encode_vcard_N_$given'(Given, _acc) -> [encode_vcard_GIVEN(Given, []) | _acc]. -decode_vcard_CONFIDENTIAL({xmlel, <<"CONFIDENTIAL">>, - _attrs, _els}) -> +decode_vcard_CONFIDENTIAL(__TopXMLNS, + {xmlel, <<"CONFIDENTIAL">>, _attrs, _els}) -> confidential. encode_vcard_CONFIDENTIAL(confidential, _xmlns_attrs) -> @@ -8529,8 +9097,8 @@ encode_vcard_CONFIDENTIAL(confidential, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"CONFIDENTIAL">>, _attrs, _els}. -decode_vcard_PRIVATE({xmlel, <<"PRIVATE">>, _attrs, - _els}) -> +decode_vcard_PRIVATE(__TopXMLNS, + {xmlel, <<"PRIVATE">>, _attrs, _els}) -> private. encode_vcard_PRIVATE(private, _xmlns_attrs) -> @@ -8538,8 +9106,8 @@ encode_vcard_PRIVATE(private, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PRIVATE">>, _attrs, _els}. -decode_vcard_PUBLIC({xmlel, <<"PUBLIC">>, _attrs, - _els}) -> +decode_vcard_PUBLIC(__TopXMLNS, + {xmlel, <<"PUBLIC">>, _attrs, _els}) -> public. encode_vcard_PUBLIC(public, _xmlns_attrs) -> @@ -8547,992 +9115,1100 @@ encode_vcard_PUBLIC(public, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PUBLIC">>, _attrs, _els}. -decode_vcard_EXTVAL({xmlel, <<"EXTVAL">>, _attrs, - _els}) -> - Cdata = decode_vcard_EXTVAL_els(_els, <<>>), Cdata. +decode_vcard_EXTVAL(__TopXMLNS, + {xmlel, <<"EXTVAL">>, _attrs, _els}) -> + Cdata = decode_vcard_EXTVAL_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_EXTVAL_els([], Cdata) -> - decode_vcard_EXTVAL_cdata(Cdata); -decode_vcard_EXTVAL_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_EXTVAL_els(_els, +decode_vcard_EXTVAL_els(__TopXMLNS, [], Cdata) -> + decode_vcard_EXTVAL_cdata(__TopXMLNS, Cdata); +decode_vcard_EXTVAL_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_EXTVAL_els(__TopXMLNS, _els, <>); -decode_vcard_EXTVAL_els([_ | _els], Cdata) -> - decode_vcard_EXTVAL_els(_els, Cdata). +decode_vcard_EXTVAL_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_EXTVAL_els(__TopXMLNS, _els, Cdata). encode_vcard_EXTVAL(Cdata, _xmlns_attrs) -> _els = encode_vcard_EXTVAL_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"EXTVAL">>, _attrs, _els}. -decode_vcard_EXTVAL_cdata(<<>>) -> undefined; -decode_vcard_EXTVAL_cdata(_val) -> _val. +decode_vcard_EXTVAL_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_EXTVAL_cdata(__TopXMLNS, _val) -> _val. encode_vcard_EXTVAL_cdata(undefined, _acc) -> _acc; encode_vcard_EXTVAL_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_TYPE({xmlel, <<"TYPE">>, _attrs, _els}) -> - Cdata = decode_vcard_TYPE_els(_els, <<>>), Cdata. +decode_vcard_TYPE(__TopXMLNS, + {xmlel, <<"TYPE">>, _attrs, _els}) -> + Cdata = decode_vcard_TYPE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_TYPE_els([], Cdata) -> - decode_vcard_TYPE_cdata(Cdata); -decode_vcard_TYPE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_TYPE_els(_els, +decode_vcard_TYPE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_TYPE_cdata(__TopXMLNS, Cdata); +decode_vcard_TYPE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_TYPE_els(__TopXMLNS, _els, <>); -decode_vcard_TYPE_els([_ | _els], Cdata) -> - decode_vcard_TYPE_els(_els, Cdata). +decode_vcard_TYPE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_TYPE_els(__TopXMLNS, _els, Cdata). encode_vcard_TYPE(Cdata, _xmlns_attrs) -> _els = encode_vcard_TYPE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"TYPE">>, _attrs, _els}. -decode_vcard_TYPE_cdata(<<>>) -> undefined; -decode_vcard_TYPE_cdata(_val) -> _val. +decode_vcard_TYPE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_TYPE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TYPE_cdata(undefined, _acc) -> _acc; encode_vcard_TYPE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_DESC({xmlel, <<"DESC">>, _attrs, _els}) -> - Cdata = decode_vcard_DESC_els(_els, <<>>), Cdata. +decode_vcard_DESC(__TopXMLNS, + {xmlel, <<"DESC">>, _attrs, _els}) -> + Cdata = decode_vcard_DESC_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_DESC_els([], Cdata) -> - decode_vcard_DESC_cdata(Cdata); -decode_vcard_DESC_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_DESC_els(_els, +decode_vcard_DESC_els(__TopXMLNS, [], Cdata) -> + decode_vcard_DESC_cdata(__TopXMLNS, Cdata); +decode_vcard_DESC_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_DESC_els(__TopXMLNS, _els, <>); -decode_vcard_DESC_els([_ | _els], Cdata) -> - decode_vcard_DESC_els(_els, Cdata). +decode_vcard_DESC_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_DESC_els(__TopXMLNS, _els, Cdata). encode_vcard_DESC(Cdata, _xmlns_attrs) -> _els = encode_vcard_DESC_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"DESC">>, _attrs, _els}. -decode_vcard_DESC_cdata(<<>>) -> undefined; -decode_vcard_DESC_cdata(_val) -> _val. +decode_vcard_DESC_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_DESC_cdata(__TopXMLNS, _val) -> _val. encode_vcard_DESC_cdata(undefined, _acc) -> _acc; encode_vcard_DESC_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_URL({xmlel, <<"URL">>, _attrs, _els}) -> - Cdata = decode_vcard_URL_els(_els, <<>>), Cdata. +decode_vcard_URL(__TopXMLNS, + {xmlel, <<"URL">>, _attrs, _els}) -> + Cdata = decode_vcard_URL_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_URL_els([], Cdata) -> - decode_vcard_URL_cdata(Cdata); -decode_vcard_URL_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_URL_els(_els, +decode_vcard_URL_els(__TopXMLNS, [], Cdata) -> + decode_vcard_URL_cdata(__TopXMLNS, Cdata); +decode_vcard_URL_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_URL_els(__TopXMLNS, _els, <>); -decode_vcard_URL_els([_ | _els], Cdata) -> - decode_vcard_URL_els(_els, Cdata). +decode_vcard_URL_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_URL_els(__TopXMLNS, _els, Cdata). encode_vcard_URL(Cdata, _xmlns_attrs) -> _els = encode_vcard_URL_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"URL">>, _attrs, _els}. -decode_vcard_URL_cdata(<<>>) -> undefined; -decode_vcard_URL_cdata(_val) -> _val. +decode_vcard_URL_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_URL_cdata(__TopXMLNS, _val) -> _val. encode_vcard_URL_cdata(undefined, _acc) -> _acc; encode_vcard_URL_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_UID({xmlel, <<"UID">>, _attrs, _els}) -> - Cdata = decode_vcard_UID_els(_els, <<>>), Cdata. +decode_vcard_UID(__TopXMLNS, + {xmlel, <<"UID">>, _attrs, _els}) -> + Cdata = decode_vcard_UID_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_UID_els([], Cdata) -> - decode_vcard_UID_cdata(Cdata); -decode_vcard_UID_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_UID_els(_els, +decode_vcard_UID_els(__TopXMLNS, [], Cdata) -> + decode_vcard_UID_cdata(__TopXMLNS, Cdata); +decode_vcard_UID_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_UID_els(__TopXMLNS, _els, <>); -decode_vcard_UID_els([_ | _els], Cdata) -> - decode_vcard_UID_els(_els, Cdata). +decode_vcard_UID_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_UID_els(__TopXMLNS, _els, Cdata). encode_vcard_UID(Cdata, _xmlns_attrs) -> _els = encode_vcard_UID_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"UID">>, _attrs, _els}. -decode_vcard_UID_cdata(<<>>) -> undefined; -decode_vcard_UID_cdata(_val) -> _val. +decode_vcard_UID_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_UID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_UID_cdata(undefined, _acc) -> _acc; encode_vcard_UID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_SORT_STRING({xmlel, <<"SORT-STRING">>, - _attrs, _els}) -> - Cdata = decode_vcard_SORT_STRING_els(_els, <<>>), Cdata. +decode_vcard_SORT_STRING(__TopXMLNS, + {xmlel, <<"SORT-STRING">>, _attrs, _els}) -> + Cdata = decode_vcard_SORT_STRING_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_SORT_STRING_els([], Cdata) -> - decode_vcard_SORT_STRING_cdata(Cdata); -decode_vcard_SORT_STRING_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_SORT_STRING_els(_els, +decode_vcard_SORT_STRING_els(__TopXMLNS, [], Cdata) -> + decode_vcard_SORT_STRING_cdata(__TopXMLNS, Cdata); +decode_vcard_SORT_STRING_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_SORT_STRING_els(__TopXMLNS, _els, <>); -decode_vcard_SORT_STRING_els([_ | _els], Cdata) -> - decode_vcard_SORT_STRING_els(_els, Cdata). +decode_vcard_SORT_STRING_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_SORT_STRING_els(__TopXMLNS, _els, Cdata). encode_vcard_SORT_STRING(Cdata, _xmlns_attrs) -> _els = encode_vcard_SORT_STRING_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"SORT-STRING">>, _attrs, _els}. -decode_vcard_SORT_STRING_cdata(<<>>) -> undefined; -decode_vcard_SORT_STRING_cdata(_val) -> _val. +decode_vcard_SORT_STRING_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_SORT_STRING_cdata(__TopXMLNS, _val) -> + _val. encode_vcard_SORT_STRING_cdata(undefined, _acc) -> _acc; encode_vcard_SORT_STRING_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_REV({xmlel, <<"REV">>, _attrs, _els}) -> - Cdata = decode_vcard_REV_els(_els, <<>>), Cdata. +decode_vcard_REV(__TopXMLNS, + {xmlel, <<"REV">>, _attrs, _els}) -> + Cdata = decode_vcard_REV_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_REV_els([], Cdata) -> - decode_vcard_REV_cdata(Cdata); -decode_vcard_REV_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_REV_els(_els, +decode_vcard_REV_els(__TopXMLNS, [], Cdata) -> + decode_vcard_REV_cdata(__TopXMLNS, Cdata); +decode_vcard_REV_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_REV_els(__TopXMLNS, _els, <>); -decode_vcard_REV_els([_ | _els], Cdata) -> - decode_vcard_REV_els(_els, Cdata). +decode_vcard_REV_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_REV_els(__TopXMLNS, _els, Cdata). encode_vcard_REV(Cdata, _xmlns_attrs) -> _els = encode_vcard_REV_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"REV">>, _attrs, _els}. -decode_vcard_REV_cdata(<<>>) -> undefined; -decode_vcard_REV_cdata(_val) -> _val. +decode_vcard_REV_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_REV_cdata(__TopXMLNS, _val) -> _val. encode_vcard_REV_cdata(undefined, _acc) -> _acc; encode_vcard_REV_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_PRODID({xmlel, <<"PRODID">>, _attrs, - _els}) -> - Cdata = decode_vcard_PRODID_els(_els, <<>>), Cdata. +decode_vcard_PRODID(__TopXMLNS, + {xmlel, <<"PRODID">>, _attrs, _els}) -> + Cdata = decode_vcard_PRODID_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_PRODID_els([], Cdata) -> - decode_vcard_PRODID_cdata(Cdata); -decode_vcard_PRODID_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_PRODID_els(_els, +decode_vcard_PRODID_els(__TopXMLNS, [], Cdata) -> + decode_vcard_PRODID_cdata(__TopXMLNS, Cdata); +decode_vcard_PRODID_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_PRODID_els(__TopXMLNS, _els, <>); -decode_vcard_PRODID_els([_ | _els], Cdata) -> - decode_vcard_PRODID_els(_els, Cdata). +decode_vcard_PRODID_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_PRODID_els(__TopXMLNS, _els, Cdata). encode_vcard_PRODID(Cdata, _xmlns_attrs) -> _els = encode_vcard_PRODID_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"PRODID">>, _attrs, _els}. -decode_vcard_PRODID_cdata(<<>>) -> undefined; -decode_vcard_PRODID_cdata(_val) -> _val. +decode_vcard_PRODID_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_PRODID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PRODID_cdata(undefined, _acc) -> _acc; encode_vcard_PRODID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_NOTE({xmlel, <<"NOTE">>, _attrs, _els}) -> - Cdata = decode_vcard_NOTE_els(_els, <<>>), Cdata. +decode_vcard_NOTE(__TopXMLNS, + {xmlel, <<"NOTE">>, _attrs, _els}) -> + Cdata = decode_vcard_NOTE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_NOTE_els([], Cdata) -> - decode_vcard_NOTE_cdata(Cdata); -decode_vcard_NOTE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_NOTE_els(_els, +decode_vcard_NOTE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_NOTE_cdata(__TopXMLNS, Cdata); +decode_vcard_NOTE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_NOTE_els(__TopXMLNS, _els, <>); -decode_vcard_NOTE_els([_ | _els], Cdata) -> - decode_vcard_NOTE_els(_els, Cdata). +decode_vcard_NOTE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_NOTE_els(__TopXMLNS, _els, Cdata). encode_vcard_NOTE(Cdata, _xmlns_attrs) -> _els = encode_vcard_NOTE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"NOTE">>, _attrs, _els}. -decode_vcard_NOTE_cdata(<<>>) -> undefined; -decode_vcard_NOTE_cdata(_val) -> _val. +decode_vcard_NOTE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_NOTE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NOTE_cdata(undefined, _acc) -> _acc; encode_vcard_NOTE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_KEYWORD({xmlel, <<"KEYWORD">>, _attrs, - _els}) -> - Cdata = decode_vcard_KEYWORD_els(_els, <<>>), Cdata. +decode_vcard_KEYWORD(__TopXMLNS, + {xmlel, <<"KEYWORD">>, _attrs, _els}) -> + Cdata = decode_vcard_KEYWORD_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_KEYWORD_els([], Cdata) -> - decode_vcard_KEYWORD_cdata(Cdata); -decode_vcard_KEYWORD_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_KEYWORD_els(_els, +decode_vcard_KEYWORD_els(__TopXMLNS, [], Cdata) -> + decode_vcard_KEYWORD_cdata(__TopXMLNS, Cdata); +decode_vcard_KEYWORD_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_KEYWORD_els(__TopXMLNS, _els, <>); -decode_vcard_KEYWORD_els([_ | _els], Cdata) -> - decode_vcard_KEYWORD_els(_els, Cdata). +decode_vcard_KEYWORD_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_KEYWORD_els(__TopXMLNS, _els, Cdata). encode_vcard_KEYWORD(Cdata, _xmlns_attrs) -> _els = encode_vcard_KEYWORD_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"KEYWORD">>, _attrs, _els}. -decode_vcard_KEYWORD_cdata(<<>>) -> undefined; -decode_vcard_KEYWORD_cdata(_val) -> _val. +decode_vcard_KEYWORD_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_KEYWORD_cdata(__TopXMLNS, _val) -> _val. encode_vcard_KEYWORD_cdata(undefined, _acc) -> _acc; encode_vcard_KEYWORD_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_ROLE({xmlel, <<"ROLE">>, _attrs, _els}) -> - Cdata = decode_vcard_ROLE_els(_els, <<>>), Cdata. +decode_vcard_ROLE(__TopXMLNS, + {xmlel, <<"ROLE">>, _attrs, _els}) -> + Cdata = decode_vcard_ROLE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_ROLE_els([], Cdata) -> - decode_vcard_ROLE_cdata(Cdata); -decode_vcard_ROLE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_ROLE_els(_els, +decode_vcard_ROLE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_ROLE_cdata(__TopXMLNS, Cdata); +decode_vcard_ROLE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_ROLE_els(__TopXMLNS, _els, <>); -decode_vcard_ROLE_els([_ | _els], Cdata) -> - decode_vcard_ROLE_els(_els, Cdata). +decode_vcard_ROLE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_ROLE_els(__TopXMLNS, _els, Cdata). encode_vcard_ROLE(Cdata, _xmlns_attrs) -> _els = encode_vcard_ROLE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"ROLE">>, _attrs, _els}. -decode_vcard_ROLE_cdata(<<>>) -> undefined; -decode_vcard_ROLE_cdata(_val) -> _val. +decode_vcard_ROLE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_ROLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ROLE_cdata(undefined, _acc) -> _acc; encode_vcard_ROLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_TITLE({xmlel, <<"TITLE">>, _attrs, - _els}) -> - Cdata = decode_vcard_TITLE_els(_els, <<>>), Cdata. +decode_vcard_TITLE(__TopXMLNS, + {xmlel, <<"TITLE">>, _attrs, _els}) -> + Cdata = decode_vcard_TITLE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_TITLE_els([], Cdata) -> - decode_vcard_TITLE_cdata(Cdata); -decode_vcard_TITLE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_TITLE_els(_els, +decode_vcard_TITLE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_TITLE_cdata(__TopXMLNS, Cdata); +decode_vcard_TITLE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_TITLE_els(__TopXMLNS, _els, <>); -decode_vcard_TITLE_els([_ | _els], Cdata) -> - decode_vcard_TITLE_els(_els, Cdata). +decode_vcard_TITLE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_TITLE_els(__TopXMLNS, _els, Cdata). encode_vcard_TITLE(Cdata, _xmlns_attrs) -> _els = encode_vcard_TITLE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"TITLE">>, _attrs, _els}. -decode_vcard_TITLE_cdata(<<>>) -> undefined; -decode_vcard_TITLE_cdata(_val) -> _val. +decode_vcard_TITLE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_TITLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TITLE_cdata(undefined, _acc) -> _acc; encode_vcard_TITLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_TZ({xmlel, <<"TZ">>, _attrs, _els}) -> - Cdata = decode_vcard_TZ_els(_els, <<>>), Cdata. +decode_vcard_TZ(__TopXMLNS, + {xmlel, <<"TZ">>, _attrs, _els}) -> + Cdata = decode_vcard_TZ_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_TZ_els([], Cdata) -> - decode_vcard_TZ_cdata(Cdata); -decode_vcard_TZ_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_TZ_els(_els, +decode_vcard_TZ_els(__TopXMLNS, [], Cdata) -> + decode_vcard_TZ_cdata(__TopXMLNS, Cdata); +decode_vcard_TZ_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_TZ_els(__TopXMLNS, _els, <>); -decode_vcard_TZ_els([_ | _els], Cdata) -> - decode_vcard_TZ_els(_els, Cdata). +decode_vcard_TZ_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_TZ_els(__TopXMLNS, _els, Cdata). encode_vcard_TZ(Cdata, _xmlns_attrs) -> _els = encode_vcard_TZ_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"TZ">>, _attrs, _els}. -decode_vcard_TZ_cdata(<<>>) -> undefined; -decode_vcard_TZ_cdata(_val) -> _val. +decode_vcard_TZ_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_TZ_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TZ_cdata(undefined, _acc) -> _acc; encode_vcard_TZ_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_MAILER({xmlel, <<"MAILER">>, _attrs, - _els}) -> - Cdata = decode_vcard_MAILER_els(_els, <<>>), Cdata. +decode_vcard_MAILER(__TopXMLNS, + {xmlel, <<"MAILER">>, _attrs, _els}) -> + Cdata = decode_vcard_MAILER_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_MAILER_els([], Cdata) -> - decode_vcard_MAILER_cdata(Cdata); -decode_vcard_MAILER_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_MAILER_els(_els, +decode_vcard_MAILER_els(__TopXMLNS, [], Cdata) -> + decode_vcard_MAILER_cdata(__TopXMLNS, Cdata); +decode_vcard_MAILER_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_MAILER_els(__TopXMLNS, _els, <>); -decode_vcard_MAILER_els([_ | _els], Cdata) -> - decode_vcard_MAILER_els(_els, Cdata). +decode_vcard_MAILER_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_MAILER_els(__TopXMLNS, _els, Cdata). encode_vcard_MAILER(Cdata, _xmlns_attrs) -> _els = encode_vcard_MAILER_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"MAILER">>, _attrs, _els}. -decode_vcard_MAILER_cdata(<<>>) -> undefined; -decode_vcard_MAILER_cdata(_val) -> _val. +decode_vcard_MAILER_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_MAILER_cdata(__TopXMLNS, _val) -> _val. encode_vcard_MAILER_cdata(undefined, _acc) -> _acc; encode_vcard_MAILER_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_JABBERID({xmlel, <<"JABBERID">>, _attrs, - _els}) -> - Cdata = decode_vcard_JABBERID_els(_els, <<>>), Cdata. +decode_vcard_JABBERID(__TopXMLNS, + {xmlel, <<"JABBERID">>, _attrs, _els}) -> + Cdata = decode_vcard_JABBERID_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_JABBERID_els([], Cdata) -> - decode_vcard_JABBERID_cdata(Cdata); -decode_vcard_JABBERID_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_JABBERID_els(_els, +decode_vcard_JABBERID_els(__TopXMLNS, [], Cdata) -> + decode_vcard_JABBERID_cdata(__TopXMLNS, Cdata); +decode_vcard_JABBERID_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_JABBERID_els(__TopXMLNS, _els, <>); -decode_vcard_JABBERID_els([_ | _els], Cdata) -> - decode_vcard_JABBERID_els(_els, Cdata). +decode_vcard_JABBERID_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_JABBERID_els(__TopXMLNS, _els, Cdata). encode_vcard_JABBERID(Cdata, _xmlns_attrs) -> _els = encode_vcard_JABBERID_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"JABBERID">>, _attrs, _els}. -decode_vcard_JABBERID_cdata(<<>>) -> undefined; -decode_vcard_JABBERID_cdata(_val) -> _val. +decode_vcard_JABBERID_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_JABBERID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_JABBERID_cdata(undefined, _acc) -> _acc; encode_vcard_JABBERID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_BDAY({xmlel, <<"BDAY">>, _attrs, _els}) -> - Cdata = decode_vcard_BDAY_els(_els, <<>>), Cdata. +decode_vcard_BDAY(__TopXMLNS, + {xmlel, <<"BDAY">>, _attrs, _els}) -> + Cdata = decode_vcard_BDAY_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_BDAY_els([], Cdata) -> - decode_vcard_BDAY_cdata(Cdata); -decode_vcard_BDAY_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_BDAY_els(_els, +decode_vcard_BDAY_els(__TopXMLNS, [], Cdata) -> + decode_vcard_BDAY_cdata(__TopXMLNS, Cdata); +decode_vcard_BDAY_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_BDAY_els(__TopXMLNS, _els, <>); -decode_vcard_BDAY_els([_ | _els], Cdata) -> - decode_vcard_BDAY_els(_els, Cdata). +decode_vcard_BDAY_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_BDAY_els(__TopXMLNS, _els, Cdata). encode_vcard_BDAY(Cdata, _xmlns_attrs) -> _els = encode_vcard_BDAY_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"BDAY">>, _attrs, _els}. -decode_vcard_BDAY_cdata(<<>>) -> undefined; -decode_vcard_BDAY_cdata(_val) -> _val. +decode_vcard_BDAY_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_BDAY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_BDAY_cdata(undefined, _acc) -> _acc; encode_vcard_BDAY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_NICKNAME({xmlel, <<"NICKNAME">>, _attrs, - _els}) -> - Cdata = decode_vcard_NICKNAME_els(_els, <<>>), Cdata. +decode_vcard_NICKNAME(__TopXMLNS, + {xmlel, <<"NICKNAME">>, _attrs, _els}) -> + Cdata = decode_vcard_NICKNAME_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_NICKNAME_els([], Cdata) -> - decode_vcard_NICKNAME_cdata(Cdata); -decode_vcard_NICKNAME_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_NICKNAME_els(_els, +decode_vcard_NICKNAME_els(__TopXMLNS, [], Cdata) -> + decode_vcard_NICKNAME_cdata(__TopXMLNS, Cdata); +decode_vcard_NICKNAME_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_NICKNAME_els(__TopXMLNS, _els, <>); -decode_vcard_NICKNAME_els([_ | _els], Cdata) -> - decode_vcard_NICKNAME_els(_els, Cdata). +decode_vcard_NICKNAME_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_NICKNAME_els(__TopXMLNS, _els, Cdata). encode_vcard_NICKNAME(Cdata, _xmlns_attrs) -> _els = encode_vcard_NICKNAME_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"NICKNAME">>, _attrs, _els}. -decode_vcard_NICKNAME_cdata(<<>>) -> undefined; -decode_vcard_NICKNAME_cdata(_val) -> _val. +decode_vcard_NICKNAME_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_NICKNAME_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NICKNAME_cdata(undefined, _acc) -> _acc; encode_vcard_NICKNAME_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_FN({xmlel, <<"FN">>, _attrs, _els}) -> - Cdata = decode_vcard_FN_els(_els, <<>>), Cdata. +decode_vcard_FN(__TopXMLNS, + {xmlel, <<"FN">>, _attrs, _els}) -> + Cdata = decode_vcard_FN_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_FN_els([], Cdata) -> - decode_vcard_FN_cdata(Cdata); -decode_vcard_FN_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_FN_els(_els, +decode_vcard_FN_els(__TopXMLNS, [], Cdata) -> + decode_vcard_FN_cdata(__TopXMLNS, Cdata); +decode_vcard_FN_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_FN_els(__TopXMLNS, _els, <>); -decode_vcard_FN_els([_ | _els], Cdata) -> - decode_vcard_FN_els(_els, Cdata). +decode_vcard_FN_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_FN_els(__TopXMLNS, _els, Cdata). encode_vcard_FN(Cdata, _xmlns_attrs) -> _els = encode_vcard_FN_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"FN">>, _attrs, _els}. -decode_vcard_FN_cdata(<<>>) -> undefined; -decode_vcard_FN_cdata(_val) -> _val. +decode_vcard_FN_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_FN_cdata(__TopXMLNS, _val) -> _val. encode_vcard_FN_cdata(undefined, _acc) -> _acc; encode_vcard_FN_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_VERSION({xmlel, <<"VERSION">>, _attrs, - _els}) -> - Cdata = decode_vcard_VERSION_els(_els, <<>>), Cdata. +decode_vcard_VERSION(__TopXMLNS, + {xmlel, <<"VERSION">>, _attrs, _els}) -> + Cdata = decode_vcard_VERSION_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_VERSION_els([], Cdata) -> - decode_vcard_VERSION_cdata(Cdata); -decode_vcard_VERSION_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_VERSION_els(_els, +decode_vcard_VERSION_els(__TopXMLNS, [], Cdata) -> + decode_vcard_VERSION_cdata(__TopXMLNS, Cdata); +decode_vcard_VERSION_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_VERSION_els(__TopXMLNS, _els, <>); -decode_vcard_VERSION_els([_ | _els], Cdata) -> - decode_vcard_VERSION_els(_els, Cdata). +decode_vcard_VERSION_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_VERSION_els(__TopXMLNS, _els, Cdata). encode_vcard_VERSION(Cdata, _xmlns_attrs) -> _els = encode_vcard_VERSION_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"VERSION">>, _attrs, _els}. -decode_vcard_VERSION_cdata(<<>>) -> undefined; -decode_vcard_VERSION_cdata(_val) -> _val. +decode_vcard_VERSION_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_VERSION_cdata(__TopXMLNS, _val) -> _val. encode_vcard_VERSION_cdata(undefined, _acc) -> _acc; encode_vcard_VERSION_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_CRED({xmlel, <<"CRED">>, _attrs, _els}) -> - Cdata = decode_vcard_CRED_els(_els, <<>>), Cdata. +decode_vcard_CRED(__TopXMLNS, + {xmlel, <<"CRED">>, _attrs, _els}) -> + Cdata = decode_vcard_CRED_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_CRED_els([], Cdata) -> - decode_vcard_CRED_cdata(Cdata); -decode_vcard_CRED_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_CRED_els(_els, +decode_vcard_CRED_els(__TopXMLNS, [], Cdata) -> + decode_vcard_CRED_cdata(__TopXMLNS, Cdata); +decode_vcard_CRED_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_CRED_els(__TopXMLNS, _els, <>); -decode_vcard_CRED_els([_ | _els], Cdata) -> - decode_vcard_CRED_els(_els, Cdata). +decode_vcard_CRED_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_CRED_els(__TopXMLNS, _els, Cdata). encode_vcard_CRED(Cdata, _xmlns_attrs) -> _els = encode_vcard_CRED_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"CRED">>, _attrs, _els}. -decode_vcard_CRED_cdata(<<>>) -> undefined; -decode_vcard_CRED_cdata(_val) -> _val. +decode_vcard_CRED_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_CRED_cdata(__TopXMLNS, _val) -> _val. encode_vcard_CRED_cdata(undefined, _acc) -> _acc; encode_vcard_CRED_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_PHONETIC({xmlel, <<"PHONETIC">>, _attrs, - _els}) -> - Cdata = decode_vcard_PHONETIC_els(_els, <<>>), Cdata. +decode_vcard_PHONETIC(__TopXMLNS, + {xmlel, <<"PHONETIC">>, _attrs, _els}) -> + Cdata = decode_vcard_PHONETIC_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_PHONETIC_els([], Cdata) -> - decode_vcard_PHONETIC_cdata(Cdata); -decode_vcard_PHONETIC_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_PHONETIC_els(_els, +decode_vcard_PHONETIC_els(__TopXMLNS, [], Cdata) -> + decode_vcard_PHONETIC_cdata(__TopXMLNS, Cdata); +decode_vcard_PHONETIC_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_PHONETIC_els(__TopXMLNS, _els, <>); -decode_vcard_PHONETIC_els([_ | _els], Cdata) -> - decode_vcard_PHONETIC_els(_els, Cdata). +decode_vcard_PHONETIC_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_PHONETIC_els(__TopXMLNS, _els, Cdata). encode_vcard_PHONETIC(Cdata, _xmlns_attrs) -> _els = encode_vcard_PHONETIC_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"PHONETIC">>, _attrs, _els}. -decode_vcard_PHONETIC_cdata(<<>>) -> undefined; -decode_vcard_PHONETIC_cdata(_val) -> _val. +decode_vcard_PHONETIC_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_PHONETIC_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PHONETIC_cdata(undefined, _acc) -> _acc; encode_vcard_PHONETIC_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_ORGUNIT({xmlel, <<"ORGUNIT">>, _attrs, - _els}) -> - Cdata = decode_vcard_ORGUNIT_els(_els, <<>>), Cdata. +decode_vcard_ORGUNIT(__TopXMLNS, + {xmlel, <<"ORGUNIT">>, _attrs, _els}) -> + Cdata = decode_vcard_ORGUNIT_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_ORGUNIT_els([], Cdata) -> - decode_vcard_ORGUNIT_cdata(Cdata); -decode_vcard_ORGUNIT_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_ORGUNIT_els(_els, +decode_vcard_ORGUNIT_els(__TopXMLNS, [], Cdata) -> + decode_vcard_ORGUNIT_cdata(__TopXMLNS, Cdata); +decode_vcard_ORGUNIT_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_ORGUNIT_els(__TopXMLNS, _els, <>); -decode_vcard_ORGUNIT_els([_ | _els], Cdata) -> - decode_vcard_ORGUNIT_els(_els, Cdata). +decode_vcard_ORGUNIT_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_ORGUNIT_els(__TopXMLNS, _els, Cdata). encode_vcard_ORGUNIT(Cdata, _xmlns_attrs) -> _els = encode_vcard_ORGUNIT_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"ORGUNIT">>, _attrs, _els}. -decode_vcard_ORGUNIT_cdata(<<>>) -> undefined; -decode_vcard_ORGUNIT_cdata(_val) -> _val. +decode_vcard_ORGUNIT_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_ORGUNIT_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ORGUNIT_cdata(undefined, _acc) -> _acc; encode_vcard_ORGUNIT_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_ORGNAME({xmlel, <<"ORGNAME">>, _attrs, - _els}) -> - Cdata = decode_vcard_ORGNAME_els(_els, <<>>), Cdata. +decode_vcard_ORGNAME(__TopXMLNS, + {xmlel, <<"ORGNAME">>, _attrs, _els}) -> + Cdata = decode_vcard_ORGNAME_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_ORGNAME_els([], Cdata) -> - decode_vcard_ORGNAME_cdata(Cdata); -decode_vcard_ORGNAME_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_ORGNAME_els(_els, +decode_vcard_ORGNAME_els(__TopXMLNS, [], Cdata) -> + decode_vcard_ORGNAME_cdata(__TopXMLNS, Cdata); +decode_vcard_ORGNAME_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_ORGNAME_els(__TopXMLNS, _els, <>); -decode_vcard_ORGNAME_els([_ | _els], Cdata) -> - decode_vcard_ORGNAME_els(_els, Cdata). +decode_vcard_ORGNAME_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_ORGNAME_els(__TopXMLNS, _els, Cdata). encode_vcard_ORGNAME(Cdata, _xmlns_attrs) -> _els = encode_vcard_ORGNAME_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"ORGNAME">>, _attrs, _els}. -decode_vcard_ORGNAME_cdata(<<>>) -> undefined; -decode_vcard_ORGNAME_cdata(_val) -> _val. +decode_vcard_ORGNAME_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_ORGNAME_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ORGNAME_cdata(undefined, _acc) -> _acc; encode_vcard_ORGNAME_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_LON({xmlel, <<"LON">>, _attrs, _els}) -> - Cdata = decode_vcard_LON_els(_els, <<>>), Cdata. +decode_vcard_LON(__TopXMLNS, + {xmlel, <<"LON">>, _attrs, _els}) -> + Cdata = decode_vcard_LON_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_LON_els([], Cdata) -> - decode_vcard_LON_cdata(Cdata); -decode_vcard_LON_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_LON_els(_els, +decode_vcard_LON_els(__TopXMLNS, [], Cdata) -> + decode_vcard_LON_cdata(__TopXMLNS, Cdata); +decode_vcard_LON_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_LON_els(__TopXMLNS, _els, <>); -decode_vcard_LON_els([_ | _els], Cdata) -> - decode_vcard_LON_els(_els, Cdata). +decode_vcard_LON_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_LON_els(__TopXMLNS, _els, Cdata). encode_vcard_LON(Cdata, _xmlns_attrs) -> _els = encode_vcard_LON_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"LON">>, _attrs, _els}. -decode_vcard_LON_cdata(<<>>) -> undefined; -decode_vcard_LON_cdata(_val) -> _val. +decode_vcard_LON_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_LON_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LON_cdata(undefined, _acc) -> _acc; encode_vcard_LON_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_LAT({xmlel, <<"LAT">>, _attrs, _els}) -> - Cdata = decode_vcard_LAT_els(_els, <<>>), Cdata. +decode_vcard_LAT(__TopXMLNS, + {xmlel, <<"LAT">>, _attrs, _els}) -> + Cdata = decode_vcard_LAT_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_LAT_els([], Cdata) -> - decode_vcard_LAT_cdata(Cdata); -decode_vcard_LAT_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_LAT_els(_els, +decode_vcard_LAT_els(__TopXMLNS, [], Cdata) -> + decode_vcard_LAT_cdata(__TopXMLNS, Cdata); +decode_vcard_LAT_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_LAT_els(__TopXMLNS, _els, <>); -decode_vcard_LAT_els([_ | _els], Cdata) -> - decode_vcard_LAT_els(_els, Cdata). +decode_vcard_LAT_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_LAT_els(__TopXMLNS, _els, Cdata). encode_vcard_LAT(Cdata, _xmlns_attrs) -> _els = encode_vcard_LAT_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"LAT">>, _attrs, _els}. -decode_vcard_LAT_cdata(<<>>) -> undefined; -decode_vcard_LAT_cdata(_val) -> _val. +decode_vcard_LAT_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_LAT_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LAT_cdata(undefined, _acc) -> _acc; encode_vcard_LAT_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_USERID({xmlel, <<"USERID">>, _attrs, - _els}) -> - Cdata = decode_vcard_USERID_els(_els, <<>>), Cdata. +decode_vcard_USERID(__TopXMLNS, + {xmlel, <<"USERID">>, _attrs, _els}) -> + Cdata = decode_vcard_USERID_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_USERID_els([], Cdata) -> - decode_vcard_USERID_cdata(Cdata); -decode_vcard_USERID_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_USERID_els(_els, +decode_vcard_USERID_els(__TopXMLNS, [], Cdata) -> + decode_vcard_USERID_cdata(__TopXMLNS, Cdata); +decode_vcard_USERID_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_USERID_els(__TopXMLNS, _els, <>); -decode_vcard_USERID_els([_ | _els], Cdata) -> - decode_vcard_USERID_els(_els, Cdata). +decode_vcard_USERID_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_USERID_els(__TopXMLNS, _els, Cdata). encode_vcard_USERID(Cdata, _xmlns_attrs) -> _els = encode_vcard_USERID_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"USERID">>, _attrs, _els}. -decode_vcard_USERID_cdata(<<>>) -> undefined; -decode_vcard_USERID_cdata(_val) -> _val. +decode_vcard_USERID_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_USERID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_USERID_cdata(undefined, _acc) -> _acc; encode_vcard_USERID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_NUMBER({xmlel, <<"NUMBER">>, _attrs, - _els}) -> - Cdata = decode_vcard_NUMBER_els(_els, <<>>), Cdata. +decode_vcard_NUMBER(__TopXMLNS, + {xmlel, <<"NUMBER">>, _attrs, _els}) -> + Cdata = decode_vcard_NUMBER_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_NUMBER_els([], Cdata) -> - decode_vcard_NUMBER_cdata(Cdata); -decode_vcard_NUMBER_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_NUMBER_els(_els, +decode_vcard_NUMBER_els(__TopXMLNS, [], Cdata) -> + decode_vcard_NUMBER_cdata(__TopXMLNS, Cdata); +decode_vcard_NUMBER_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_NUMBER_els(__TopXMLNS, _els, <>); -decode_vcard_NUMBER_els([_ | _els], Cdata) -> - decode_vcard_NUMBER_els(_els, Cdata). +decode_vcard_NUMBER_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_NUMBER_els(__TopXMLNS, _els, Cdata). encode_vcard_NUMBER(Cdata, _xmlns_attrs) -> _els = encode_vcard_NUMBER_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"NUMBER">>, _attrs, _els}. -decode_vcard_NUMBER_cdata(<<>>) -> undefined; -decode_vcard_NUMBER_cdata(_val) -> _val. +decode_vcard_NUMBER_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_NUMBER_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NUMBER_cdata(undefined, _acc) -> _acc; encode_vcard_NUMBER_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_LINE({xmlel, <<"LINE">>, _attrs, _els}) -> - Cdata = decode_vcard_LINE_els(_els, <<>>), Cdata. +decode_vcard_LINE(__TopXMLNS, + {xmlel, <<"LINE">>, _attrs, _els}) -> + Cdata = decode_vcard_LINE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_LINE_els([], Cdata) -> - decode_vcard_LINE_cdata(Cdata); -decode_vcard_LINE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_LINE_els(_els, +decode_vcard_LINE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_LINE_cdata(__TopXMLNS, Cdata); +decode_vcard_LINE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_LINE_els(__TopXMLNS, _els, <>); -decode_vcard_LINE_els([_ | _els], Cdata) -> - decode_vcard_LINE_els(_els, Cdata). +decode_vcard_LINE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_LINE_els(__TopXMLNS, _els, Cdata). encode_vcard_LINE(Cdata, _xmlns_attrs) -> _els = encode_vcard_LINE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"LINE">>, _attrs, _els}. -decode_vcard_LINE_cdata(<<>>) -> undefined; -decode_vcard_LINE_cdata(_val) -> _val. +decode_vcard_LINE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_LINE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LINE_cdata(undefined, _acc) -> _acc; encode_vcard_LINE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_CTRY({xmlel, <<"CTRY">>, _attrs, _els}) -> - Cdata = decode_vcard_CTRY_els(_els, <<>>), Cdata. +decode_vcard_CTRY(__TopXMLNS, + {xmlel, <<"CTRY">>, _attrs, _els}) -> + Cdata = decode_vcard_CTRY_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_CTRY_els([], Cdata) -> - decode_vcard_CTRY_cdata(Cdata); -decode_vcard_CTRY_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_CTRY_els(_els, +decode_vcard_CTRY_els(__TopXMLNS, [], Cdata) -> + decode_vcard_CTRY_cdata(__TopXMLNS, Cdata); +decode_vcard_CTRY_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_CTRY_els(__TopXMLNS, _els, <>); -decode_vcard_CTRY_els([_ | _els], Cdata) -> - decode_vcard_CTRY_els(_els, Cdata). +decode_vcard_CTRY_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_CTRY_els(__TopXMLNS, _els, Cdata). encode_vcard_CTRY(Cdata, _xmlns_attrs) -> _els = encode_vcard_CTRY_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"CTRY">>, _attrs, _els}. -decode_vcard_CTRY_cdata(<<>>) -> undefined; -decode_vcard_CTRY_cdata(_val) -> _val. +decode_vcard_CTRY_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_CTRY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_CTRY_cdata(undefined, _acc) -> _acc; encode_vcard_CTRY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_PCODE({xmlel, <<"PCODE">>, _attrs, - _els}) -> - Cdata = decode_vcard_PCODE_els(_els, <<>>), Cdata. +decode_vcard_PCODE(__TopXMLNS, + {xmlel, <<"PCODE">>, _attrs, _els}) -> + Cdata = decode_vcard_PCODE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_PCODE_els([], Cdata) -> - decode_vcard_PCODE_cdata(Cdata); -decode_vcard_PCODE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_PCODE_els(_els, +decode_vcard_PCODE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_PCODE_cdata(__TopXMLNS, Cdata); +decode_vcard_PCODE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_PCODE_els(__TopXMLNS, _els, <>); -decode_vcard_PCODE_els([_ | _els], Cdata) -> - decode_vcard_PCODE_els(_els, Cdata). +decode_vcard_PCODE_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_PCODE_els(__TopXMLNS, _els, Cdata). encode_vcard_PCODE(Cdata, _xmlns_attrs) -> _els = encode_vcard_PCODE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"PCODE">>, _attrs, _els}. -decode_vcard_PCODE_cdata(<<>>) -> undefined; -decode_vcard_PCODE_cdata(_val) -> _val. +decode_vcard_PCODE_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_PCODE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PCODE_cdata(undefined, _acc) -> _acc; encode_vcard_PCODE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_REGION({xmlel, <<"REGION">>, _attrs, - _els}) -> - Cdata = decode_vcard_REGION_els(_els, <<>>), Cdata. +decode_vcard_REGION(__TopXMLNS, + {xmlel, <<"REGION">>, _attrs, _els}) -> + Cdata = decode_vcard_REGION_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_REGION_els([], Cdata) -> - decode_vcard_REGION_cdata(Cdata); -decode_vcard_REGION_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_REGION_els(_els, +decode_vcard_REGION_els(__TopXMLNS, [], Cdata) -> + decode_vcard_REGION_cdata(__TopXMLNS, Cdata); +decode_vcard_REGION_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_REGION_els(__TopXMLNS, _els, <>); -decode_vcard_REGION_els([_ | _els], Cdata) -> - decode_vcard_REGION_els(_els, Cdata). +decode_vcard_REGION_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_REGION_els(__TopXMLNS, _els, Cdata). encode_vcard_REGION(Cdata, _xmlns_attrs) -> _els = encode_vcard_REGION_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"REGION">>, _attrs, _els}. -decode_vcard_REGION_cdata(<<>>) -> undefined; -decode_vcard_REGION_cdata(_val) -> _val. +decode_vcard_REGION_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_REGION_cdata(__TopXMLNS, _val) -> _val. encode_vcard_REGION_cdata(undefined, _acc) -> _acc; encode_vcard_REGION_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_LOCALITY({xmlel, <<"LOCALITY">>, _attrs, - _els}) -> - Cdata = decode_vcard_LOCALITY_els(_els, <<>>), Cdata. +decode_vcard_LOCALITY(__TopXMLNS, + {xmlel, <<"LOCALITY">>, _attrs, _els}) -> + Cdata = decode_vcard_LOCALITY_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_vcard_LOCALITY_els([], Cdata) -> - decode_vcard_LOCALITY_cdata(Cdata); -decode_vcard_LOCALITY_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_LOCALITY_els(_els, +decode_vcard_LOCALITY_els(__TopXMLNS, [], Cdata) -> + decode_vcard_LOCALITY_cdata(__TopXMLNS, Cdata); +decode_vcard_LOCALITY_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_LOCALITY_els(__TopXMLNS, _els, <>); -decode_vcard_LOCALITY_els([_ | _els], Cdata) -> - decode_vcard_LOCALITY_els(_els, Cdata). +decode_vcard_LOCALITY_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_LOCALITY_els(__TopXMLNS, _els, Cdata). encode_vcard_LOCALITY(Cdata, _xmlns_attrs) -> _els = encode_vcard_LOCALITY_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"LOCALITY">>, _attrs, _els}. -decode_vcard_LOCALITY_cdata(<<>>) -> undefined; -decode_vcard_LOCALITY_cdata(_val) -> _val. +decode_vcard_LOCALITY_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_LOCALITY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LOCALITY_cdata(undefined, _acc) -> _acc; encode_vcard_LOCALITY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_STREET({xmlel, <<"STREET">>, _attrs, - _els}) -> - Cdata = decode_vcard_STREET_els(_els, <<>>), Cdata. +decode_vcard_STREET(__TopXMLNS, + {xmlel, <<"STREET">>, _attrs, _els}) -> + Cdata = decode_vcard_STREET_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_STREET_els([], Cdata) -> - decode_vcard_STREET_cdata(Cdata); -decode_vcard_STREET_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_STREET_els(_els, +decode_vcard_STREET_els(__TopXMLNS, [], Cdata) -> + decode_vcard_STREET_cdata(__TopXMLNS, Cdata); +decode_vcard_STREET_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_STREET_els(__TopXMLNS, _els, <>); -decode_vcard_STREET_els([_ | _els], Cdata) -> - decode_vcard_STREET_els(_els, Cdata). +decode_vcard_STREET_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_STREET_els(__TopXMLNS, _els, Cdata). encode_vcard_STREET(Cdata, _xmlns_attrs) -> _els = encode_vcard_STREET_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"STREET">>, _attrs, _els}. -decode_vcard_STREET_cdata(<<>>) -> undefined; -decode_vcard_STREET_cdata(_val) -> _val. +decode_vcard_STREET_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_STREET_cdata(__TopXMLNS, _val) -> _val. encode_vcard_STREET_cdata(undefined, _acc) -> _acc; encode_vcard_STREET_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_EXTADD({xmlel, <<"EXTADD">>, _attrs, - _els}) -> - Cdata = decode_vcard_EXTADD_els(_els, <<>>), Cdata. +decode_vcard_EXTADD(__TopXMLNS, + {xmlel, <<"EXTADD">>, _attrs, _els}) -> + Cdata = decode_vcard_EXTADD_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_EXTADD_els([], Cdata) -> - decode_vcard_EXTADD_cdata(Cdata); -decode_vcard_EXTADD_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_EXTADD_els(_els, +decode_vcard_EXTADD_els(__TopXMLNS, [], Cdata) -> + decode_vcard_EXTADD_cdata(__TopXMLNS, Cdata); +decode_vcard_EXTADD_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_EXTADD_els(__TopXMLNS, _els, <>); -decode_vcard_EXTADD_els([_ | _els], Cdata) -> - decode_vcard_EXTADD_els(_els, Cdata). +decode_vcard_EXTADD_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_EXTADD_els(__TopXMLNS, _els, Cdata). encode_vcard_EXTADD(Cdata, _xmlns_attrs) -> _els = encode_vcard_EXTADD_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"EXTADD">>, _attrs, _els}. -decode_vcard_EXTADD_cdata(<<>>) -> undefined; -decode_vcard_EXTADD_cdata(_val) -> _val. +decode_vcard_EXTADD_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_EXTADD_cdata(__TopXMLNS, _val) -> _val. encode_vcard_EXTADD_cdata(undefined, _acc) -> _acc; encode_vcard_EXTADD_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_POBOX({xmlel, <<"POBOX">>, _attrs, - _els}) -> - Cdata = decode_vcard_POBOX_els(_els, <<>>), Cdata. +decode_vcard_POBOX(__TopXMLNS, + {xmlel, <<"POBOX">>, _attrs, _els}) -> + Cdata = decode_vcard_POBOX_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_POBOX_els([], Cdata) -> - decode_vcard_POBOX_cdata(Cdata); -decode_vcard_POBOX_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_POBOX_els(_els, +decode_vcard_POBOX_els(__TopXMLNS, [], Cdata) -> + decode_vcard_POBOX_cdata(__TopXMLNS, Cdata); +decode_vcard_POBOX_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_POBOX_els(__TopXMLNS, _els, <>); -decode_vcard_POBOX_els([_ | _els], Cdata) -> - decode_vcard_POBOX_els(_els, Cdata). +decode_vcard_POBOX_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_POBOX_els(__TopXMLNS, _els, Cdata). encode_vcard_POBOX(Cdata, _xmlns_attrs) -> _els = encode_vcard_POBOX_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"POBOX">>, _attrs, _els}. -decode_vcard_POBOX_cdata(<<>>) -> undefined; -decode_vcard_POBOX_cdata(_val) -> _val. +decode_vcard_POBOX_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_POBOX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_POBOX_cdata(undefined, _acc) -> _acc; encode_vcard_POBOX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_SUFFIX({xmlel, <<"SUFFIX">>, _attrs, - _els}) -> - Cdata = decode_vcard_SUFFIX_els(_els, <<>>), Cdata. +decode_vcard_SUFFIX(__TopXMLNS, + {xmlel, <<"SUFFIX">>, _attrs, _els}) -> + Cdata = decode_vcard_SUFFIX_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_SUFFIX_els([], Cdata) -> - decode_vcard_SUFFIX_cdata(Cdata); -decode_vcard_SUFFIX_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_SUFFIX_els(_els, +decode_vcard_SUFFIX_els(__TopXMLNS, [], Cdata) -> + decode_vcard_SUFFIX_cdata(__TopXMLNS, Cdata); +decode_vcard_SUFFIX_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_SUFFIX_els(__TopXMLNS, _els, <>); -decode_vcard_SUFFIX_els([_ | _els], Cdata) -> - decode_vcard_SUFFIX_els(_els, Cdata). +decode_vcard_SUFFIX_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_SUFFIX_els(__TopXMLNS, _els, Cdata). encode_vcard_SUFFIX(Cdata, _xmlns_attrs) -> _els = encode_vcard_SUFFIX_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"SUFFIX">>, _attrs, _els}. -decode_vcard_SUFFIX_cdata(<<>>) -> undefined; -decode_vcard_SUFFIX_cdata(_val) -> _val. +decode_vcard_SUFFIX_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_SUFFIX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_SUFFIX_cdata(undefined, _acc) -> _acc; encode_vcard_SUFFIX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_PREFIX({xmlel, <<"PREFIX">>, _attrs, - _els}) -> - Cdata = decode_vcard_PREFIX_els(_els, <<>>), Cdata. +decode_vcard_PREFIX(__TopXMLNS, + {xmlel, <<"PREFIX">>, _attrs, _els}) -> + Cdata = decode_vcard_PREFIX_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_PREFIX_els([], Cdata) -> - decode_vcard_PREFIX_cdata(Cdata); -decode_vcard_PREFIX_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_PREFIX_els(_els, +decode_vcard_PREFIX_els(__TopXMLNS, [], Cdata) -> + decode_vcard_PREFIX_cdata(__TopXMLNS, Cdata); +decode_vcard_PREFIX_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_PREFIX_els(__TopXMLNS, _els, <>); -decode_vcard_PREFIX_els([_ | _els], Cdata) -> - decode_vcard_PREFIX_els(_els, Cdata). +decode_vcard_PREFIX_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_PREFIX_els(__TopXMLNS, _els, Cdata). encode_vcard_PREFIX(Cdata, _xmlns_attrs) -> _els = encode_vcard_PREFIX_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"PREFIX">>, _attrs, _els}. -decode_vcard_PREFIX_cdata(<<>>) -> undefined; -decode_vcard_PREFIX_cdata(_val) -> _val. +decode_vcard_PREFIX_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_PREFIX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PREFIX_cdata(undefined, _acc) -> _acc; encode_vcard_PREFIX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_MIDDLE({xmlel, <<"MIDDLE">>, _attrs, - _els}) -> - Cdata = decode_vcard_MIDDLE_els(_els, <<>>), Cdata. +decode_vcard_MIDDLE(__TopXMLNS, + {xmlel, <<"MIDDLE">>, _attrs, _els}) -> + Cdata = decode_vcard_MIDDLE_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_MIDDLE_els([], Cdata) -> - decode_vcard_MIDDLE_cdata(Cdata); -decode_vcard_MIDDLE_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_MIDDLE_els(_els, +decode_vcard_MIDDLE_els(__TopXMLNS, [], Cdata) -> + decode_vcard_MIDDLE_cdata(__TopXMLNS, Cdata); +decode_vcard_MIDDLE_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_MIDDLE_els(__TopXMLNS, _els, <>); -decode_vcard_MIDDLE_els([_ | _els], Cdata) -> - decode_vcard_MIDDLE_els(_els, Cdata). +decode_vcard_MIDDLE_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_MIDDLE_els(__TopXMLNS, _els, Cdata). encode_vcard_MIDDLE(Cdata, _xmlns_attrs) -> _els = encode_vcard_MIDDLE_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"MIDDLE">>, _attrs, _els}. -decode_vcard_MIDDLE_cdata(<<>>) -> undefined; -decode_vcard_MIDDLE_cdata(_val) -> _val. +decode_vcard_MIDDLE_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_MIDDLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_MIDDLE_cdata(undefined, _acc) -> _acc; encode_vcard_MIDDLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_GIVEN({xmlel, <<"GIVEN">>, _attrs, - _els}) -> - Cdata = decode_vcard_GIVEN_els(_els, <<>>), Cdata. +decode_vcard_GIVEN(__TopXMLNS, + {xmlel, <<"GIVEN">>, _attrs, _els}) -> + Cdata = decode_vcard_GIVEN_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_GIVEN_els([], Cdata) -> - decode_vcard_GIVEN_cdata(Cdata); -decode_vcard_GIVEN_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_GIVEN_els(_els, +decode_vcard_GIVEN_els(__TopXMLNS, [], Cdata) -> + decode_vcard_GIVEN_cdata(__TopXMLNS, Cdata); +decode_vcard_GIVEN_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_GIVEN_els(__TopXMLNS, _els, <>); -decode_vcard_GIVEN_els([_ | _els], Cdata) -> - decode_vcard_GIVEN_els(_els, Cdata). +decode_vcard_GIVEN_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_vcard_GIVEN_els(__TopXMLNS, _els, Cdata). encode_vcard_GIVEN(Cdata, _xmlns_attrs) -> _els = encode_vcard_GIVEN_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"GIVEN">>, _attrs, _els}. -decode_vcard_GIVEN_cdata(<<>>) -> undefined; -decode_vcard_GIVEN_cdata(_val) -> _val. +decode_vcard_GIVEN_cdata(__TopXMLNS, <<>>) -> undefined; +decode_vcard_GIVEN_cdata(__TopXMLNS, _val) -> _val. encode_vcard_GIVEN_cdata(undefined, _acc) -> _acc; encode_vcard_GIVEN_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_FAMILY({xmlel, <<"FAMILY">>, _attrs, - _els}) -> - Cdata = decode_vcard_FAMILY_els(_els, <<>>), Cdata. +decode_vcard_FAMILY(__TopXMLNS, + {xmlel, <<"FAMILY">>, _attrs, _els}) -> + Cdata = decode_vcard_FAMILY_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_vcard_FAMILY_els([], Cdata) -> - decode_vcard_FAMILY_cdata(Cdata); -decode_vcard_FAMILY_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_vcard_FAMILY_els(_els, +decode_vcard_FAMILY_els(__TopXMLNS, [], Cdata) -> + decode_vcard_FAMILY_cdata(__TopXMLNS, Cdata); +decode_vcard_FAMILY_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_vcard_FAMILY_els(__TopXMLNS, _els, <>); -decode_vcard_FAMILY_els([_ | _els], Cdata) -> - decode_vcard_FAMILY_els(_els, Cdata). +decode_vcard_FAMILY_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_vcard_FAMILY_els(__TopXMLNS, _els, Cdata). encode_vcard_FAMILY(Cdata, _xmlns_attrs) -> _els = encode_vcard_FAMILY_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"FAMILY">>, _attrs, _els}. -decode_vcard_FAMILY_cdata(<<>>) -> undefined; -decode_vcard_FAMILY_cdata(_val) -> _val. +decode_vcard_FAMILY_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_vcard_FAMILY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_FAMILY_cdata(undefined, _acc) -> _acc; encode_vcard_FAMILY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_vcard_X400({xmlel, <<"X400">>, _attrs, _els}) -> +decode_vcard_X400(__TopXMLNS, + {xmlel, <<"X400">>, _attrs, _els}) -> true. encode_vcard_X400(true, _xmlns_attrs) -> @@ -9540,8 +10216,8 @@ encode_vcard_X400(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"X400">>, _attrs, _els}. -decode_vcard_INTERNET({xmlel, <<"INTERNET">>, _attrs, - _els}) -> +decode_vcard_INTERNET(__TopXMLNS, + {xmlel, <<"INTERNET">>, _attrs, _els}) -> true. encode_vcard_INTERNET(true, _xmlns_attrs) -> @@ -9549,7 +10225,8 @@ encode_vcard_INTERNET(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"INTERNET">>, _attrs, _els}. -decode_vcard_PREF({xmlel, <<"PREF">>, _attrs, _els}) -> +decode_vcard_PREF(__TopXMLNS, + {xmlel, <<"PREF">>, _attrs, _els}) -> true. encode_vcard_PREF(true, _xmlns_attrs) -> @@ -9557,7 +10234,8 @@ encode_vcard_PREF(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PREF">>, _attrs, _els}. -decode_vcard_INTL({xmlel, <<"INTL">>, _attrs, _els}) -> +decode_vcard_INTL(__TopXMLNS, + {xmlel, <<"INTL">>, _attrs, _els}) -> true. encode_vcard_INTL(true, _xmlns_attrs) -> @@ -9565,7 +10243,8 @@ encode_vcard_INTL(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"INTL">>, _attrs, _els}. -decode_vcard_DOM({xmlel, <<"DOM">>, _attrs, _els}) -> +decode_vcard_DOM(__TopXMLNS, + {xmlel, <<"DOM">>, _attrs, _els}) -> true. encode_vcard_DOM(true, _xmlns_attrs) -> @@ -9573,8 +10252,8 @@ encode_vcard_DOM(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"DOM">>, _attrs, _els}. -decode_vcard_PARCEL({xmlel, <<"PARCEL">>, _attrs, - _els}) -> +decode_vcard_PARCEL(__TopXMLNS, + {xmlel, <<"PARCEL">>, _attrs, _els}) -> true. encode_vcard_PARCEL(true, _xmlns_attrs) -> @@ -9582,8 +10261,8 @@ encode_vcard_PARCEL(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PARCEL">>, _attrs, _els}. -decode_vcard_POSTAL({xmlel, <<"POSTAL">>, _attrs, - _els}) -> +decode_vcard_POSTAL(__TopXMLNS, + {xmlel, <<"POSTAL">>, _attrs, _els}) -> true. encode_vcard_POSTAL(true, _xmlns_attrs) -> @@ -9591,7 +10270,8 @@ encode_vcard_POSTAL(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"POSTAL">>, _attrs, _els}. -decode_vcard_PCS({xmlel, <<"PCS">>, _attrs, _els}) -> +decode_vcard_PCS(__TopXMLNS, + {xmlel, <<"PCS">>, _attrs, _els}) -> true. encode_vcard_PCS(true, _xmlns_attrs) -> @@ -9599,7 +10279,8 @@ encode_vcard_PCS(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PCS">>, _attrs, _els}. -decode_vcard_ISDN({xmlel, <<"ISDN">>, _attrs, _els}) -> +decode_vcard_ISDN(__TopXMLNS, + {xmlel, <<"ISDN">>, _attrs, _els}) -> true. encode_vcard_ISDN(true, _xmlns_attrs) -> @@ -9607,8 +10288,8 @@ encode_vcard_ISDN(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"ISDN">>, _attrs, _els}. -decode_vcard_MODEM({xmlel, <<"MODEM">>, _attrs, - _els}) -> +decode_vcard_MODEM(__TopXMLNS, + {xmlel, <<"MODEM">>, _attrs, _els}) -> true. encode_vcard_MODEM(true, _xmlns_attrs) -> @@ -9616,7 +10297,8 @@ encode_vcard_MODEM(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"MODEM">>, _attrs, _els}. -decode_vcard_BBS({xmlel, <<"BBS">>, _attrs, _els}) -> +decode_vcard_BBS(__TopXMLNS, + {xmlel, <<"BBS">>, _attrs, _els}) -> true. encode_vcard_BBS(true, _xmlns_attrs) -> @@ -9624,8 +10306,8 @@ encode_vcard_BBS(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"BBS">>, _attrs, _els}. -decode_vcard_VIDEO({xmlel, <<"VIDEO">>, _attrs, - _els}) -> +decode_vcard_VIDEO(__TopXMLNS, + {xmlel, <<"VIDEO">>, _attrs, _els}) -> true. encode_vcard_VIDEO(true, _xmlns_attrs) -> @@ -9633,7 +10315,8 @@ encode_vcard_VIDEO(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"VIDEO">>, _attrs, _els}. -decode_vcard_CELL({xmlel, <<"CELL">>, _attrs, _els}) -> +decode_vcard_CELL(__TopXMLNS, + {xmlel, <<"CELL">>, _attrs, _els}) -> true. encode_vcard_CELL(true, _xmlns_attrs) -> @@ -9641,7 +10324,8 @@ encode_vcard_CELL(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"CELL">>, _attrs, _els}. -decode_vcard_MSG({xmlel, <<"MSG">>, _attrs, _els}) -> +decode_vcard_MSG(__TopXMLNS, + {xmlel, <<"MSG">>, _attrs, _els}) -> true. encode_vcard_MSG(true, _xmlns_attrs) -> @@ -9649,8 +10333,8 @@ encode_vcard_MSG(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"MSG">>, _attrs, _els}. -decode_vcard_PAGER({xmlel, <<"PAGER">>, _attrs, - _els}) -> +decode_vcard_PAGER(__TopXMLNS, + {xmlel, <<"PAGER">>, _attrs, _els}) -> true. encode_vcard_PAGER(true, _xmlns_attrs) -> @@ -9658,7 +10342,8 @@ encode_vcard_PAGER(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"PAGER">>, _attrs, _els}. -decode_vcard_FAX({xmlel, <<"FAX">>, _attrs, _els}) -> +decode_vcard_FAX(__TopXMLNS, + {xmlel, <<"FAX">>, _attrs, _els}) -> true. encode_vcard_FAX(true, _xmlns_attrs) -> @@ -9666,8 +10351,8 @@ encode_vcard_FAX(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"FAX">>, _attrs, _els}. -decode_vcard_VOICE({xmlel, <<"VOICE">>, _attrs, - _els}) -> +decode_vcard_VOICE(__TopXMLNS, + {xmlel, <<"VOICE">>, _attrs, _els}) -> true. encode_vcard_VOICE(true, _xmlns_attrs) -> @@ -9675,7 +10360,8 @@ encode_vcard_VOICE(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"VOICE">>, _attrs, _els}. -decode_vcard_WORK({xmlel, <<"WORK">>, _attrs, _els}) -> +decode_vcard_WORK(__TopXMLNS, + {xmlel, <<"WORK">>, _attrs, _els}) -> true. encode_vcard_WORK(true, _xmlns_attrs) -> @@ -9683,7 +10369,8 @@ encode_vcard_WORK(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"WORK">>, _attrs, _els}. -decode_vcard_HOME({xmlel, <<"HOME">>, _attrs, _els}) -> +decode_vcard_HOME(__TopXMLNS, + {xmlel, <<"HOME">>, _attrs, _els}) -> true. encode_vcard_HOME(true, _xmlns_attrs) -> @@ -9691,328 +10378,339 @@ encode_vcard_HOME(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"HOME">>, _attrs, _els}. -decode_stream_error({xmlel, <<"stream:error">>, _attrs, - _els}) -> - {Text, Reason} = decode_stream_error_els(_els, - undefined, undefined), +decode_stream_error(__TopXMLNS, + {xmlel, <<"stream:error">>, _attrs, _els}) -> + {Text, Reason} = decode_stream_error_els(__TopXMLNS, + _els, undefined, undefined), {stream_error, Reason, Text}. -decode_stream_error_els([], Text, Reason) -> +decode_stream_error_els(__TopXMLNS, [], Text, Reason) -> {Text, Reason}; -decode_stream_error_els([{xmlel, <<"text">>, _attrs, - _} = - _el - | _els], - Text, Reason) -> +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, - decode_stream_error_text(_el), Reason); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, + decode_stream_error_text(_xmlns, _el), + Reason); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"bad-format">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"bad-format">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_bad_format(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_bad_format(_xmlns, _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"bad-namespace-prefix">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"bad-namespace-prefix">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_bad_namespace_prefix(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_bad_namespace_prefix(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"conflict">>, _attrs, - _} = - _el - | _els], - Text, Reason) -> +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_conflict(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_conflict(_xmlns, _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"connection-timeout">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"connection-timeout">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_connection_timeout(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_connection_timeout(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"host-gone">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"host-gone">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_host_gone(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_host_gone(_xmlns, _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"host-unknown">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"host-unknown">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_host_unknown(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_host_unknown(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"improper-addressing">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"improper-addressing">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_improper_addressing(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_improper_addressing(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"internal-server-error">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_internal_server_error(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_internal_server_error(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"invalid-from">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"invalid-from">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_invalid_from(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_invalid_from(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"invalid-id">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"invalid-id">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_invalid_id(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_invalid_id(_xmlns, _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"invalid-namespace">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"invalid-namespace">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_invalid_namespace(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_invalid_namespace(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"invalid-xml">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"invalid-xml">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_invalid_xml(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_invalid_xml(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"not-authorized">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_not_authorized(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_not_authorized(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"not-well-formed">>, - _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"not-well-formed">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_not_well_formed(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_not_well_formed(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"policy-violation">>, - _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_policy_violation(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_policy_violation(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"remote-connection-failed">>, _attrs, _} = +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"remote-connection-failed">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_remote_connection_failed(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_remote_connection_failed(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"reset">>, _attrs, - _} = - _el - | _els], - Text, Reason) -> +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"reset">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_reset(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_reset(_xmlns, _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"resource-constraint">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_resource_constraint(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_resource_constraint(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"restricted-xml">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"restricted-xml">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_restricted_xml(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_restricted_xml(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"see-other-host">>, - _attrs, _} = - _el - | _els], +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"see-other-host">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_see_other_host(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_see_other_host(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, <<"system-shutdown">>, - _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"system-shutdown">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_system_shutdown(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_system_shutdown(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"undefined-condition">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_undefined_condition(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_undefined_condition(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"unsupported-encoding">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"unsupported-encoding">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_unsupported_encoding(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_unsupported_encoding(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"unsupported-stanza-type">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"unsupported-stanza-type">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_unsupported_stanza_type(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_unsupported_stanza_type(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([{xmlel, - <<"unsupported-version">>, _attrs, _} = - _el +decode_stream_error_els(__TopXMLNS, + [{xmlel, <<"unsupported-version">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-streams">> -> - decode_stream_error_els(_els, Text, - decode_stream_error_unsupported_version(_el)); - true -> decode_stream_error_els(_els, Text, Reason) + decode_stream_error_els(__TopXMLNS, _els, Text, + decode_stream_error_unsupported_version(_xmlns, + _el)); + true -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_stream_error_els([_ | _els], Text, Reason) -> - decode_stream_error_els(_els, Text, Reason). +decode_stream_error_els(__TopXMLNS, [_ | _els], Text, + Reason) -> + decode_stream_error_els(__TopXMLNS, _els, Text, Reason). encode_stream_error({stream_error, Reason, Text}, _xmlns_attrs) -> @@ -10194,9 +10892,9 @@ encode_stream_error({stream_error, Reason, Text}, <<"urn:ietf:params:xml:ns:xmpp-streams">>}]) | _acc]. -decode_stream_error_unsupported_version({xmlel, - <<"unsupported-version">>, _attrs, - _els}) -> +decode_stream_error_unsupported_version(__TopXMLNS, + {xmlel, <<"unsupported-version">>, + _attrs, _els}) -> 'unsupported-version'. encode_stream_error_unsupported_version('unsupported-version', @@ -10205,7 +10903,8 @@ encode_stream_error_unsupported_version('unsupported-version', _attrs = _xmlns_attrs, {xmlel, <<"unsupported-version">>, _attrs, _els}. -decode_stream_error_unsupported_stanza_type({xmlel, +decode_stream_error_unsupported_stanza_type(__TopXMLNS, + {xmlel, <<"unsupported-stanza-type">>, _attrs, _els}) -> 'unsupported-stanza-type'. @@ -10216,9 +10915,9 @@ encode_stream_error_unsupported_stanza_type('unsupported-stanza-type', _attrs = _xmlns_attrs, {xmlel, <<"unsupported-stanza-type">>, _attrs, _els}. -decode_stream_error_unsupported_encoding({xmlel, - <<"unsupported-encoding">>, _attrs, - _els}) -> +decode_stream_error_unsupported_encoding(__TopXMLNS, + {xmlel, <<"unsupported-encoding">>, + _attrs, _els}) -> 'unsupported-encoding'. encode_stream_error_unsupported_encoding('unsupported-encoding', @@ -10227,9 +10926,9 @@ encode_stream_error_unsupported_encoding('unsupported-encoding', _attrs = _xmlns_attrs, {xmlel, <<"unsupported-encoding">>, _attrs, _els}. -decode_stream_error_undefined_condition({xmlel, - <<"undefined-condition">>, _attrs, - _els}) -> +decode_stream_error_undefined_condition(__TopXMLNS, + {xmlel, <<"undefined-condition">>, + _attrs, _els}) -> 'undefined-condition'. encode_stream_error_undefined_condition('undefined-condition', @@ -10238,8 +10937,9 @@ encode_stream_error_undefined_condition('undefined-condition', _attrs = _xmlns_attrs, {xmlel, <<"undefined-condition">>, _attrs, _els}. -decode_stream_error_system_shutdown({xmlel, - <<"system-shutdown">>, _attrs, _els}) -> +decode_stream_error_system_shutdown(__TopXMLNS, + {xmlel, <<"system-shutdown">>, _attrs, + _els}) -> 'system-shutdown'. encode_stream_error_system_shutdown('system-shutdown', @@ -10248,23 +10948,26 @@ encode_stream_error_system_shutdown('system-shutdown', _attrs = _xmlns_attrs, {xmlel, <<"system-shutdown">>, _attrs, _els}. -decode_stream_error_see_other_host({xmlel, - <<"see-other-host">>, _attrs, _els}) -> - Host = decode_stream_error_see_other_host_els(_els, - <<>>), +decode_stream_error_see_other_host(__TopXMLNS, + {xmlel, <<"see-other-host">>, _attrs, + _els}) -> + Host = + decode_stream_error_see_other_host_els(__TopXMLNS, _els, + <<>>), {'see-other-host', Host}. -decode_stream_error_see_other_host_els([], Host) -> - decode_stream_error_see_other_host_cdata(Host); -decode_stream_error_see_other_host_els([{xmlcdata, - _data} - | _els], +decode_stream_error_see_other_host_els(__TopXMLNS, [], Host) -> - decode_stream_error_see_other_host_els(_els, + decode_stream_error_see_other_host_cdata(__TopXMLNS, + Host); +decode_stream_error_see_other_host_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Host) -> + decode_stream_error_see_other_host_els(__TopXMLNS, _els, <>); -decode_stream_error_see_other_host_els([_ | _els], - Host) -> - decode_stream_error_see_other_host_els(_els, Host). +decode_stream_error_see_other_host_els(__TopXMLNS, + [_ | _els], Host) -> + decode_stream_error_see_other_host_els(__TopXMLNS, _els, + Host). encode_stream_error_see_other_host({'see-other-host', Host}, @@ -10274,17 +10977,21 @@ encode_stream_error_see_other_host({'see-other-host', _attrs = _xmlns_attrs, {xmlel, <<"see-other-host">>, _attrs, _els}. -decode_stream_error_see_other_host_cdata(<<>>) -> +decode_stream_error_see_other_host_cdata(__TopXMLNS, + <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"see-other-host">>, - <<"urn:ietf:params:xml:ns:xmpp-streams">>}}); -decode_stream_error_see_other_host_cdata(_val) -> _val. + __TopXMLNS}}); +decode_stream_error_see_other_host_cdata(__TopXMLNS, + _val) -> + _val. encode_stream_error_see_other_host_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_stream_error_restricted_xml({xmlel, - <<"restricted-xml">>, _attrs, _els}) -> +decode_stream_error_restricted_xml(__TopXMLNS, + {xmlel, <<"restricted-xml">>, _attrs, + _els}) -> 'restricted-xml'. encode_stream_error_restricted_xml('restricted-xml', @@ -10293,9 +11000,9 @@ encode_stream_error_restricted_xml('restricted-xml', _attrs = _xmlns_attrs, {xmlel, <<"restricted-xml">>, _attrs, _els}. -decode_stream_error_resource_constraint({xmlel, - <<"resource-constraint">>, _attrs, - _els}) -> +decode_stream_error_resource_constraint(__TopXMLNS, + {xmlel, <<"resource-constraint">>, + _attrs, _els}) -> 'resource-constraint'. encode_stream_error_resource_constraint('resource-constraint', @@ -10304,8 +11011,8 @@ encode_stream_error_resource_constraint('resource-constraint', _attrs = _xmlns_attrs, {xmlel, <<"resource-constraint">>, _attrs, _els}. -decode_stream_error_reset({xmlel, <<"reset">>, _attrs, - _els}) -> +decode_stream_error_reset(__TopXMLNS, + {xmlel, <<"reset">>, _attrs, _els}) -> reset. encode_stream_error_reset(reset, _xmlns_attrs) -> @@ -10313,7 +11020,8 @@ encode_stream_error_reset(reset, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"reset">>, _attrs, _els}. -decode_stream_error_remote_connection_failed({xmlel, +decode_stream_error_remote_connection_failed(__TopXMLNS, + {xmlel, <<"remote-connection-failed">>, _attrs, _els}) -> 'remote-connection-failed'. @@ -10324,8 +11032,9 @@ encode_stream_error_remote_connection_failed('remote-connection-failed', _attrs = _xmlns_attrs, {xmlel, <<"remote-connection-failed">>, _attrs, _els}. -decode_stream_error_policy_violation({xmlel, - <<"policy-violation">>, _attrs, _els}) -> +decode_stream_error_policy_violation(__TopXMLNS, + {xmlel, <<"policy-violation">>, _attrs, + _els}) -> 'policy-violation'. encode_stream_error_policy_violation('policy-violation', @@ -10334,8 +11043,9 @@ encode_stream_error_policy_violation('policy-violation', _attrs = _xmlns_attrs, {xmlel, <<"policy-violation">>, _attrs, _els}. -decode_stream_error_not_well_formed({xmlel, - <<"not-well-formed">>, _attrs, _els}) -> +decode_stream_error_not_well_formed(__TopXMLNS, + {xmlel, <<"not-well-formed">>, _attrs, + _els}) -> 'not-well-formed'. encode_stream_error_not_well_formed('not-well-formed', @@ -10344,8 +11054,9 @@ encode_stream_error_not_well_formed('not-well-formed', _attrs = _xmlns_attrs, {xmlel, <<"not-well-formed">>, _attrs, _els}. -decode_stream_error_not_authorized({xmlel, - <<"not-authorized">>, _attrs, _els}) -> +decode_stream_error_not_authorized(__TopXMLNS, + {xmlel, <<"not-authorized">>, _attrs, + _els}) -> 'not-authorized'. encode_stream_error_not_authorized('not-authorized', @@ -10354,8 +11065,8 @@ encode_stream_error_not_authorized('not-authorized', _attrs = _xmlns_attrs, {xmlel, <<"not-authorized">>, _attrs, _els}. -decode_stream_error_invalid_xml({xmlel, - <<"invalid-xml">>, _attrs, _els}) -> +decode_stream_error_invalid_xml(__TopXMLNS, + {xmlel, <<"invalid-xml">>, _attrs, _els}) -> 'invalid-xml'. encode_stream_error_invalid_xml('invalid-xml', @@ -10364,8 +11075,8 @@ encode_stream_error_invalid_xml('invalid-xml', _attrs = _xmlns_attrs, {xmlel, <<"invalid-xml">>, _attrs, _els}. -decode_stream_error_invalid_namespace({xmlel, - <<"invalid-namespace">>, _attrs, +decode_stream_error_invalid_namespace(__TopXMLNS, + {xmlel, <<"invalid-namespace">>, _attrs, _els}) -> 'invalid-namespace'. @@ -10375,8 +11086,8 @@ encode_stream_error_invalid_namespace('invalid-namespace', _attrs = _xmlns_attrs, {xmlel, <<"invalid-namespace">>, _attrs, _els}. -decode_stream_error_invalid_id({xmlel, <<"invalid-id">>, - _attrs, _els}) -> +decode_stream_error_invalid_id(__TopXMLNS, + {xmlel, <<"invalid-id">>, _attrs, _els}) -> 'invalid-id'. encode_stream_error_invalid_id('invalid-id', @@ -10385,8 +11096,8 @@ encode_stream_error_invalid_id('invalid-id', _attrs = _xmlns_attrs, {xmlel, <<"invalid-id">>, _attrs, _els}. -decode_stream_error_invalid_from({xmlel, - <<"invalid-from">>, _attrs, _els}) -> +decode_stream_error_invalid_from(__TopXMLNS, + {xmlel, <<"invalid-from">>, _attrs, _els}) -> 'invalid-from'. encode_stream_error_invalid_from('invalid-from', @@ -10395,9 +11106,9 @@ encode_stream_error_invalid_from('invalid-from', _attrs = _xmlns_attrs, {xmlel, <<"invalid-from">>, _attrs, _els}. -decode_stream_error_internal_server_error({xmlel, - <<"internal-server-error">>, _attrs, - _els}) -> +decode_stream_error_internal_server_error(__TopXMLNS, + {xmlel, <<"internal-server-error">>, + _attrs, _els}) -> 'internal-server-error'. encode_stream_error_internal_server_error('internal-server-error', @@ -10406,9 +11117,9 @@ encode_stream_error_internal_server_error('internal-server-error', _attrs = _xmlns_attrs, {xmlel, <<"internal-server-error">>, _attrs, _els}. -decode_stream_error_improper_addressing({xmlel, - <<"improper-addressing">>, _attrs, - _els}) -> +decode_stream_error_improper_addressing(__TopXMLNS, + {xmlel, <<"improper-addressing">>, + _attrs, _els}) -> 'improper-addressing'. encode_stream_error_improper_addressing('improper-addressing', @@ -10417,8 +11128,8 @@ encode_stream_error_improper_addressing('improper-addressing', _attrs = _xmlns_attrs, {xmlel, <<"improper-addressing">>, _attrs, _els}. -decode_stream_error_host_unknown({xmlel, - <<"host-unknown">>, _attrs, _els}) -> +decode_stream_error_host_unknown(__TopXMLNS, + {xmlel, <<"host-unknown">>, _attrs, _els}) -> 'host-unknown'. encode_stream_error_host_unknown('host-unknown', @@ -10427,8 +11138,8 @@ encode_stream_error_host_unknown('host-unknown', _attrs = _xmlns_attrs, {xmlel, <<"host-unknown">>, _attrs, _els}. -decode_stream_error_host_gone({xmlel, <<"host-gone">>, - _attrs, _els}) -> +decode_stream_error_host_gone(__TopXMLNS, + {xmlel, <<"host-gone">>, _attrs, _els}) -> 'host-gone'. encode_stream_error_host_gone('host-gone', @@ -10437,8 +11148,8 @@ encode_stream_error_host_gone('host-gone', _attrs = _xmlns_attrs, {xmlel, <<"host-gone">>, _attrs, _els}. -decode_stream_error_connection_timeout({xmlel, - <<"connection-timeout">>, _attrs, +decode_stream_error_connection_timeout(__TopXMLNS, + {xmlel, <<"connection-timeout">>, _attrs, _els}) -> 'connection-timeout'. @@ -10448,8 +11159,8 @@ encode_stream_error_connection_timeout('connection-timeout', _attrs = _xmlns_attrs, {xmlel, <<"connection-timeout">>, _attrs, _els}. -decode_stream_error_conflict({xmlel, <<"conflict">>, - _attrs, _els}) -> +decode_stream_error_conflict(__TopXMLNS, + {xmlel, <<"conflict">>, _attrs, _els}) -> conflict. encode_stream_error_conflict(conflict, _xmlns_attrs) -> @@ -10457,9 +11168,9 @@ encode_stream_error_conflict(conflict, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"conflict">>, _attrs, _els}. -decode_stream_error_bad_namespace_prefix({xmlel, - <<"bad-namespace-prefix">>, _attrs, - _els}) -> +decode_stream_error_bad_namespace_prefix(__TopXMLNS, + {xmlel, <<"bad-namespace-prefix">>, + _attrs, _els}) -> 'bad-namespace-prefix'. encode_stream_error_bad_namespace_prefix('bad-namespace-prefix', @@ -10468,8 +11179,8 @@ encode_stream_error_bad_namespace_prefix('bad-namespace-prefix', _attrs = _xmlns_attrs, {xmlel, <<"bad-namespace-prefix">>, _attrs, _els}. -decode_stream_error_bad_format({xmlel, <<"bad-format">>, - _attrs, _els}) -> +decode_stream_error_bad_format(__TopXMLNS, + {xmlel, <<"bad-format">>, _attrs, _els}) -> 'bad-format'. encode_stream_error_bad_format('bad-format', @@ -10478,30 +11189,35 @@ encode_stream_error_bad_format('bad-format', _attrs = _xmlns_attrs, {xmlel, <<"bad-format">>, _attrs, _els}. -decode_stream_error_text({xmlel, <<"text">>, _attrs, - _els}) -> - Data = decode_stream_error_text_els(_els, <<>>), - Lang = decode_stream_error_text_attrs(_attrs, - undefined), +decode_stream_error_text(__TopXMLNS, + {xmlel, <<"text">>, _attrs, _els}) -> + Data = decode_stream_error_text_els(__TopXMLNS, _els, + <<>>), + Lang = decode_stream_error_text_attrs(__TopXMLNS, + _attrs, undefined), {text, Lang, Data}. -decode_stream_error_text_els([], Data) -> - decode_stream_error_text_cdata(Data); -decode_stream_error_text_els([{xmlcdata, _data} | _els], - Data) -> - decode_stream_error_text_els(_els, +decode_stream_error_text_els(__TopXMLNS, [], Data) -> + decode_stream_error_text_cdata(__TopXMLNS, Data); +decode_stream_error_text_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_stream_error_text_els(__TopXMLNS, _els, <>); -decode_stream_error_text_els([_ | _els], Data) -> - decode_stream_error_text_els(_els, Data). - -decode_stream_error_text_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_stream_error_text_attrs(_attrs, _val); -decode_stream_error_text_attrs([_ | _attrs], Lang) -> - decode_stream_error_text_attrs(_attrs, Lang); -decode_stream_error_text_attrs([], Lang) -> - 'decode_stream_error_text_attr_xml:lang'(Lang). +decode_stream_error_text_els(__TopXMLNS, [_ | _els], + Data) -> + decode_stream_error_text_els(__TopXMLNS, _els, Data). + +decode_stream_error_text_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_stream_error_text_attrs(__TopXMLNS, _attrs, + _val); +decode_stream_error_text_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_stream_error_text_attrs(__TopXMLNS, _attrs, + Lang); +decode_stream_error_text_attrs(__TopXMLNS, [], Lang) -> + 'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, + Lang). encode_stream_error_text({text, Lang, Data}, _xmlns_attrs) -> @@ -10510,9 +11226,12 @@ encode_stream_error_text({text, Lang, Data}, _xmlns_attrs), {xmlel, <<"text">>, _attrs, _els}. -'decode_stream_error_text_attr_xml:lang'(undefined) -> +'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_stream_error_text_attr_xml:lang'(_val) -> _val. +'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, + _val) -> + _val. 'encode_stream_error_text_attr_xml:lang'(undefined, _acc) -> @@ -10520,37 +11239,42 @@ encode_stream_error_text({text, Lang, Data}, 'encode_stream_error_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_stream_error_text_cdata(<<>>) -> undefined; -decode_stream_error_text_cdata(_val) -> _val. +decode_stream_error_text_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_stream_error_text_cdata(__TopXMLNS, _val) -> + _val. encode_stream_error_text_cdata(undefined, _acc) -> _acc; encode_stream_error_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_time({xmlel, <<"time">>, _attrs, _els}) -> - {Utc, Tzo} = decode_time_els(_els, undefined, - undefined), +decode_time(__TopXMLNS, + {xmlel, <<"time">>, _attrs, _els}) -> + {Utc, Tzo} = decode_time_els(__TopXMLNS, _els, + undefined, undefined), {time, Tzo, Utc}. -decode_time_els([], Utc, Tzo) -> {Utc, Tzo}; -decode_time_els([{xmlel, <<"tzo">>, _attrs, _} = _el - | _els], - Utc, Tzo) -> +decode_time_els(__TopXMLNS, [], Utc, Tzo) -> {Utc, Tzo}; +decode_time_els(__TopXMLNS, + [{xmlel, <<"tzo">>, _attrs, _} = _el | _els], Utc, + Tzo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"urn:xmpp:time">> -> - decode_time_els(_els, Utc, decode_time_tzo(_el)); - true -> decode_time_els(_els, Utc, Tzo) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_time_els(__TopXMLNS, _els, Utc, + decode_time_tzo(__TopXMLNS, _el)); + true -> decode_time_els(__TopXMLNS, _els, Utc, Tzo) end; -decode_time_els([{xmlel, <<"utc">>, _attrs, _} = _el - | _els], - Utc, Tzo) -> +decode_time_els(__TopXMLNS, + [{xmlel, <<"utc">>, _attrs, _} = _el | _els], Utc, + Tzo) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"urn:xmpp:time">> -> - decode_time_els(_els, decode_time_utc(_el), Tzo); - true -> decode_time_els(_els, Utc, Tzo) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_time_els(__TopXMLNS, _els, + decode_time_utc(__TopXMLNS, _el), Tzo); + true -> decode_time_els(__TopXMLNS, _els, Utc, Tzo) end; -decode_time_els([_ | _els], Utc, Tzo) -> - decode_time_els(_els, Utc, Tzo). +decode_time_els(__TopXMLNS, [_ | _els], Utc, Tzo) -> + decode_time_els(__TopXMLNS, _els, Utc, Tzo). encode_time({time, Tzo, Utc}, _xmlns_attrs) -> _els = 'encode_time_$tzo'(Tzo, @@ -10566,30 +11290,31 @@ encode_time({time, Tzo, Utc}, _xmlns_attrs) -> 'encode_time_$tzo'(Tzo, _acc) -> [encode_time_tzo(Tzo, []) | _acc]. -decode_time_tzo({xmlel, <<"tzo">>, _attrs, _els}) -> - Cdata = decode_time_tzo_els(_els, <<>>), Cdata. +decode_time_tzo(__TopXMLNS, + {xmlel, <<"tzo">>, _attrs, _els}) -> + Cdata = decode_time_tzo_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_time_tzo_els([], Cdata) -> - decode_time_tzo_cdata(Cdata); -decode_time_tzo_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_time_tzo_els(_els, +decode_time_tzo_els(__TopXMLNS, [], Cdata) -> + decode_time_tzo_cdata(__TopXMLNS, Cdata); +decode_time_tzo_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_time_tzo_els(__TopXMLNS, _els, <>); -decode_time_tzo_els([_ | _els], Cdata) -> - decode_time_tzo_els(_els, Cdata). +decode_time_tzo_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_time_tzo_els(__TopXMLNS, _els, Cdata). encode_time_tzo(Cdata, _xmlns_attrs) -> _els = encode_time_tzo_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"tzo">>, _attrs, _els}. -decode_time_tzo_cdata(<<>>) -> undefined; -decode_time_tzo_cdata(_val) -> +decode_time_tzo_cdata(__TopXMLNS, <<>>) -> undefined; +decode_time_tzo_cdata(__TopXMLNS, _val) -> case catch dec_tzo(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"tzo">>, - <<"urn:xmpp:time">>}}); + {bad_cdata_value, <<>>, <<"tzo">>, __TopXMLNS}}); _res -> _res end. @@ -10597,30 +11322,31 @@ encode_time_tzo_cdata(undefined, _acc) -> _acc; encode_time_tzo_cdata(_val, _acc) -> [{xmlcdata, enc_tzo(_val)} | _acc]. -decode_time_utc({xmlel, <<"utc">>, _attrs, _els}) -> - Cdata = decode_time_utc_els(_els, <<>>), Cdata. +decode_time_utc(__TopXMLNS, + {xmlel, <<"utc">>, _attrs, _els}) -> + Cdata = decode_time_utc_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_time_utc_els([], Cdata) -> - decode_time_utc_cdata(Cdata); -decode_time_utc_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_time_utc_els(_els, +decode_time_utc_els(__TopXMLNS, [], Cdata) -> + decode_time_utc_cdata(__TopXMLNS, Cdata); +decode_time_utc_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_time_utc_els(__TopXMLNS, _els, <>); -decode_time_utc_els([_ | _els], Cdata) -> - decode_time_utc_els(_els, Cdata). +decode_time_utc_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_time_utc_els(__TopXMLNS, _els, Cdata). encode_time_utc(Cdata, _xmlns_attrs) -> _els = encode_time_utc_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"utc">>, _attrs, _els}. -decode_time_utc_cdata(<<>>) -> undefined; -decode_time_utc_cdata(_val) -> +decode_time_utc_cdata(__TopXMLNS, <<>>) -> undefined; +decode_time_utc_cdata(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"utc">>, - <<"urn:xmpp:time">>}}); + {bad_cdata_value, <<>>, <<"utc">>, __TopXMLNS}}); _res -> _res end. @@ -10628,7 +11354,8 @@ encode_time_utc_cdata(undefined, _acc) -> _acc; encode_time_utc_cdata(_val, _acc) -> [{xmlcdata, enc_utc(_val)} | _acc]. -decode_ping({xmlel, <<"ping">>, _attrs, _els}) -> +decode_ping(__TopXMLNS, + {xmlel, <<"ping">>, _attrs, _els}) -> {ping}. encode_ping({ping}, _xmlns_attrs) -> @@ -10636,7 +11363,8 @@ encode_ping({ping}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"ping">>, _attrs, _els}. -decode_session({xmlel, <<"session">>, _attrs, _els}) -> +decode_session(__TopXMLNS, + {xmlel, <<"session">>, _attrs, _els}) -> {session}. encode_session({session}, _xmlns_attrs) -> @@ -10644,414 +11372,405 @@ encode_session({session}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"session">>, _attrs, _els}. -decode_register({xmlel, <<"query">>, _attrs, _els}) -> +decode_register(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> {Zip, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email} = - decode_register_els(_els, undefined, undefined, + decode_register_els(__TopXMLNS, _els, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, false, undefined, undefined, undefined, undefined, undefined, false, undefined, - undefined, undefined, undefined, undefined), + undefined, undefined, undefined, undefined, false, + undefined, undefined, undefined, undefined, + undefined), {register, Registered, Remove, Instructions, Username, Nick, Password, Name, First, Last, Email, Address, City, State, Zip, Phone, Url, Date, Misc, Text, Key}. -decode_register_els([], Zip, Misc, Address, +decode_register_els(__TopXMLNS, [], Zip, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> {Zip, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email}; -decode_register_els([{xmlel, <<"registered">>, _attrs, - _} = - _el - | _els], +decode_register_els(__TopXMLNS, + [{xmlel, <<"registered">>, _attrs, _} = _el | _els], Zip, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - decode_register_registered(_el), Date, Phone, - State, Name, Username, Remove, Key, City, Nick, - Url, Email); - true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) - end; -decode_register_els([{xmlel, <<"remove">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, - Password, Registered, Date, Phone, State, Name, - Username, Remove, Key, City, Nick, Url, Email) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - decode_register_remove(_el), Key, City, Nick, - Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, + decode_register_registered(__TopXMLNS, _el), + Date, Phone, State, Name, Username, Remove, Key, + City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"instructions">>, _attrs, - _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"remove">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - decode_register_instructions(_el), Text, Last, - First, Password, Registered, Date, Phone, State, - Name, Username, Remove, Key, City, Nick, Url, - Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, + decode_register_remove(__TopXMLNS, _el), Key, + City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"username">>, _attrs, - _} = - _el - | _els], +decode_register_els(__TopXMLNS, + [{xmlel, <<"instructions">>, _attrs, _} = _el | _els], Zip, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, - decode_register_username(_el), Remove, Key, City, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, + decode_register_instructions(__TopXMLNS, _el), + Text, Last, First, Password, Registered, Date, + Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"nick">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"username">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, decode_register_nick(_el), - Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + decode_register_username(__TopXMLNS, _el), + Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"password">>, _attrs, - _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, - decode_register_password(_el), Registered, Date, - Phone, State, Name, Username, Remove, Key, City, - Nick, Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, + decode_register_nick(__TopXMLNS, _el), Url, + Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"name">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"password">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, - decode_register_name(_el), Username, Remove, Key, - City, Nick, Url, Email); - true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + decode_register_password(__TopXMLNS, _el), Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + Remove, Key, City, Nick, Url, Email); + true -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"first">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"name">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, - decode_register_first(_el), Password, Registered, - Date, Phone, State, Name, Username, Remove, Key, - City, Nick, Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, + decode_register_name(__TopXMLNS, _el), Username, + Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"last">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"first">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, decode_register_last(_el), - First, Password, Registered, Date, Phone, State, - Name, Username, Remove, Key, City, Nick, Url, - Email); - true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, + decode_register_first(__TopXMLNS, _el), Password, Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + Remove, Key, City, Nick, Url, Email); + true -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"email">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"last">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, - decode_register_email(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, + decode_register_last(__TopXMLNS, _el), First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"address">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"email">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, - decode_register_address(_el), Instructions, Text, - Last, First, Password, Registered, Date, Phone, - State, Name, Username, Remove, Key, City, Nick, - Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, + decode_register_email(__TopXMLNS, _el)); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"city">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"address">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + decode_register_address(__TopXMLNS, _el), Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, - Remove, Key, decode_register_city(_el), Nick, - Url, Email); + Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"state">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"city">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, - decode_register_state(_el), Name, Username, - Remove, Key, City, Nick, Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, + decode_register_city(__TopXMLNS, _el), Nick, Url, + Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"zip">>, _attrs, _} = _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"state">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, decode_register_zip(_el), - Misc, Address, Instructions, Text, Last, First, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, + decode_register_state(__TopXMLNS, _el), Name, + Username, Remove, Key, City, Nick, Url, Email); + true -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) + end; +decode_register_els(__TopXMLNS, + [{xmlel, <<"zip">>, _attrs, _} = _el | _els], Zip, Misc, + Address, Instructions, Text, Last, First, Password, + Registered, Date, Phone, State, Name, Username, Remove, + Key, City, Nick, Url, Email) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, + decode_register_zip(__TopXMLNS, _el), Misc, + Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"phone">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"phone">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, decode_register_phone(_el), - State, Name, Username, Remove, Key, City, Nick, - Url, Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, + decode_register_phone(__TopXMLNS, _el), State, + Name, Username, Remove, Key, City, Nick, Url, + Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"url">>, _attrs, _} = _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, - Password, Registered, Date, Phone, State, Name, - Username, Remove, Key, City, Nick, Url, Email) -> +decode_register_els(__TopXMLNS, + [{xmlel, <<"url">>, _attrs, _} = _el | _els], Zip, Misc, + Address, Instructions, Text, Last, First, Password, + Registered, Date, Phone, State, Name, Username, Remove, + Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, - decode_register_url(_el), Email); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, + decode_register_url(__TopXMLNS, _el), Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"date">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"date">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, decode_register_date(_el), Phone, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, + decode_register_date(__TopXMLNS, _el), Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"misc">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"misc">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, - decode_register_misc(_el), Address, Instructions, - Text, Last, First, Password, Registered, Date, - Phone, State, Name, Username, Remove, Key, City, - Nick, Url, Email); - true -> - decode_register_els(_els, Zip, Misc, Address, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, + decode_register_misc(__TopXMLNS, _el), Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + Remove, Key, City, Nick, Url, Email); + true -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"text">>, _attrs, _} = - _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, +decode_register_els(__TopXMLNS, + [{xmlel, <<"text">>, _attrs, _} = _el | _els], Zip, + Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, decode_register_text(_el), Last, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, + decode_register_text(__TopXMLNS, _el), Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([{xmlel, <<"key">>, _attrs, _} = _el - | _els], - Zip, Misc, Address, Instructions, Text, Last, First, - Password, Registered, Date, Phone, State, Name, - Username, Remove, Key, City, Nick, Url, Email) -> +decode_register_els(__TopXMLNS, + [{xmlel, <<"key">>, _attrs, _} = _el | _els], Zip, Misc, + Address, Instructions, Text, Last, First, Password, + Registered, Date, Phone, State, Name, Username, Remove, + Key, City, Nick, Url, Email) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:register">> -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, decode_register_key(_el), City, Nick, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, + decode_register_key(__TopXMLNS, _el), City, Nick, Url, Email); true -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, - Registered, Date, Phone, State, Name, Username, - Remove, Key, City, Nick, Url, Email) + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, + Password, Registered, Date, Phone, State, Name, + Username, Remove, Key, City, Nick, Url, Email) end; -decode_register_els([_ | _els], Zip, Misc, Address, - Instructions, Text, Last, First, Password, Registered, - Date, Phone, State, Name, Username, Remove, Key, City, - Nick, Url, Email) -> - decode_register_els(_els, Zip, Misc, Address, - Instructions, Text, Last, First, Password, Registered, - Date, Phone, State, Name, Username, Remove, Key, City, - Nick, Url, Email). +decode_register_els(__TopXMLNS, [_ | _els], Zip, Misc, + Address, Instructions, Text, Last, First, Password, + Registered, Date, Phone, State, Name, Username, Remove, + Key, City, Nick, Url, Email) -> + decode_register_els(__TopXMLNS, _els, Zip, Misc, + Address, Instructions, Text, Last, First, Password, + Registered, Date, Phone, State, Name, Username, Remove, + Key, City, Nick, Url, Email). encode_register({register, Registered, Remove, Instructions, Username, Nick, Password, Name, First, @@ -11163,458 +11882,518 @@ encode_register({register, Registered, Remove, 'encode_register_$email'(Email, _acc) -> [encode_register_email(Email, []) | _acc]. -decode_register_key({xmlel, <<"key">>, _attrs, _els}) -> - Cdata = decode_register_key_els(_els, <<>>), Cdata. +decode_register_key(__TopXMLNS, + {xmlel, <<"key">>, _attrs, _els}) -> + Cdata = decode_register_key_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_register_key_els([], Cdata) -> - decode_register_key_cdata(Cdata); -decode_register_key_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_key_els(_els, +decode_register_key_els(__TopXMLNS, [], Cdata) -> + decode_register_key_cdata(__TopXMLNS, Cdata); +decode_register_key_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_key_els(__TopXMLNS, _els, <>); -decode_register_key_els([_ | _els], Cdata) -> - decode_register_key_els(_els, Cdata). +decode_register_key_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_key_els(__TopXMLNS, _els, Cdata). encode_register_key(Cdata, _xmlns_attrs) -> _els = encode_register_key_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"key">>, _attrs, _els}. -decode_register_key_cdata(<<>>) -> none; -decode_register_key_cdata(_val) -> _val. +decode_register_key_cdata(__TopXMLNS, <<>>) -> none; +decode_register_key_cdata(__TopXMLNS, _val) -> _val. encode_register_key_cdata(none, _acc) -> _acc; encode_register_key_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_text({xmlel, <<"text">>, _attrs, - _els}) -> - Cdata = decode_register_text_els(_els, <<>>), Cdata. +decode_register_text(__TopXMLNS, + {xmlel, <<"text">>, _attrs, _els}) -> + Cdata = decode_register_text_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_text_els([], Cdata) -> - decode_register_text_cdata(Cdata); -decode_register_text_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_text_els(_els, +decode_register_text_els(__TopXMLNS, [], Cdata) -> + decode_register_text_cdata(__TopXMLNS, Cdata); +decode_register_text_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_text_els(__TopXMLNS, _els, <>); -decode_register_text_els([_ | _els], Cdata) -> - decode_register_text_els(_els, Cdata). +decode_register_text_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_text_els(__TopXMLNS, _els, Cdata). encode_register_text(Cdata, _xmlns_attrs) -> _els = encode_register_text_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"text">>, _attrs, _els}. -decode_register_text_cdata(<<>>) -> none; -decode_register_text_cdata(_val) -> _val. +decode_register_text_cdata(__TopXMLNS, <<>>) -> none; +decode_register_text_cdata(__TopXMLNS, _val) -> _val. encode_register_text_cdata(none, _acc) -> _acc; encode_register_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_misc({xmlel, <<"misc">>, _attrs, - _els}) -> - Cdata = decode_register_misc_els(_els, <<>>), Cdata. +decode_register_misc(__TopXMLNS, + {xmlel, <<"misc">>, _attrs, _els}) -> + Cdata = decode_register_misc_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_misc_els([], Cdata) -> - decode_register_misc_cdata(Cdata); -decode_register_misc_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_misc_els(_els, +decode_register_misc_els(__TopXMLNS, [], Cdata) -> + decode_register_misc_cdata(__TopXMLNS, Cdata); +decode_register_misc_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_misc_els(__TopXMLNS, _els, <>); -decode_register_misc_els([_ | _els], Cdata) -> - decode_register_misc_els(_els, Cdata). +decode_register_misc_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_misc_els(__TopXMLNS, _els, Cdata). encode_register_misc(Cdata, _xmlns_attrs) -> _els = encode_register_misc_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"misc">>, _attrs, _els}. -decode_register_misc_cdata(<<>>) -> none; -decode_register_misc_cdata(_val) -> _val. +decode_register_misc_cdata(__TopXMLNS, <<>>) -> none; +decode_register_misc_cdata(__TopXMLNS, _val) -> _val. encode_register_misc_cdata(none, _acc) -> _acc; encode_register_misc_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_date({xmlel, <<"date">>, _attrs, - _els}) -> - Cdata = decode_register_date_els(_els, <<>>), Cdata. +decode_register_date(__TopXMLNS, + {xmlel, <<"date">>, _attrs, _els}) -> + Cdata = decode_register_date_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_date_els([], Cdata) -> - decode_register_date_cdata(Cdata); -decode_register_date_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_date_els(_els, +decode_register_date_els(__TopXMLNS, [], Cdata) -> + decode_register_date_cdata(__TopXMLNS, Cdata); +decode_register_date_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_date_els(__TopXMLNS, _els, <>); -decode_register_date_els([_ | _els], Cdata) -> - decode_register_date_els(_els, Cdata). +decode_register_date_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_date_els(__TopXMLNS, _els, Cdata). encode_register_date(Cdata, _xmlns_attrs) -> _els = encode_register_date_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"date">>, _attrs, _els}. -decode_register_date_cdata(<<>>) -> none; -decode_register_date_cdata(_val) -> _val. +decode_register_date_cdata(__TopXMLNS, <<>>) -> none; +decode_register_date_cdata(__TopXMLNS, _val) -> _val. encode_register_date_cdata(none, _acc) -> _acc; encode_register_date_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_url({xmlel, <<"url">>, _attrs, _els}) -> - Cdata = decode_register_url_els(_els, <<>>), Cdata. +decode_register_url(__TopXMLNS, + {xmlel, <<"url">>, _attrs, _els}) -> + Cdata = decode_register_url_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_register_url_els([], Cdata) -> - decode_register_url_cdata(Cdata); -decode_register_url_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_url_els(_els, +decode_register_url_els(__TopXMLNS, [], Cdata) -> + decode_register_url_cdata(__TopXMLNS, Cdata); +decode_register_url_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_url_els(__TopXMLNS, _els, <>); -decode_register_url_els([_ | _els], Cdata) -> - decode_register_url_els(_els, Cdata). +decode_register_url_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_url_els(__TopXMLNS, _els, Cdata). encode_register_url(Cdata, _xmlns_attrs) -> _els = encode_register_url_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"url">>, _attrs, _els}. -decode_register_url_cdata(<<>>) -> none; -decode_register_url_cdata(_val) -> _val. +decode_register_url_cdata(__TopXMLNS, <<>>) -> none; +decode_register_url_cdata(__TopXMLNS, _val) -> _val. encode_register_url_cdata(none, _acc) -> _acc; encode_register_url_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_phone({xmlel, <<"phone">>, _attrs, - _els}) -> - Cdata = decode_register_phone_els(_els, <<>>), Cdata. +decode_register_phone(__TopXMLNS, + {xmlel, <<"phone">>, _attrs, _els}) -> + Cdata = decode_register_phone_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_phone_els([], Cdata) -> - decode_register_phone_cdata(Cdata); -decode_register_phone_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_phone_els(_els, +decode_register_phone_els(__TopXMLNS, [], Cdata) -> + decode_register_phone_cdata(__TopXMLNS, Cdata); +decode_register_phone_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_phone_els(__TopXMLNS, _els, <>); -decode_register_phone_els([_ | _els], Cdata) -> - decode_register_phone_els(_els, Cdata). +decode_register_phone_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_phone_els(__TopXMLNS, _els, Cdata). encode_register_phone(Cdata, _xmlns_attrs) -> _els = encode_register_phone_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"phone">>, _attrs, _els}. -decode_register_phone_cdata(<<>>) -> none; -decode_register_phone_cdata(_val) -> _val. +decode_register_phone_cdata(__TopXMLNS, <<>>) -> none; +decode_register_phone_cdata(__TopXMLNS, _val) -> _val. encode_register_phone_cdata(none, _acc) -> _acc; encode_register_phone_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_zip({xmlel, <<"zip">>, _attrs, _els}) -> - Cdata = decode_register_zip_els(_els, <<>>), Cdata. +decode_register_zip(__TopXMLNS, + {xmlel, <<"zip">>, _attrs, _els}) -> + Cdata = decode_register_zip_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_register_zip_els([], Cdata) -> - decode_register_zip_cdata(Cdata); -decode_register_zip_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_zip_els(_els, +decode_register_zip_els(__TopXMLNS, [], Cdata) -> + decode_register_zip_cdata(__TopXMLNS, Cdata); +decode_register_zip_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_zip_els(__TopXMLNS, _els, <>); -decode_register_zip_els([_ | _els], Cdata) -> - decode_register_zip_els(_els, Cdata). +decode_register_zip_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_zip_els(__TopXMLNS, _els, Cdata). encode_register_zip(Cdata, _xmlns_attrs) -> _els = encode_register_zip_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"zip">>, _attrs, _els}. -decode_register_zip_cdata(<<>>) -> none; -decode_register_zip_cdata(_val) -> _val. +decode_register_zip_cdata(__TopXMLNS, <<>>) -> none; +decode_register_zip_cdata(__TopXMLNS, _val) -> _val. encode_register_zip_cdata(none, _acc) -> _acc; encode_register_zip_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_state({xmlel, <<"state">>, _attrs, - _els}) -> - Cdata = decode_register_state_els(_els, <<>>), Cdata. +decode_register_state(__TopXMLNS, + {xmlel, <<"state">>, _attrs, _els}) -> + Cdata = decode_register_state_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_state_els([], Cdata) -> - decode_register_state_cdata(Cdata); -decode_register_state_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_state_els(_els, +decode_register_state_els(__TopXMLNS, [], Cdata) -> + decode_register_state_cdata(__TopXMLNS, Cdata); +decode_register_state_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_state_els(__TopXMLNS, _els, <>); -decode_register_state_els([_ | _els], Cdata) -> - decode_register_state_els(_els, Cdata). +decode_register_state_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_state_els(__TopXMLNS, _els, Cdata). encode_register_state(Cdata, _xmlns_attrs) -> _els = encode_register_state_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"state">>, _attrs, _els}. -decode_register_state_cdata(<<>>) -> none; -decode_register_state_cdata(_val) -> _val. +decode_register_state_cdata(__TopXMLNS, <<>>) -> none; +decode_register_state_cdata(__TopXMLNS, _val) -> _val. encode_register_state_cdata(none, _acc) -> _acc; encode_register_state_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_city({xmlel, <<"city">>, _attrs, - _els}) -> - Cdata = decode_register_city_els(_els, <<>>), Cdata. +decode_register_city(__TopXMLNS, + {xmlel, <<"city">>, _attrs, _els}) -> + Cdata = decode_register_city_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_city_els([], Cdata) -> - decode_register_city_cdata(Cdata); -decode_register_city_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_city_els(_els, +decode_register_city_els(__TopXMLNS, [], Cdata) -> + decode_register_city_cdata(__TopXMLNS, Cdata); +decode_register_city_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_city_els(__TopXMLNS, _els, <>); -decode_register_city_els([_ | _els], Cdata) -> - decode_register_city_els(_els, Cdata). +decode_register_city_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_city_els(__TopXMLNS, _els, Cdata). encode_register_city(Cdata, _xmlns_attrs) -> _els = encode_register_city_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"city">>, _attrs, _els}. -decode_register_city_cdata(<<>>) -> none; -decode_register_city_cdata(_val) -> _val. +decode_register_city_cdata(__TopXMLNS, <<>>) -> none; +decode_register_city_cdata(__TopXMLNS, _val) -> _val. encode_register_city_cdata(none, _acc) -> _acc; encode_register_city_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_address({xmlel, <<"address">>, _attrs, - _els}) -> - Cdata = decode_register_address_els(_els, <<>>), Cdata. +decode_register_address(__TopXMLNS, + {xmlel, <<"address">>, _attrs, _els}) -> + Cdata = decode_register_address_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_address_els([], Cdata) -> - decode_register_address_cdata(Cdata); -decode_register_address_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_address_els(_els, +decode_register_address_els(__TopXMLNS, [], Cdata) -> + decode_register_address_cdata(__TopXMLNS, Cdata); +decode_register_address_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_address_els(__TopXMLNS, _els, <>); -decode_register_address_els([_ | _els], Cdata) -> - decode_register_address_els(_els, Cdata). +decode_register_address_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_address_els(__TopXMLNS, _els, Cdata). encode_register_address(Cdata, _xmlns_attrs) -> _els = encode_register_address_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"address">>, _attrs, _els}. -decode_register_address_cdata(<<>>) -> none; -decode_register_address_cdata(_val) -> _val. +decode_register_address_cdata(__TopXMLNS, <<>>) -> none; +decode_register_address_cdata(__TopXMLNS, _val) -> _val. encode_register_address_cdata(none, _acc) -> _acc; encode_register_address_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_email({xmlel, <<"email">>, _attrs, - _els}) -> - Cdata = decode_register_email_els(_els, <<>>), Cdata. +decode_register_email(__TopXMLNS, + {xmlel, <<"email">>, _attrs, _els}) -> + Cdata = decode_register_email_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_email_els([], Cdata) -> - decode_register_email_cdata(Cdata); -decode_register_email_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_email_els(_els, +decode_register_email_els(__TopXMLNS, [], Cdata) -> + decode_register_email_cdata(__TopXMLNS, Cdata); +decode_register_email_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_email_els(__TopXMLNS, _els, <>); -decode_register_email_els([_ | _els], Cdata) -> - decode_register_email_els(_els, Cdata). +decode_register_email_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_email_els(__TopXMLNS, _els, Cdata). encode_register_email(Cdata, _xmlns_attrs) -> _els = encode_register_email_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"email">>, _attrs, _els}. -decode_register_email_cdata(<<>>) -> none; -decode_register_email_cdata(_val) -> _val. +decode_register_email_cdata(__TopXMLNS, <<>>) -> none; +decode_register_email_cdata(__TopXMLNS, _val) -> _val. encode_register_email_cdata(none, _acc) -> _acc; encode_register_email_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_last({xmlel, <<"last">>, _attrs, - _els}) -> - Cdata = decode_register_last_els(_els, <<>>), Cdata. +decode_register_last(__TopXMLNS, + {xmlel, <<"last">>, _attrs, _els}) -> + Cdata = decode_register_last_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_last_els([], Cdata) -> - decode_register_last_cdata(Cdata); -decode_register_last_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_last_els(_els, +decode_register_last_els(__TopXMLNS, [], Cdata) -> + decode_register_last_cdata(__TopXMLNS, Cdata); +decode_register_last_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_last_els(__TopXMLNS, _els, <>); -decode_register_last_els([_ | _els], Cdata) -> - decode_register_last_els(_els, Cdata). +decode_register_last_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_last_els(__TopXMLNS, _els, Cdata). encode_register_last(Cdata, _xmlns_attrs) -> _els = encode_register_last_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"last">>, _attrs, _els}. -decode_register_last_cdata(<<>>) -> none; -decode_register_last_cdata(_val) -> _val. +decode_register_last_cdata(__TopXMLNS, <<>>) -> none; +decode_register_last_cdata(__TopXMLNS, _val) -> _val. encode_register_last_cdata(none, _acc) -> _acc; encode_register_last_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_first({xmlel, <<"first">>, _attrs, - _els}) -> - Cdata = decode_register_first_els(_els, <<>>), Cdata. +decode_register_first(__TopXMLNS, + {xmlel, <<"first">>, _attrs, _els}) -> + Cdata = decode_register_first_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_first_els([], Cdata) -> - decode_register_first_cdata(Cdata); -decode_register_first_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_first_els(_els, +decode_register_first_els(__TopXMLNS, [], Cdata) -> + decode_register_first_cdata(__TopXMLNS, Cdata); +decode_register_first_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_first_els(__TopXMLNS, _els, <>); -decode_register_first_els([_ | _els], Cdata) -> - decode_register_first_els(_els, Cdata). +decode_register_first_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_first_els(__TopXMLNS, _els, Cdata). encode_register_first(Cdata, _xmlns_attrs) -> _els = encode_register_first_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"first">>, _attrs, _els}. -decode_register_first_cdata(<<>>) -> none; -decode_register_first_cdata(_val) -> _val. +decode_register_first_cdata(__TopXMLNS, <<>>) -> none; +decode_register_first_cdata(__TopXMLNS, _val) -> _val. encode_register_first_cdata(none, _acc) -> _acc; encode_register_first_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_name({xmlel, <<"name">>, _attrs, - _els}) -> - Cdata = decode_register_name_els(_els, <<>>), Cdata. +decode_register_name(__TopXMLNS, + {xmlel, <<"name">>, _attrs, _els}) -> + Cdata = decode_register_name_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_name_els([], Cdata) -> - decode_register_name_cdata(Cdata); -decode_register_name_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_name_els(_els, +decode_register_name_els(__TopXMLNS, [], Cdata) -> + decode_register_name_cdata(__TopXMLNS, Cdata); +decode_register_name_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_name_els(__TopXMLNS, _els, <>); -decode_register_name_els([_ | _els], Cdata) -> - decode_register_name_els(_els, Cdata). +decode_register_name_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_name_els(__TopXMLNS, _els, Cdata). encode_register_name(Cdata, _xmlns_attrs) -> _els = encode_register_name_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"name">>, _attrs, _els}. -decode_register_name_cdata(<<>>) -> none; -decode_register_name_cdata(_val) -> _val. +decode_register_name_cdata(__TopXMLNS, <<>>) -> none; +decode_register_name_cdata(__TopXMLNS, _val) -> _val. encode_register_name_cdata(none, _acc) -> _acc; encode_register_name_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_password({xmlel, <<"password">>, _attrs, - _els}) -> - Cdata = decode_register_password_els(_els, <<>>), Cdata. +decode_register_password(__TopXMLNS, + {xmlel, <<"password">>, _attrs, _els}) -> + Cdata = decode_register_password_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_password_els([], Cdata) -> - decode_register_password_cdata(Cdata); -decode_register_password_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_password_els(_els, +decode_register_password_els(__TopXMLNS, [], Cdata) -> + decode_register_password_cdata(__TopXMLNS, Cdata); +decode_register_password_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_password_els(__TopXMLNS, _els, <>); -decode_register_password_els([_ | _els], Cdata) -> - decode_register_password_els(_els, Cdata). +decode_register_password_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_password_els(__TopXMLNS, _els, Cdata). encode_register_password(Cdata, _xmlns_attrs) -> _els = encode_register_password_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"password">>, _attrs, _els}. -decode_register_password_cdata(<<>>) -> none; -decode_register_password_cdata(_val) -> _val. +decode_register_password_cdata(__TopXMLNS, <<>>) -> + none; +decode_register_password_cdata(__TopXMLNS, _val) -> + _val. encode_register_password_cdata(none, _acc) -> _acc; encode_register_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_nick({xmlel, <<"nick">>, _attrs, - _els}) -> - Cdata = decode_register_nick_els(_els, <<>>), Cdata. +decode_register_nick(__TopXMLNS, + {xmlel, <<"nick">>, _attrs, _els}) -> + Cdata = decode_register_nick_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_nick_els([], Cdata) -> - decode_register_nick_cdata(Cdata); -decode_register_nick_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_nick_els(_els, +decode_register_nick_els(__TopXMLNS, [], Cdata) -> + decode_register_nick_cdata(__TopXMLNS, Cdata); +decode_register_nick_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_nick_els(__TopXMLNS, _els, <>); -decode_register_nick_els([_ | _els], Cdata) -> - decode_register_nick_els(_els, Cdata). +decode_register_nick_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_nick_els(__TopXMLNS, _els, Cdata). encode_register_nick(Cdata, _xmlns_attrs) -> _els = encode_register_nick_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"nick">>, _attrs, _els}. -decode_register_nick_cdata(<<>>) -> none; -decode_register_nick_cdata(_val) -> _val. +decode_register_nick_cdata(__TopXMLNS, <<>>) -> none; +decode_register_nick_cdata(__TopXMLNS, _val) -> _val. encode_register_nick_cdata(none, _acc) -> _acc; encode_register_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_username({xmlel, <<"username">>, _attrs, - _els}) -> - Cdata = decode_register_username_els(_els, <<>>), Cdata. +decode_register_username(__TopXMLNS, + {xmlel, <<"username">>, _attrs, _els}) -> + Cdata = decode_register_username_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_register_username_els([], Cdata) -> - decode_register_username_cdata(Cdata); -decode_register_username_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_register_username_els(_els, +decode_register_username_els(__TopXMLNS, [], Cdata) -> + decode_register_username_cdata(__TopXMLNS, Cdata); +decode_register_username_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_username_els(__TopXMLNS, _els, <>); -decode_register_username_els([_ | _els], Cdata) -> - decode_register_username_els(_els, Cdata). +decode_register_username_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_username_els(__TopXMLNS, _els, Cdata). encode_register_username(Cdata, _xmlns_attrs) -> _els = encode_register_username_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"username">>, _attrs, _els}. -decode_register_username_cdata(<<>>) -> none; -decode_register_username_cdata(_val) -> _val. +decode_register_username_cdata(__TopXMLNS, <<>>) -> + none; +decode_register_username_cdata(__TopXMLNS, _val) -> + _val. encode_register_username_cdata(none, _acc) -> _acc; encode_register_username_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_instructions({xmlel, <<"instructions">>, - _attrs, _els}) -> - Cdata = decode_register_instructions_els(_els, <<>>), +decode_register_instructions(__TopXMLNS, + {xmlel, <<"instructions">>, _attrs, _els}) -> + Cdata = decode_register_instructions_els(__TopXMLNS, + _els, <<>>), Cdata. -decode_register_instructions_els([], Cdata) -> - decode_register_instructions_cdata(Cdata); -decode_register_instructions_els([{xmlcdata, _data} - | _els], +decode_register_instructions_els(__TopXMLNS, [], Cdata) -> - decode_register_instructions_els(_els, + decode_register_instructions_cdata(__TopXMLNS, Cdata); +decode_register_instructions_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_register_instructions_els(__TopXMLNS, _els, <>); -decode_register_instructions_els([_ | _els], Cdata) -> - decode_register_instructions_els(_els, Cdata). +decode_register_instructions_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_register_instructions_els(__TopXMLNS, _els, + Cdata). encode_register_instructions(Cdata, _xmlns_attrs) -> _els = encode_register_instructions_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"instructions">>, _attrs, _els}. -decode_register_instructions_cdata(<<>>) -> undefined; -decode_register_instructions_cdata(_val) -> _val. +decode_register_instructions_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_register_instructions_cdata(__TopXMLNS, _val) -> + _val. encode_register_instructions_cdata(undefined, _acc) -> _acc; encode_register_instructions_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_register_remove({xmlel, <<"remove">>, _attrs, - _els}) -> +decode_register_remove(__TopXMLNS, + {xmlel, <<"remove">>, _attrs, _els}) -> true. encode_register_remove(true, _xmlns_attrs) -> @@ -11622,8 +12401,8 @@ encode_register_remove(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"remove">>, _attrs, _els}. -decode_register_registered({xmlel, <<"registered">>, - _attrs, _els}) -> +decode_register_registered(__TopXMLNS, + {xmlel, <<"registered">>, _attrs, _els}) -> true. encode_register_registered(true, _xmlns_attrs) -> @@ -11631,8 +12410,8 @@ encode_register_registered(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"registered">>, _attrs, _els}. -decode_feature_register({xmlel, <<"register">>, _attrs, - _els}) -> +decode_feature_register(__TopXMLNS, + {xmlel, <<"register">>, _attrs, _els}) -> {feature_register}. encode_feature_register({feature_register}, @@ -11641,25 +12420,29 @@ encode_feature_register({feature_register}, _attrs = _xmlns_attrs, {xmlel, <<"register">>, _attrs, _els}. -decode_caps({xmlel, <<"c">>, _attrs, _els}) -> - {Hash, Node, Ver} = decode_caps_attrs(_attrs, undefined, - undefined, undefined), +decode_caps(__TopXMLNS, + {xmlel, <<"c">>, _attrs, _els}) -> + {Hash, Node, Ver} = decode_caps_attrs(__TopXMLNS, + _attrs, undefined, undefined, + undefined), {caps, Hash, Node, Ver}. -decode_caps_attrs([{<<"hash">>, _val} | _attrs], _Hash, - Node, Ver) -> - decode_caps_attrs(_attrs, _val, Node, Ver); -decode_caps_attrs([{<<"node">>, _val} | _attrs], Hash, - _Node, Ver) -> - decode_caps_attrs(_attrs, Hash, _val, Ver); -decode_caps_attrs([{<<"ver">>, _val} | _attrs], Hash, - Node, _Ver) -> - decode_caps_attrs(_attrs, Hash, Node, _val); -decode_caps_attrs([_ | _attrs], Hash, Node, Ver) -> - decode_caps_attrs(_attrs, Hash, Node, Ver); -decode_caps_attrs([], Hash, Node, Ver) -> - {decode_caps_attr_hash(Hash), - decode_caps_attr_node(Node), decode_caps_attr_ver(Ver)}. +decode_caps_attrs(__TopXMLNS, + [{<<"hash">>, _val} | _attrs], _Hash, Node, Ver) -> + decode_caps_attrs(__TopXMLNS, _attrs, _val, Node, Ver); +decode_caps_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], Hash, _Node, Ver) -> + decode_caps_attrs(__TopXMLNS, _attrs, Hash, _val, Ver); +decode_caps_attrs(__TopXMLNS, + [{<<"ver">>, _val} | _attrs], Hash, Node, _Ver) -> + decode_caps_attrs(__TopXMLNS, _attrs, Hash, Node, _val); +decode_caps_attrs(__TopXMLNS, [_ | _attrs], Hash, Node, + Ver) -> + decode_caps_attrs(__TopXMLNS, _attrs, Hash, Node, Ver); +decode_caps_attrs(__TopXMLNS, [], Hash, Node, Ver) -> + {decode_caps_attr_hash(__TopXMLNS, Hash), + decode_caps_attr_node(__TopXMLNS, Node), + decode_caps_attr_ver(__TopXMLNS, Ver)}. encode_caps({caps, Hash, Node, Ver}, _xmlns_attrs) -> _els = [], @@ -11669,27 +12452,29 @@ encode_caps({caps, Hash, Node, Ver}, _xmlns_attrs) -> _xmlns_attrs))), {xmlel, <<"c">>, _attrs, _els}. -decode_caps_attr_hash(undefined) -> undefined; -decode_caps_attr_hash(_val) -> _val. +decode_caps_attr_hash(__TopXMLNS, undefined) -> + undefined; +decode_caps_attr_hash(__TopXMLNS, _val) -> _val. encode_caps_attr_hash(undefined, _acc) -> _acc; encode_caps_attr_hash(_val, _acc) -> [{<<"hash">>, _val} | _acc]. -decode_caps_attr_node(undefined) -> undefined; -decode_caps_attr_node(_val) -> _val. +decode_caps_attr_node(__TopXMLNS, undefined) -> + undefined; +decode_caps_attr_node(__TopXMLNS, _val) -> _val. encode_caps_attr_node(undefined, _acc) -> _acc; encode_caps_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_caps_attr_ver(undefined) -> undefined; -decode_caps_attr_ver(_val) -> +decode_caps_attr_ver(__TopXMLNS, undefined) -> + undefined; +decode_caps_attr_ver(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"ver">>, <<"c">>, - <<"http://jabber.org/protocol/caps">>}}); + {bad_attr_value, <<"ver">>, <<"c">>, __TopXMLNS}}); _res -> _res end. @@ -11697,7 +12482,8 @@ encode_caps_attr_ver(undefined, _acc) -> _acc; encode_caps_attr_ver(_val, _acc) -> [{<<"ver">>, base64:encode(_val)} | _acc]. -decode_p1_ack({xmlel, <<"ack">>, _attrs, _els}) -> +decode_p1_ack(__TopXMLNS, + {xmlel, <<"ack">>, _attrs, _els}) -> {p1_ack}. encode_p1_ack({p1_ack}, _xmlns_attrs) -> @@ -11705,7 +12491,8 @@ encode_p1_ack({p1_ack}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"ack">>, _attrs, _els}. -decode_p1_rebind({xmlel, <<"rebind">>, _attrs, _els}) -> +decode_p1_rebind(__TopXMLNS, + {xmlel, <<"rebind">>, _attrs, _els}) -> {p1_rebind}. encode_p1_rebind({p1_rebind}, _xmlns_attrs) -> @@ -11713,7 +12500,8 @@ encode_p1_rebind({p1_rebind}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"rebind">>, _attrs, _els}. -decode_p1_push({xmlel, <<"push">>, _attrs, _els}) -> +decode_p1_push(__TopXMLNS, + {xmlel, <<"push">>, _attrs, _els}) -> {p1_push}. encode_p1_push({p1_push}, _xmlns_attrs) -> @@ -11721,23 +12509,26 @@ encode_p1_push({p1_push}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"push">>, _attrs, _els}. -decode_stream_features({xmlel, <<"stream:features">>, - _attrs, _els}) -> - __Els = decode_stream_features_els(_els, []), +decode_stream_features(__TopXMLNS, + {xmlel, <<"stream:features">>, _attrs, _els}) -> + __Els = decode_stream_features_els(__TopXMLNS, _els, + []), {stream_features, __Els}. -decode_stream_features_els([], __Els) -> +decode_stream_features_els(__TopXMLNS, [], __Els) -> lists:reverse(__Els); -decode_stream_features_els([{xmlel, _, _, _} = _el - | _els], - __Els) -> +decode_stream_features_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], __Els) -> case is_known_tag(_el) of true -> - decode_stream_features_els(_els, [decode(_el) | __Els]); - false -> decode_stream_features_els(_els, __Els) + decode_stream_features_els(__TopXMLNS, _els, + [decode(_el) | __Els]); + false -> + decode_stream_features_els(__TopXMLNS, _els, __Els) end; -decode_stream_features_els([_ | _els], __Els) -> - decode_stream_features_els(_els, __Els). +decode_stream_features_els(__TopXMLNS, [_ | _els], + __Els) -> + decode_stream_features_els(__TopXMLNS, _els, __Els). encode_stream_features({stream_features, __Els}, _xmlns_attrs) -> @@ -11745,30 +12536,31 @@ encode_stream_features({stream_features, __Els}, _attrs = _xmlns_attrs, {xmlel, <<"stream:features">>, _attrs, _els}. -decode_compression({xmlel, <<"compression">>, _attrs, - _els}) -> - Methods = decode_compression_els(_els, []), +decode_compression(__TopXMLNS, + {xmlel, <<"compression">>, _attrs, _els}) -> + Methods = decode_compression_els(__TopXMLNS, _els, []), {compression, Methods}. -decode_compression_els([], Methods) -> +decode_compression_els(__TopXMLNS, [], Methods) -> lists:reverse(Methods); -decode_compression_els([{xmlel, <<"method">>, _attrs, - _} = - _el - | _els], +decode_compression_els(__TopXMLNS, + [{xmlel, <<"method">>, _attrs, _} = _el | _els], Methods) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/features/compress">> -> - decode_compression_els(_els, - case decode_compression_method(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_compression_els(__TopXMLNS, _els, + case decode_compression_method(__TopXMLNS, + _el) + of undefined -> Methods; _new_el -> [_new_el | Methods] end); - true -> decode_compression_els(_els, Methods) + true -> + decode_compression_els(__TopXMLNS, _els, Methods) end; -decode_compression_els([_ | _els], Methods) -> - decode_compression_els(_els, Methods). +decode_compression_els(__TopXMLNS, [_ | _els], + Methods) -> + decode_compression_els(__TopXMLNS, _els, Methods). encode_compression({compression, Methods}, _xmlns_attrs) -> @@ -11782,36 +12574,39 @@ encode_compression({compression, Methods}, [encode_compression_method(Methods, []) | _acc]). -decode_compression_method({xmlel, <<"method">>, _attrs, - _els}) -> - Cdata = decode_compression_method_els(_els, <<>>), +decode_compression_method(__TopXMLNS, + {xmlel, <<"method">>, _attrs, _els}) -> + Cdata = decode_compression_method_els(__TopXMLNS, _els, + <<>>), Cdata. -decode_compression_method_els([], Cdata) -> - decode_compression_method_cdata(Cdata); -decode_compression_method_els([{xmlcdata, _data} - | _els], - Cdata) -> - decode_compression_method_els(_els, +decode_compression_method_els(__TopXMLNS, [], Cdata) -> + decode_compression_method_cdata(__TopXMLNS, Cdata); +decode_compression_method_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_compression_method_els(__TopXMLNS, _els, <>); -decode_compression_method_els([_ | _els], Cdata) -> - decode_compression_method_els(_els, Cdata). +decode_compression_method_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_compression_method_els(__TopXMLNS, _els, Cdata). encode_compression_method(Cdata, _xmlns_attrs) -> _els = encode_compression_method_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"method">>, _attrs, _els}. -decode_compression_method_cdata(<<>>) -> undefined; -decode_compression_method_cdata(_val) -> _val. +decode_compression_method_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_compression_method_cdata(__TopXMLNS, _val) -> + _val. encode_compression_method_cdata(undefined, _acc) -> _acc; encode_compression_method_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_compressed({xmlel, <<"compressed">>, _attrs, - _els}) -> +decode_compressed(__TopXMLNS, + {xmlel, <<"compressed">>, _attrs, _els}) -> {compressed}. encode_compressed({compressed}, _xmlns_attrs) -> @@ -11819,29 +12614,27 @@ encode_compressed({compressed}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"compressed">>, _attrs, _els}. -decode_compress({xmlel, <<"compress">>, _attrs, - _els}) -> - Methods = decode_compress_els(_els, []), +decode_compress(__TopXMLNS, + {xmlel, <<"compress">>, _attrs, _els}) -> + Methods = decode_compress_els(__TopXMLNS, _els, []), {compress, Methods}. -decode_compress_els([], Methods) -> +decode_compress_els(__TopXMLNS, [], Methods) -> lists:reverse(Methods); -decode_compress_els([{xmlel, <<"method">>, _attrs, _} = - _el - | _els], +decode_compress_els(__TopXMLNS, + [{xmlel, <<"method">>, _attrs, _} = _el | _els], Methods) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/compress">> -> - decode_compress_els(_els, - case decode_compress_method(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_compress_els(__TopXMLNS, _els, + case decode_compress_method(__TopXMLNS, _el) of undefined -> Methods; _new_el -> [_new_el | Methods] end); - true -> decode_compress_els(_els, Methods) + true -> decode_compress_els(__TopXMLNS, _els, Methods) end; -decode_compress_els([_ | _els], Methods) -> - decode_compress_els(_els, Methods). +decode_compress_els(__TopXMLNS, [_ | _els], Methods) -> + decode_compress_els(__TopXMLNS, _els, Methods). encode_compress({compress, Methods}, _xmlns_attrs) -> _els = 'encode_compress_$methods'(Methods, []), @@ -11853,75 +12646,82 @@ encode_compress({compress, Methods}, _xmlns_attrs) -> 'encode_compress_$methods'(_els, [encode_compress_method(Methods, []) | _acc]). -decode_compress_method({xmlel, <<"method">>, _attrs, - _els}) -> - Cdata = decode_compress_method_els(_els, <<>>), Cdata. +decode_compress_method(__TopXMLNS, + {xmlel, <<"method">>, _attrs, _els}) -> + Cdata = decode_compress_method_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_compress_method_els([], Cdata) -> - decode_compress_method_cdata(Cdata); -decode_compress_method_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_compress_method_els(_els, +decode_compress_method_els(__TopXMLNS, [], Cdata) -> + decode_compress_method_cdata(__TopXMLNS, Cdata); +decode_compress_method_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_compress_method_els(__TopXMLNS, _els, <>); -decode_compress_method_els([_ | _els], Cdata) -> - decode_compress_method_els(_els, Cdata). +decode_compress_method_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_compress_method_els(__TopXMLNS, _els, Cdata). encode_compress_method(Cdata, _xmlns_attrs) -> _els = encode_compress_method_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"method">>, _attrs, _els}. -decode_compress_method_cdata(<<>>) -> undefined; -decode_compress_method_cdata(_val) -> _val. +decode_compress_method_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_compress_method_cdata(__TopXMLNS, _val) -> _val. encode_compress_method_cdata(undefined, _acc) -> _acc; encode_compress_method_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_compress_failure({xmlel, <<"failure">>, _attrs, - _els}) -> - Reason = decode_compress_failure_els(_els, undefined), +decode_compress_failure(__TopXMLNS, + {xmlel, <<"failure">>, _attrs, _els}) -> + Reason = decode_compress_failure_els(__TopXMLNS, _els, + undefined), {compress_failure, Reason}. -decode_compress_failure_els([], Reason) -> Reason; -decode_compress_failure_els([{xmlel, <<"setup-failed">>, - _attrs, _} = - _el +decode_compress_failure_els(__TopXMLNS, [], Reason) -> + Reason; +decode_compress_failure_els(__TopXMLNS, + [{xmlel, <<"setup-failed">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/compress">> -> - decode_compress_failure_els(_els, - decode_compress_failure_setup_failed(_el)); - true -> decode_compress_failure_els(_els, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_compress_failure_els(__TopXMLNS, _els, + decode_compress_failure_setup_failed(__TopXMLNS, + _el)); + true -> + decode_compress_failure_els(__TopXMLNS, _els, Reason) end; -decode_compress_failure_els([{xmlel, - <<"processing-failed">>, _attrs, _} = - _el +decode_compress_failure_els(__TopXMLNS, + [{xmlel, <<"processing-failed">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/compress">> -> - decode_compress_failure_els(_els, - decode_compress_failure_processing_failed(_el)); - true -> decode_compress_failure_els(_els, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_compress_failure_els(__TopXMLNS, _els, + decode_compress_failure_processing_failed(__TopXMLNS, + _el)); + true -> + decode_compress_failure_els(__TopXMLNS, _els, Reason) end; -decode_compress_failure_els([{xmlel, - <<"unsupported-method">>, _attrs, _} = - _el +decode_compress_failure_els(__TopXMLNS, + [{xmlel, <<"unsupported-method">>, _attrs, _} = _el | _els], Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/compress">> -> - decode_compress_failure_els(_els, - decode_compress_failure_unsupported_method(_el)); - true -> decode_compress_failure_els(_els, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_compress_failure_els(__TopXMLNS, _els, + decode_compress_failure_unsupported_method(__TopXMLNS, + _el)); + true -> + decode_compress_failure_els(__TopXMLNS, _els, Reason) end; -decode_compress_failure_els([_ | _els], Reason) -> - decode_compress_failure_els(_els, Reason). +decode_compress_failure_els(__TopXMLNS, [_ | _els], + Reason) -> + decode_compress_failure_els(__TopXMLNS, _els, Reason). encode_compress_failure({compress_failure, Reason}, _xmlns_attrs) -> @@ -11947,9 +12747,9 @@ encode_compress_failure({compress_failure, Reason}, [encode_compress_failure_unsupported_method(Reason, []) | _acc]. -decode_compress_failure_unsupported_method({xmlel, - <<"unsupported-method">>, _attrs, - _els}) -> +decode_compress_failure_unsupported_method(__TopXMLNS, + {xmlel, <<"unsupported-method">>, + _attrs, _els}) -> 'unsupported-method'. encode_compress_failure_unsupported_method('unsupported-method', @@ -11958,9 +12758,9 @@ encode_compress_failure_unsupported_method('unsupported-method', _attrs = _xmlns_attrs, {xmlel, <<"unsupported-method">>, _attrs, _els}. -decode_compress_failure_processing_failed({xmlel, - <<"processing-failed">>, _attrs, - _els}) -> +decode_compress_failure_processing_failed(__TopXMLNS, + {xmlel, <<"processing-failed">>, + _attrs, _els}) -> 'processing-failed'. encode_compress_failure_processing_failed('processing-failed', @@ -11969,8 +12769,9 @@ encode_compress_failure_processing_failed('processing-failed', _attrs = _xmlns_attrs, {xmlel, <<"processing-failed">>, _attrs, _els}. -decode_compress_failure_setup_failed({xmlel, - <<"setup-failed">>, _attrs, _els}) -> +decode_compress_failure_setup_failed(__TopXMLNS, + {xmlel, <<"setup-failed">>, _attrs, + _els}) -> 'setup-failed'. encode_compress_failure_setup_failed('setup-failed', @@ -11979,8 +12780,8 @@ encode_compress_failure_setup_failed('setup-failed', _attrs = _xmlns_attrs, {xmlel, <<"setup-failed">>, _attrs, _els}. -decode_starttls_failure({xmlel, <<"failure">>, _attrs, - _els}) -> +decode_starttls_failure(__TopXMLNS, + {xmlel, <<"failure">>, _attrs, _els}) -> {starttls_failure}. encode_starttls_failure({starttls_failure}, @@ -11989,8 +12790,8 @@ encode_starttls_failure({starttls_failure}, _attrs = _xmlns_attrs, {xmlel, <<"failure">>, _attrs, _els}. -decode_starttls_proceed({xmlel, <<"proceed">>, _attrs, - _els}) -> +decode_starttls_proceed(__TopXMLNS, + {xmlel, <<"proceed">>, _attrs, _els}) -> {starttls_proceed}. encode_starttls_proceed({starttls_proceed}, @@ -11999,26 +12800,24 @@ encode_starttls_proceed({starttls_proceed}, _attrs = _xmlns_attrs, {xmlel, <<"proceed">>, _attrs, _els}. -decode_starttls({xmlel, <<"starttls">>, _attrs, - _els}) -> - Required = decode_starttls_els(_els, false), +decode_starttls(__TopXMLNS, + {xmlel, <<"starttls">>, _attrs, _els}) -> + Required = decode_starttls_els(__TopXMLNS, _els, false), {starttls, Required}. -decode_starttls_els([], Required) -> Required; -decode_starttls_els([{xmlel, <<"required">>, _attrs, - _} = - _el - | _els], +decode_starttls_els(__TopXMLNS, [], Required) -> + Required; +decode_starttls_els(__TopXMLNS, + [{xmlel, <<"required">>, _attrs, _} = _el | _els], Required) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-tls">> -> - decode_starttls_els(_els, - decode_starttls_required(_el)); - true -> decode_starttls_els(_els, Required) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_starttls_els(__TopXMLNS, _els, + decode_starttls_required(__TopXMLNS, _el)); + true -> decode_starttls_els(__TopXMLNS, _els, Required) end; -decode_starttls_els([_ | _els], Required) -> - decode_starttls_els(_els, Required). +decode_starttls_els(__TopXMLNS, [_ | _els], Required) -> + decode_starttls_els(__TopXMLNS, _els, Required). encode_starttls({starttls, Required}, _xmlns_attrs) -> _els = 'encode_starttls_$required'(Required, []), @@ -12029,8 +12828,8 @@ encode_starttls({starttls, Required}, _xmlns_attrs) -> 'encode_starttls_$required'(Required, _acc) -> [encode_starttls_required(Required, []) | _acc]. -decode_starttls_required({xmlel, <<"required">>, _attrs, - _els}) -> +decode_starttls_required(__TopXMLNS, + {xmlel, <<"required">>, _attrs, _els}) -> true. encode_starttls_required(true, _xmlns_attrs) -> @@ -12038,30 +12837,31 @@ encode_starttls_required(true, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"required">>, _attrs, _els}. -decode_sasl_mechanisms({xmlel, <<"mechanisms">>, _attrs, - _els}) -> - List = decode_sasl_mechanisms_els(_els, []), +decode_sasl_mechanisms(__TopXMLNS, + {xmlel, <<"mechanisms">>, _attrs, _els}) -> + List = decode_sasl_mechanisms_els(__TopXMLNS, _els, []), {sasl_mechanisms, List}. -decode_sasl_mechanisms_els([], List) -> +decode_sasl_mechanisms_els(__TopXMLNS, [], List) -> lists:reverse(List); -decode_sasl_mechanisms_els([{xmlel, <<"mechanism">>, - _attrs, _} = - _el - | _els], +decode_sasl_mechanisms_els(__TopXMLNS, + [{xmlel, <<"mechanism">>, _attrs, _} = _el | _els], List) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_mechanisms_els(_els, - case decode_sasl_mechanism(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_mechanisms_els(__TopXMLNS, _els, + case decode_sasl_mechanism(__TopXMLNS, + _el) + of undefined -> List; _new_el -> [_new_el | List] end); - true -> decode_sasl_mechanisms_els(_els, List) + true -> + decode_sasl_mechanisms_els(__TopXMLNS, _els, List) end; -decode_sasl_mechanisms_els([_ | _els], List) -> - decode_sasl_mechanisms_els(_els, List). +decode_sasl_mechanisms_els(__TopXMLNS, [_ | _els], + List) -> + decode_sasl_mechanisms_els(__TopXMLNS, _els, List). encode_sasl_mechanisms({sasl_mechanisms, List}, _xmlns_attrs) -> @@ -12074,186 +12874,188 @@ encode_sasl_mechanisms({sasl_mechanisms, List}, 'encode_sasl_mechanisms_$list'(_els, [encode_sasl_mechanism(List, []) | _acc]). -decode_sasl_mechanism({xmlel, <<"mechanism">>, _attrs, - _els}) -> - Cdata = decode_sasl_mechanism_els(_els, <<>>), Cdata. +decode_sasl_mechanism(__TopXMLNS, + {xmlel, <<"mechanism">>, _attrs, _els}) -> + Cdata = decode_sasl_mechanism_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_sasl_mechanism_els([], Cdata) -> - decode_sasl_mechanism_cdata(Cdata); -decode_sasl_mechanism_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_sasl_mechanism_els(_els, +decode_sasl_mechanism_els(__TopXMLNS, [], Cdata) -> + decode_sasl_mechanism_cdata(__TopXMLNS, Cdata); +decode_sasl_mechanism_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_sasl_mechanism_els(__TopXMLNS, _els, <>); -decode_sasl_mechanism_els([_ | _els], Cdata) -> - decode_sasl_mechanism_els(_els, Cdata). +decode_sasl_mechanism_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_sasl_mechanism_els(__TopXMLNS, _els, Cdata). encode_sasl_mechanism(Cdata, _xmlns_attrs) -> _els = encode_sasl_mechanism_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"mechanism">>, _attrs, _els}. -decode_sasl_mechanism_cdata(<<>>) -> undefined; -decode_sasl_mechanism_cdata(_val) -> _val. +decode_sasl_mechanism_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_sasl_mechanism_cdata(__TopXMLNS, _val) -> _val. encode_sasl_mechanism_cdata(undefined, _acc) -> _acc; encode_sasl_mechanism_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_sasl_failure({xmlel, <<"failure">>, _attrs, - _els}) -> - {Text, Reason} = decode_sasl_failure_els(_els, [], - undefined), +decode_sasl_failure(__TopXMLNS, + {xmlel, <<"failure">>, _attrs, _els}) -> + {Text, Reason} = decode_sasl_failure_els(__TopXMLNS, + _els, [], undefined), {sasl_failure, Reason, Text}. -decode_sasl_failure_els([], Text, Reason) -> +decode_sasl_failure_els(__TopXMLNS, [], Text, Reason) -> {lists:reverse(Text), Reason}; -decode_sasl_failure_els([{xmlel, <<"text">>, _attrs, - _} = - _el - | _els], - Text, Reason) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, - [decode_sasl_failure_text(_el) | Text], +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, + Reason) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, + [decode_sasl_failure_text(__TopXMLNS, _el) + | Text], Reason); - true -> decode_sasl_failure_els(_els, Text, Reason) + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, <<"aborted">>, _attrs, - _} = - _el - | _els], - Text, Reason) -> +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"aborted">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_aborted(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_aborted(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, <<"account-disabled">>, - _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"account-disabled">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_account_disabled(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_account_disabled(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"credentials-expired">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"credentials-expired">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_credentials_expired(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_credentials_expired(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"encryption-required">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"encryption-required">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_encryption_required(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_encryption_required(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"incorrect-encoding">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"incorrect-encoding">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_incorrect_encoding(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_incorrect_encoding(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, <<"invalid-authzid">>, - _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"invalid-authzid">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_invalid_authzid(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_invalid_authzid(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"invalid-mechanism">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"invalid-mechanism">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_invalid_mechanism(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_invalid_mechanism(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"malformed-request">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"malformed-request">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_malformed_request(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_malformed_request(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"mechanism-too-weak">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"mechanism-too-weak">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_mechanism_too_weak(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_mechanism_too_weak(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, <<"not-authorized">>, - _attrs, _} = - _el - | _els], +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_not_authorized(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_not_authorized(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([{xmlel, - <<"temporary-auth-failure">>, _attrs, _} = - _el +decode_sasl_failure_els(__TopXMLNS, + [{xmlel, <<"temporary-auth-failure">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> - decode_sasl_failure_els(_els, Text, - decode_sasl_failure_temporary_auth_failure(_el)); - true -> decode_sasl_failure_els(_els, Text, Reason) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, + decode_sasl_failure_temporary_auth_failure(__TopXMLNS, + _el)); + true -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason) end; -decode_sasl_failure_els([_ | _els], Text, Reason) -> - decode_sasl_failure_els(_els, Text, Reason). +decode_sasl_failure_els(__TopXMLNS, [_ | _els], Text, + Reason) -> + decode_sasl_failure_els(__TopXMLNS, _els, Text, Reason). encode_sasl_failure({sasl_failure, Reason, Text}, _xmlns_attrs) -> @@ -12319,8 +13121,8 @@ encode_sasl_failure({sasl_failure, Reason, Text}, [encode_sasl_failure_temporary_auth_failure(Reason, []) | _acc]. -decode_sasl_failure_temporary_auth_failure({xmlel, - <<"temporary-auth-failure">>, +decode_sasl_failure_temporary_auth_failure(__TopXMLNS, + {xmlel, <<"temporary-auth-failure">>, _attrs, _els}) -> 'temporary-auth-failure'. @@ -12330,8 +13132,9 @@ encode_sasl_failure_temporary_auth_failure('temporary-auth-failure', _attrs = _xmlns_attrs, {xmlel, <<"temporary-auth-failure">>, _attrs, _els}. -decode_sasl_failure_not_authorized({xmlel, - <<"not-authorized">>, _attrs, _els}) -> +decode_sasl_failure_not_authorized(__TopXMLNS, + {xmlel, <<"not-authorized">>, _attrs, + _els}) -> 'not-authorized'. encode_sasl_failure_not_authorized('not-authorized', @@ -12340,8 +13143,8 @@ encode_sasl_failure_not_authorized('not-authorized', _attrs = _xmlns_attrs, {xmlel, <<"not-authorized">>, _attrs, _els}. -decode_sasl_failure_mechanism_too_weak({xmlel, - <<"mechanism-too-weak">>, _attrs, +decode_sasl_failure_mechanism_too_weak(__TopXMLNS, + {xmlel, <<"mechanism-too-weak">>, _attrs, _els}) -> 'mechanism-too-weak'. @@ -12351,8 +13154,8 @@ encode_sasl_failure_mechanism_too_weak('mechanism-too-weak', _attrs = _xmlns_attrs, {xmlel, <<"mechanism-too-weak">>, _attrs, _els}. -decode_sasl_failure_malformed_request({xmlel, - <<"malformed-request">>, _attrs, +decode_sasl_failure_malformed_request(__TopXMLNS, + {xmlel, <<"malformed-request">>, _attrs, _els}) -> 'malformed-request'. @@ -12362,8 +13165,8 @@ encode_sasl_failure_malformed_request('malformed-request', _attrs = _xmlns_attrs, {xmlel, <<"malformed-request">>, _attrs, _els}. -decode_sasl_failure_invalid_mechanism({xmlel, - <<"invalid-mechanism">>, _attrs, +decode_sasl_failure_invalid_mechanism(__TopXMLNS, + {xmlel, <<"invalid-mechanism">>, _attrs, _els}) -> 'invalid-mechanism'. @@ -12373,8 +13176,9 @@ encode_sasl_failure_invalid_mechanism('invalid-mechanism', _attrs = _xmlns_attrs, {xmlel, <<"invalid-mechanism">>, _attrs, _els}. -decode_sasl_failure_invalid_authzid({xmlel, - <<"invalid-authzid">>, _attrs, _els}) -> +decode_sasl_failure_invalid_authzid(__TopXMLNS, + {xmlel, <<"invalid-authzid">>, _attrs, + _els}) -> 'invalid-authzid'. encode_sasl_failure_invalid_authzid('invalid-authzid', @@ -12383,8 +13187,8 @@ encode_sasl_failure_invalid_authzid('invalid-authzid', _attrs = _xmlns_attrs, {xmlel, <<"invalid-authzid">>, _attrs, _els}. -decode_sasl_failure_incorrect_encoding({xmlel, - <<"incorrect-encoding">>, _attrs, +decode_sasl_failure_incorrect_encoding(__TopXMLNS, + {xmlel, <<"incorrect-encoding">>, _attrs, _els}) -> 'incorrect-encoding'. @@ -12394,9 +13198,9 @@ encode_sasl_failure_incorrect_encoding('incorrect-encoding', _attrs = _xmlns_attrs, {xmlel, <<"incorrect-encoding">>, _attrs, _els}. -decode_sasl_failure_encryption_required({xmlel, - <<"encryption-required">>, _attrs, - _els}) -> +decode_sasl_failure_encryption_required(__TopXMLNS, + {xmlel, <<"encryption-required">>, + _attrs, _els}) -> 'encryption-required'. encode_sasl_failure_encryption_required('encryption-required', @@ -12405,9 +13209,9 @@ encode_sasl_failure_encryption_required('encryption-required', _attrs = _xmlns_attrs, {xmlel, <<"encryption-required">>, _attrs, _els}. -decode_sasl_failure_credentials_expired({xmlel, - <<"credentials-expired">>, _attrs, - _els}) -> +decode_sasl_failure_credentials_expired(__TopXMLNS, + {xmlel, <<"credentials-expired">>, + _attrs, _els}) -> 'credentials-expired'. encode_sasl_failure_credentials_expired('credentials-expired', @@ -12416,8 +13220,9 @@ encode_sasl_failure_credentials_expired('credentials-expired', _attrs = _xmlns_attrs, {xmlel, <<"credentials-expired">>, _attrs, _els}. -decode_sasl_failure_account_disabled({xmlel, - <<"account-disabled">>, _attrs, _els}) -> +decode_sasl_failure_account_disabled(__TopXMLNS, + {xmlel, <<"account-disabled">>, _attrs, + _els}) -> 'account-disabled'. encode_sasl_failure_account_disabled('account-disabled', @@ -12426,8 +13231,8 @@ encode_sasl_failure_account_disabled('account-disabled', _attrs = _xmlns_attrs, {xmlel, <<"account-disabled">>, _attrs, _els}. -decode_sasl_failure_aborted({xmlel, <<"aborted">>, - _attrs, _els}) -> +decode_sasl_failure_aborted(__TopXMLNS, + {xmlel, <<"aborted">>, _attrs, _els}) -> aborted. encode_sasl_failure_aborted(aborted, _xmlns_attrs) -> @@ -12435,30 +13240,35 @@ encode_sasl_failure_aborted(aborted, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"aborted">>, _attrs, _els}. -decode_sasl_failure_text({xmlel, <<"text">>, _attrs, - _els}) -> - Data = decode_sasl_failure_text_els(_els, <<>>), - Lang = decode_sasl_failure_text_attrs(_attrs, - undefined), +decode_sasl_failure_text(__TopXMLNS, + {xmlel, <<"text">>, _attrs, _els}) -> + Data = decode_sasl_failure_text_els(__TopXMLNS, _els, + <<>>), + Lang = decode_sasl_failure_text_attrs(__TopXMLNS, + _attrs, undefined), {text, Lang, Data}. -decode_sasl_failure_text_els([], Data) -> - decode_sasl_failure_text_cdata(Data); -decode_sasl_failure_text_els([{xmlcdata, _data} | _els], - Data) -> - decode_sasl_failure_text_els(_els, +decode_sasl_failure_text_els(__TopXMLNS, [], Data) -> + decode_sasl_failure_text_cdata(__TopXMLNS, Data); +decode_sasl_failure_text_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_sasl_failure_text_els(__TopXMLNS, _els, <>); -decode_sasl_failure_text_els([_ | _els], Data) -> - decode_sasl_failure_text_els(_els, Data). - -decode_sasl_failure_text_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_sasl_failure_text_attrs(_attrs, _val); -decode_sasl_failure_text_attrs([_ | _attrs], Lang) -> - decode_sasl_failure_text_attrs(_attrs, Lang); -decode_sasl_failure_text_attrs([], Lang) -> - 'decode_sasl_failure_text_attr_xml:lang'(Lang). +decode_sasl_failure_text_els(__TopXMLNS, [_ | _els], + Data) -> + decode_sasl_failure_text_els(__TopXMLNS, _els, Data). + +decode_sasl_failure_text_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_sasl_failure_text_attrs(__TopXMLNS, _attrs, + _val); +decode_sasl_failure_text_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_sasl_failure_text_attrs(__TopXMLNS, _attrs, + Lang); +decode_sasl_failure_text_attrs(__TopXMLNS, [], Lang) -> + 'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, + Lang). encode_sasl_failure_text({text, Lang, Data}, _xmlns_attrs) -> @@ -12467,9 +13277,12 @@ encode_sasl_failure_text({text, Lang, Data}, _xmlns_attrs), {xmlel, <<"text">>, _attrs, _els}. -'decode_sasl_failure_text_attr_xml:lang'(undefined) -> +'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_sasl_failure_text_attr_xml:lang'(_val) -> _val. +'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, + _val) -> + _val. 'encode_sasl_failure_text_attr_xml:lang'(undefined, _acc) -> @@ -12477,26 +13290,28 @@ encode_sasl_failure_text({text, Lang, Data}, 'encode_sasl_failure_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_sasl_failure_text_cdata(<<>>) -> undefined; -decode_sasl_failure_text_cdata(_val) -> _val. +decode_sasl_failure_text_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_sasl_failure_text_cdata(__TopXMLNS, _val) -> + _val. encode_sasl_failure_text_cdata(undefined, _acc) -> _acc; encode_sasl_failure_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_sasl_success({xmlel, <<"success">>, _attrs, - _els}) -> - Text = decode_sasl_success_els(_els, <<>>), +decode_sasl_success(__TopXMLNS, + {xmlel, <<"success">>, _attrs, _els}) -> + Text = decode_sasl_success_els(__TopXMLNS, _els, <<>>), {sasl_success, Text}. -decode_sasl_success_els([], Text) -> - decode_sasl_success_cdata(Text); -decode_sasl_success_els([{xmlcdata, _data} | _els], - Text) -> - decode_sasl_success_els(_els, +decode_sasl_success_els(__TopXMLNS, [], Text) -> + decode_sasl_success_cdata(__TopXMLNS, Text); +decode_sasl_success_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Text) -> + decode_sasl_success_els(__TopXMLNS, _els, <>); -decode_sasl_success_els([_ | _els], Text) -> - decode_sasl_success_els(_els, Text). +decode_sasl_success_els(__TopXMLNS, [_ | _els], Text) -> + decode_sasl_success_els(__TopXMLNS, _els, Text). encode_sasl_success({sasl_success, Text}, _xmlns_attrs) -> @@ -12504,13 +13319,13 @@ encode_sasl_success({sasl_success, Text}, _attrs = _xmlns_attrs, {xmlel, <<"success">>, _attrs, _els}. -decode_sasl_success_cdata(<<>>) -> undefined; -decode_sasl_success_cdata(_val) -> +decode_sasl_success_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_sasl_success_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"success">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}}); + {bad_cdata_value, <<>>, <<"success">>, __TopXMLNS}}); _res -> _res end. @@ -12518,19 +13333,20 @@ encode_sasl_success_cdata(undefined, _acc) -> _acc; encode_sasl_success_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. -decode_sasl_response({xmlel, <<"response">>, _attrs, - _els}) -> - Text = decode_sasl_response_els(_els, <<>>), +decode_sasl_response(__TopXMLNS, + {xmlel, <<"response">>, _attrs, _els}) -> + Text = decode_sasl_response_els(__TopXMLNS, _els, <<>>), {sasl_response, Text}. -decode_sasl_response_els([], Text) -> - decode_sasl_response_cdata(Text); -decode_sasl_response_els([{xmlcdata, _data} | _els], - Text) -> - decode_sasl_response_els(_els, +decode_sasl_response_els(__TopXMLNS, [], Text) -> + decode_sasl_response_cdata(__TopXMLNS, Text); +decode_sasl_response_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Text) -> + decode_sasl_response_els(__TopXMLNS, _els, <>); -decode_sasl_response_els([_ | _els], Text) -> - decode_sasl_response_els(_els, Text). +decode_sasl_response_els(__TopXMLNS, [_ | _els], + Text) -> + decode_sasl_response_els(__TopXMLNS, _els, Text). encode_sasl_response({sasl_response, Text}, _xmlns_attrs) -> @@ -12538,13 +13354,13 @@ encode_sasl_response({sasl_response, Text}, _attrs = _xmlns_attrs, {xmlel, <<"response">>, _attrs, _els}. -decode_sasl_response_cdata(<<>>) -> undefined; -decode_sasl_response_cdata(_val) -> +decode_sasl_response_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_sasl_response_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"response">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}}); + {bad_cdata_value, <<>>, <<"response">>, __TopXMLNS}}); _res -> _res end. @@ -12552,19 +13368,21 @@ encode_sasl_response_cdata(undefined, _acc) -> _acc; encode_sasl_response_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. -decode_sasl_challenge({xmlel, <<"challenge">>, _attrs, - _els}) -> - Text = decode_sasl_challenge_els(_els, <<>>), +decode_sasl_challenge(__TopXMLNS, + {xmlel, <<"challenge">>, _attrs, _els}) -> + Text = decode_sasl_challenge_els(__TopXMLNS, _els, + <<>>), {sasl_challenge, Text}. -decode_sasl_challenge_els([], Text) -> - decode_sasl_challenge_cdata(Text); -decode_sasl_challenge_els([{xmlcdata, _data} | _els], - Text) -> - decode_sasl_challenge_els(_els, +decode_sasl_challenge_els(__TopXMLNS, [], Text) -> + decode_sasl_challenge_cdata(__TopXMLNS, Text); +decode_sasl_challenge_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Text) -> + decode_sasl_challenge_els(__TopXMLNS, _els, <>); -decode_sasl_challenge_els([_ | _els], Text) -> - decode_sasl_challenge_els(_els, Text). +decode_sasl_challenge_els(__TopXMLNS, [_ | _els], + Text) -> + decode_sasl_challenge_els(__TopXMLNS, _els, Text). encode_sasl_challenge({sasl_challenge, Text}, _xmlns_attrs) -> @@ -12572,13 +13390,13 @@ encode_sasl_challenge({sasl_challenge, Text}, _attrs = _xmlns_attrs, {xmlel, <<"challenge">>, _attrs, _els}. -decode_sasl_challenge_cdata(<<>>) -> undefined; -decode_sasl_challenge_cdata(_val) -> +decode_sasl_challenge_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_sasl_challenge_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"challenge">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}}); + {bad_cdata_value, <<>>, <<"challenge">>, __TopXMLNS}}); _res -> _res end. @@ -12586,7 +13404,8 @@ encode_sasl_challenge_cdata(undefined, _acc) -> _acc; encode_sasl_challenge_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. -decode_sasl_abort({xmlel, <<"abort">>, _attrs, _els}) -> +decode_sasl_abort(__TopXMLNS, + {xmlel, <<"abort">>, _attrs, _els}) -> {sasl_abort}. encode_sasl_abort({sasl_abort}, _xmlns_attrs) -> @@ -12594,28 +13413,30 @@ encode_sasl_abort({sasl_abort}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"abort">>, _attrs, _els}. -decode_sasl_auth({xmlel, <<"auth">>, _attrs, _els}) -> - Text = decode_sasl_auth_els(_els, <<>>), - Mechanism = decode_sasl_auth_attrs(_attrs, undefined), +decode_sasl_auth(__TopXMLNS, + {xmlel, <<"auth">>, _attrs, _els}) -> + Text = decode_sasl_auth_els(__TopXMLNS, _els, <<>>), + Mechanism = decode_sasl_auth_attrs(__TopXMLNS, _attrs, + undefined), {sasl_auth, Mechanism, Text}. -decode_sasl_auth_els([], Text) -> - decode_sasl_auth_cdata(Text); -decode_sasl_auth_els([{xmlcdata, _data} | _els], - Text) -> - decode_sasl_auth_els(_els, +decode_sasl_auth_els(__TopXMLNS, [], Text) -> + decode_sasl_auth_cdata(__TopXMLNS, Text); +decode_sasl_auth_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Text) -> + decode_sasl_auth_els(__TopXMLNS, _els, <>); -decode_sasl_auth_els([_ | _els], Text) -> - decode_sasl_auth_els(_els, Text). - -decode_sasl_auth_attrs([{<<"mechanism">>, _val} - | _attrs], - _Mechanism) -> - decode_sasl_auth_attrs(_attrs, _val); -decode_sasl_auth_attrs([_ | _attrs], Mechanism) -> - decode_sasl_auth_attrs(_attrs, Mechanism); -decode_sasl_auth_attrs([], Mechanism) -> - decode_sasl_auth_attr_mechanism(Mechanism). +decode_sasl_auth_els(__TopXMLNS, [_ | _els], Text) -> + decode_sasl_auth_els(__TopXMLNS, _els, Text). + +decode_sasl_auth_attrs(__TopXMLNS, + [{<<"mechanism">>, _val} | _attrs], _Mechanism) -> + decode_sasl_auth_attrs(__TopXMLNS, _attrs, _val); +decode_sasl_auth_attrs(__TopXMLNS, [_ | _attrs], + Mechanism) -> + decode_sasl_auth_attrs(__TopXMLNS, _attrs, Mechanism); +decode_sasl_auth_attrs(__TopXMLNS, [], Mechanism) -> + decode_sasl_auth_attr_mechanism(__TopXMLNS, Mechanism). encode_sasl_auth({sasl_auth, Mechanism, Text}, _xmlns_attrs) -> @@ -12624,22 +13445,23 @@ encode_sasl_auth({sasl_auth, Mechanism, Text}, _xmlns_attrs), {xmlel, <<"auth">>, _attrs, _els}. -decode_sasl_auth_attr_mechanism(undefined) -> +decode_sasl_auth_attr_mechanism(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"mechanism">>, <<"auth">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}}); -decode_sasl_auth_attr_mechanism(_val) -> _val. + __TopXMLNS}}); +decode_sasl_auth_attr_mechanism(__TopXMLNS, _val) -> + _val. encode_sasl_auth_attr_mechanism(_val, _acc) -> [{<<"mechanism">>, _val} | _acc]. -decode_sasl_auth_cdata(<<>>) -> undefined; -decode_sasl_auth_cdata(_val) -> +decode_sasl_auth_cdata(__TopXMLNS, <<>>) -> undefined; +decode_sasl_auth_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"auth">>, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>}}); + {bad_cdata_value, <<>>, <<"auth">>, __TopXMLNS}}); _res -> _res end. @@ -12647,33 +13469,35 @@ encode_sasl_auth_cdata(undefined, _acc) -> _acc; encode_sasl_auth_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. -decode_bind({xmlel, <<"bind">>, _attrs, _els}) -> - {Jid, Resource} = decode_bind_els(_els, undefined, - undefined), +decode_bind(__TopXMLNS, + {xmlel, <<"bind">>, _attrs, _els}) -> + {Jid, Resource} = decode_bind_els(__TopXMLNS, _els, + undefined, undefined), {bind, Jid, Resource}. -decode_bind_els([], Jid, Resource) -> {Jid, Resource}; -decode_bind_els([{xmlel, <<"jid">>, _attrs, _} = _el - | _els], - Jid, Resource) -> +decode_bind_els(__TopXMLNS, [], Jid, Resource) -> + {Jid, Resource}; +decode_bind_els(__TopXMLNS, + [{xmlel, <<"jid">>, _attrs, _} = _el | _els], Jid, + Resource) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-bind">> -> - decode_bind_els(_els, decode_bind_jid(_el), Resource); - true -> decode_bind_els(_els, Jid, Resource) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bind_els(__TopXMLNS, _els, + decode_bind_jid(__TopXMLNS, _el), Resource); + true -> decode_bind_els(__TopXMLNS, _els, Jid, Resource) end; -decode_bind_els([{xmlel, <<"resource">>, _attrs, _} = - _el - | _els], - Jid, Resource) -> +decode_bind_els(__TopXMLNS, + [{xmlel, <<"resource">>, _attrs, _} = _el | _els], Jid, + Resource) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"urn:ietf:params:xml:ns:xmpp-bind">> -> - decode_bind_els(_els, Jid, decode_bind_resource(_el)); - true -> decode_bind_els(_els, Jid, Resource) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bind_els(__TopXMLNS, _els, Jid, + decode_bind_resource(__TopXMLNS, _el)); + true -> decode_bind_els(__TopXMLNS, _els, Jid, Resource) end; -decode_bind_els([_ | _els], Jid, Resource) -> - decode_bind_els(_els, Jid, Resource). +decode_bind_els(__TopXMLNS, [_ | _els], Jid, + Resource) -> + decode_bind_els(__TopXMLNS, _els, Jid, Resource). encode_bind({bind, Jid, Resource}, _xmlns_attrs) -> _els = 'encode_bind_$resource'(Resource, @@ -12689,31 +13513,34 @@ encode_bind({bind, Jid, Resource}, _xmlns_attrs) -> 'encode_bind_$resource'(Resource, _acc) -> [encode_bind_resource(Resource, []) | _acc]. -decode_bind_resource({xmlel, <<"resource">>, _attrs, - _els}) -> - Cdata = decode_bind_resource_els(_els, <<>>), Cdata. +decode_bind_resource(__TopXMLNS, + {xmlel, <<"resource">>, _attrs, _els}) -> + Cdata = decode_bind_resource_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_bind_resource_els([], Cdata) -> - decode_bind_resource_cdata(Cdata); -decode_bind_resource_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_bind_resource_els(_els, +decode_bind_resource_els(__TopXMLNS, [], Cdata) -> + decode_bind_resource_cdata(__TopXMLNS, Cdata); +decode_bind_resource_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_bind_resource_els(__TopXMLNS, _els, <>); -decode_bind_resource_els([_ | _els], Cdata) -> - decode_bind_resource_els(_els, Cdata). +decode_bind_resource_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_bind_resource_els(__TopXMLNS, _els, Cdata). encode_bind_resource(Cdata, _xmlns_attrs) -> _els = encode_bind_resource_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"resource">>, _attrs, _els}. -decode_bind_resource_cdata(<<>>) -> undefined; -decode_bind_resource_cdata(_val) -> +decode_bind_resource_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_bind_resource_cdata(__TopXMLNS, _val) -> case catch resourceprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"resource">>, - <<"urn:ietf:params:xml:ns:xmpp-bind">>}}); + {bad_cdata_value, <<>>, <<"resource">>, __TopXMLNS}}); _res -> _res end. @@ -12721,30 +13548,31 @@ encode_bind_resource_cdata(undefined, _acc) -> _acc; encode_bind_resource_cdata(_val, _acc) -> [{xmlcdata, resourceprep(_val)} | _acc]. -decode_bind_jid({xmlel, <<"jid">>, _attrs, _els}) -> - Cdata = decode_bind_jid_els(_els, <<>>), Cdata. +decode_bind_jid(__TopXMLNS, + {xmlel, <<"jid">>, _attrs, _els}) -> + Cdata = decode_bind_jid_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_bind_jid_els([], Cdata) -> - decode_bind_jid_cdata(Cdata); -decode_bind_jid_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_bind_jid_els(_els, +decode_bind_jid_els(__TopXMLNS, [], Cdata) -> + decode_bind_jid_cdata(__TopXMLNS, Cdata); +decode_bind_jid_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_bind_jid_els(__TopXMLNS, _els, <>); -decode_bind_jid_els([_ | _els], Cdata) -> - decode_bind_jid_els(_els, Cdata). +decode_bind_jid_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_bind_jid_els(__TopXMLNS, _els, Cdata). encode_bind_jid(Cdata, _xmlns_attrs) -> _els = encode_bind_jid_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"jid">>, _attrs, _els}. -decode_bind_jid_cdata(<<>>) -> undefined; -decode_bind_jid_cdata(_val) -> +decode_bind_jid_cdata(__TopXMLNS, <<>>) -> undefined; +decode_bind_jid_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"jid">>, - <<"urn:ietf:params:xml:ns:xmpp-bind">>}}); + {bad_cdata_value, <<>>, <<"jid">>, __TopXMLNS}}); _res -> _res end. @@ -12752,295 +13580,274 @@ encode_bind_jid_cdata(undefined, _acc) -> _acc; encode_bind_jid_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. -decode_error({xmlel, <<"error">>, _attrs, _els}) -> - {Text, Reason} = decode_error_els(_els, undefined, - undefined), - {Type, By} = decode_error_attrs(_attrs, undefined, - undefined), +decode_error(__TopXMLNS, + {xmlel, <<"error">>, _attrs, _els}) -> + {Text, Reason} = decode_error_els(__TopXMLNS, _els, + undefined, undefined), + {Type, By} = decode_error_attrs(__TopXMLNS, _attrs, + undefined, undefined), {error, Type, By, Reason, Text}. -decode_error_els([], Text, Reason) -> {Text, Reason}; -decode_error_els([{xmlel, <<"text">>, _attrs, _} = _el - | _els], - Text, Reason) -> +decode_error_els(__TopXMLNS, [], Text, Reason) -> + {Text, Reason}; +decode_error_els(__TopXMLNS, + [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, decode_error_text(_el), Reason); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, + decode_error_text(_xmlns, _el), Reason); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"bad-request">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"bad-request">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_bad_request(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_bad_request(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"conflict">>, _attrs, _} = - _el - | _els], - Text, Reason) -> +decode_error_els(__TopXMLNS, + [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_conflict(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_conflict(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"feature-not-implemented">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"feature-not-implemented">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_feature_not_implemented(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_feature_not_implemented(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"forbidden">>, _attrs, _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"forbidden">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_forbidden(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_forbidden(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"gone">>, _attrs, _} = _el - | _els], - Text, Reason) -> +decode_error_els(__TopXMLNS, + [{xmlel, <<"gone">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, decode_error_gone(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_gone(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"internal-server-error">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_internal_server_error(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_internal_server_error(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"item-not-found">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"item-not-found">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_item_not_found(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_item_not_found(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"jid-malformed">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"jid-malformed">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_jid_malformed(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_jid_malformed(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"not-acceptable">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"not-acceptable">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_not_acceptable(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_not_acceptable(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"not-allowed">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"not-allowed">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_not_allowed(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_not_allowed(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"not-authorized">>, _attrs, - _} = - _el - | _els], +decode_error_els(__TopXMLNS, + [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_not_authorized(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_not_authorized(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"policy-violation">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_policy_violation(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_policy_violation(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"recipient-unavailable">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"recipient-unavailable">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_recipient_unavailable(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_recipient_unavailable(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"redirect">>, _attrs, _} = - _el - | _els], - Text, Reason) -> +decode_error_els(__TopXMLNS, + [{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Text, + Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_redirect(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_redirect(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"registration-required">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"registration-required">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_registration_required(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_registration_required(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"remote-server-not-found">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"remote-server-not-found">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_remote_server_not_found(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_remote_server_not_found(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"remote-server-timeout">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"remote-server-timeout">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_remote_server_timeout(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_remote_server_timeout(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"resource-constraint">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_resource_constraint(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_resource_constraint(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"service-unavailable">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"service-unavailable">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_service_unavailable(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_service_unavailable(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"subscription-required">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"subscription-required">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_subscription_required(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_subscription_required(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"undefined-condition">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_undefined_condition(_el)); - true -> decode_error_els(_els, Text, Reason) + decode_error_els(__TopXMLNS, _els, Text, + decode_error_undefined_condition(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) end; -decode_error_els([{xmlel, <<"unexpected-request">>, - _attrs, _} = - _el +decode_error_els(__TopXMLNS, + [{xmlel, <<"unexpected-request">>, _attrs, _} = _el | _els], Text, Reason) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> - decode_error_els(_els, Text, - decode_error_unexpected_request(_el)); - true -> decode_error_els(_els, Text, Reason) - end; -decode_error_els([_ | _els], Text, Reason) -> - decode_error_els(_els, Text, Reason). - -decode_error_attrs([{<<"type">>, _val} | _attrs], _Type, + decode_error_els(__TopXMLNS, _els, Text, + decode_error_unexpected_request(_xmlns, _el)); + true -> decode_error_els(__TopXMLNS, _els, Text, Reason) + end; +decode_error_els(__TopXMLNS, [_ | _els], Text, + Reason) -> + decode_error_els(__TopXMLNS, _els, Text, Reason). + +decode_error_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], _Type, By) -> + decode_error_attrs(__TopXMLNS, _attrs, _val, By); +decode_error_attrs(__TopXMLNS, + [{<<"by">>, _val} | _attrs], Type, _By) -> + decode_error_attrs(__TopXMLNS, _attrs, Type, _val); +decode_error_attrs(__TopXMLNS, [_ | _attrs], Type, By) -> - decode_error_attrs(_attrs, _val, By); -decode_error_attrs([{<<"by">>, _val} | _attrs], Type, - _By) -> - decode_error_attrs(_attrs, Type, _val); -decode_error_attrs([_ | _attrs], Type, By) -> - decode_error_attrs(_attrs, Type, By); -decode_error_attrs([], Type, By) -> - {decode_error_attr_type(Type), - decode_error_attr_by(By)}. + decode_error_attrs(__TopXMLNS, _attrs, Type, By); +decode_error_attrs(__TopXMLNS, [], Type, By) -> + {decode_error_attr_type(__TopXMLNS, Type), + decode_error_attr_by(__TopXMLNS, By)}. encode_error({error, Type, By, Reason, Text}, _xmlns_attrs) -> @@ -13187,53 +13994,54 @@ encode_error({error, Type, By, Reason, Text}, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>}]) | _acc]. -decode_error_attr_type(undefined) -> +decode_error_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"type">>, <<"error">>, - <<"jabber:client">>}}); -decode_error_attr_type(_val) -> + {missing_attr, <<"type">>, <<"error">>, __TopXMLNS}}); +decode_error_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [auth, cancel, continue, modify, wait]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"type">>, <<"error">>, - <<"jabber:client">>}}); + {bad_attr_value, <<"type">>, <<"error">>, __TopXMLNS}}); _res -> _res end. encode_error_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_error_attr_by(undefined) -> undefined; -decode_error_attr_by(_val) -> _val. +decode_error_attr_by(__TopXMLNS, undefined) -> + undefined; +decode_error_attr_by(__TopXMLNS, _val) -> _val. encode_error_attr_by(undefined, _acc) -> _acc; encode_error_attr_by(_val, _acc) -> [{<<"by">>, _val} | _acc]. -decode_error_text({xmlel, <<"text">>, _attrs, _els}) -> - Data = decode_error_text_els(_els, <<>>), - Lang = decode_error_text_attrs(_attrs, undefined), +decode_error_text(__TopXMLNS, + {xmlel, <<"text">>, _attrs, _els}) -> + Data = decode_error_text_els(__TopXMLNS, _els, <<>>), + Lang = decode_error_text_attrs(__TopXMLNS, _attrs, + undefined), {text, Lang, Data}. -decode_error_text_els([], Data) -> - decode_error_text_cdata(Data); -decode_error_text_els([{xmlcdata, _data} | _els], - Data) -> - decode_error_text_els(_els, +decode_error_text_els(__TopXMLNS, [], Data) -> + decode_error_text_cdata(__TopXMLNS, Data); +decode_error_text_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_error_text_els(__TopXMLNS, _els, <>); -decode_error_text_els([_ | _els], Data) -> - decode_error_text_els(_els, Data). - -decode_error_text_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_error_text_attrs(_attrs, _val); -decode_error_text_attrs([_ | _attrs], Lang) -> - decode_error_text_attrs(_attrs, Lang); -decode_error_text_attrs([], Lang) -> - 'decode_error_text_attr_xml:lang'(Lang). +decode_error_text_els(__TopXMLNS, [_ | _els], Data) -> + decode_error_text_els(__TopXMLNS, _els, Data). + +decode_error_text_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_error_text_attrs(__TopXMLNS, _attrs, _val); +decode_error_text_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_error_text_attrs(__TopXMLNS, _attrs, Lang); +decode_error_text_attrs(__TopXMLNS, [], Lang) -> + 'decode_error_text_attr_xml:lang'(__TopXMLNS, Lang). encode_error_text({text, Lang, Data}, _xmlns_attrs) -> _els = encode_error_text_cdata(Data, []), @@ -13241,24 +14049,27 @@ encode_error_text({text, Lang, Data}, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"text">>, _attrs, _els}. -'decode_error_text_attr_xml:lang'(undefined) -> +'decode_error_text_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_error_text_attr_xml:lang'(_val) -> _val. +'decode_error_text_attr_xml:lang'(__TopXMLNS, _val) -> + _val. 'encode_error_text_attr_xml:lang'(undefined, _acc) -> _acc; 'encode_error_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_error_text_cdata(<<>>) -> undefined; -decode_error_text_cdata(_val) -> _val. +decode_error_text_cdata(__TopXMLNS, <<>>) -> undefined; +decode_error_text_cdata(__TopXMLNS, _val) -> _val. encode_error_text_cdata(undefined, _acc) -> _acc; encode_error_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_error_unexpected_request({xmlel, - <<"unexpected-request">>, _attrs, _els}) -> +decode_error_unexpected_request(__TopXMLNS, + {xmlel, <<"unexpected-request">>, _attrs, + _els}) -> 'unexpected-request'. encode_error_unexpected_request('unexpected-request', @@ -13267,8 +14078,9 @@ encode_error_unexpected_request('unexpected-request', _attrs = _xmlns_attrs, {xmlel, <<"unexpected-request">>, _attrs, _els}. -decode_error_undefined_condition({xmlel, - <<"undefined-condition">>, _attrs, _els}) -> +decode_error_undefined_condition(__TopXMLNS, + {xmlel, <<"undefined-condition">>, _attrs, + _els}) -> 'undefined-condition'. encode_error_undefined_condition('undefined-condition', @@ -13277,8 +14089,8 @@ encode_error_undefined_condition('undefined-condition', _attrs = _xmlns_attrs, {xmlel, <<"undefined-condition">>, _attrs, _els}. -decode_error_subscription_required({xmlel, - <<"subscription-required">>, _attrs, +decode_error_subscription_required(__TopXMLNS, + {xmlel, <<"subscription-required">>, _attrs, _els}) -> 'subscription-required'. @@ -13288,8 +14100,9 @@ encode_error_subscription_required('subscription-required', _attrs = _xmlns_attrs, {xmlel, <<"subscription-required">>, _attrs, _els}. -decode_error_service_unavailable({xmlel, - <<"service-unavailable">>, _attrs, _els}) -> +decode_error_service_unavailable(__TopXMLNS, + {xmlel, <<"service-unavailable">>, _attrs, + _els}) -> 'service-unavailable'. encode_error_service_unavailable('service-unavailable', @@ -13298,8 +14111,9 @@ encode_error_service_unavailable('service-unavailable', _attrs = _xmlns_attrs, {xmlel, <<"service-unavailable">>, _attrs, _els}. -decode_error_resource_constraint({xmlel, - <<"resource-constraint">>, _attrs, _els}) -> +decode_error_resource_constraint(__TopXMLNS, + {xmlel, <<"resource-constraint">>, _attrs, + _els}) -> 'resource-constraint'. encode_error_resource_constraint('resource-constraint', @@ -13308,8 +14122,8 @@ encode_error_resource_constraint('resource-constraint', _attrs = _xmlns_attrs, {xmlel, <<"resource-constraint">>, _attrs, _els}. -decode_error_remote_server_timeout({xmlel, - <<"remote-server-timeout">>, _attrs, +decode_error_remote_server_timeout(__TopXMLNS, + {xmlel, <<"remote-server-timeout">>, _attrs, _els}) -> 'remote-server-timeout'. @@ -13319,9 +14133,9 @@ encode_error_remote_server_timeout('remote-server-timeout', _attrs = _xmlns_attrs, {xmlel, <<"remote-server-timeout">>, _attrs, _els}. -decode_error_remote_server_not_found({xmlel, - <<"remote-server-not-found">>, _attrs, - _els}) -> +decode_error_remote_server_not_found(__TopXMLNS, + {xmlel, <<"remote-server-not-found">>, + _attrs, _els}) -> 'remote-server-not-found'. encode_error_remote_server_not_found('remote-server-not-found', @@ -13330,8 +14144,8 @@ encode_error_remote_server_not_found('remote-server-not-found', _attrs = _xmlns_attrs, {xmlel, <<"remote-server-not-found">>, _attrs, _els}. -decode_error_registration_required({xmlel, - <<"registration-required">>, _attrs, +decode_error_registration_required(__TopXMLNS, + {xmlel, <<"registration-required">>, _attrs, _els}) -> 'registration-required'. @@ -13341,34 +14155,36 @@ encode_error_registration_required('registration-required', _attrs = _xmlns_attrs, {xmlel, <<"registration-required">>, _attrs, _els}. -decode_error_redirect({xmlel, <<"redirect">>, _attrs, - _els}) -> - Uri = decode_error_redirect_els(_els, <<>>), +decode_error_redirect(__TopXMLNS, + {xmlel, <<"redirect">>, _attrs, _els}) -> + Uri = decode_error_redirect_els(__TopXMLNS, _els, <<>>), {redirect, Uri}. -decode_error_redirect_els([], Uri) -> - decode_error_redirect_cdata(Uri); -decode_error_redirect_els([{xmlcdata, _data} | _els], - Uri) -> - decode_error_redirect_els(_els, +decode_error_redirect_els(__TopXMLNS, [], Uri) -> + decode_error_redirect_cdata(__TopXMLNS, Uri); +decode_error_redirect_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Uri) -> + decode_error_redirect_els(__TopXMLNS, _els, <>); -decode_error_redirect_els([_ | _els], Uri) -> - decode_error_redirect_els(_els, Uri). +decode_error_redirect_els(__TopXMLNS, [_ | _els], + Uri) -> + decode_error_redirect_els(__TopXMLNS, _els, Uri). encode_error_redirect({redirect, Uri}, _xmlns_attrs) -> _els = encode_error_redirect_cdata(Uri, []), _attrs = _xmlns_attrs, {xmlel, <<"redirect">>, _attrs, _els}. -decode_error_redirect_cdata(<<>>) -> undefined; -decode_error_redirect_cdata(_val) -> _val. +decode_error_redirect_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_error_redirect_cdata(__TopXMLNS, _val) -> _val. encode_error_redirect_cdata(undefined, _acc) -> _acc; encode_error_redirect_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_error_recipient_unavailable({xmlel, - <<"recipient-unavailable">>, _attrs, +decode_error_recipient_unavailable(__TopXMLNS, + {xmlel, <<"recipient-unavailable">>, _attrs, _els}) -> 'recipient-unavailable'. @@ -13378,8 +14194,8 @@ encode_error_recipient_unavailable('recipient-unavailable', _attrs = _xmlns_attrs, {xmlel, <<"recipient-unavailable">>, _attrs, _els}. -decode_error_policy_violation({xmlel, - <<"policy-violation">>, _attrs, _els}) -> +decode_error_policy_violation(__TopXMLNS, + {xmlel, <<"policy-violation">>, _attrs, _els}) -> 'policy-violation'. encode_error_policy_violation('policy-violation', @@ -13388,8 +14204,8 @@ encode_error_policy_violation('policy-violation', _attrs = _xmlns_attrs, {xmlel, <<"policy-violation">>, _attrs, _els}. -decode_error_not_authorized({xmlel, - <<"not-authorized">>, _attrs, _els}) -> +decode_error_not_authorized(__TopXMLNS, + {xmlel, <<"not-authorized">>, _attrs, _els}) -> 'not-authorized'. encode_error_not_authorized('not-authorized', @@ -13398,8 +14214,8 @@ encode_error_not_authorized('not-authorized', _attrs = _xmlns_attrs, {xmlel, <<"not-authorized">>, _attrs, _els}. -decode_error_not_allowed({xmlel, <<"not-allowed">>, - _attrs, _els}) -> +decode_error_not_allowed(__TopXMLNS, + {xmlel, <<"not-allowed">>, _attrs, _els}) -> 'not-allowed'. encode_error_not_allowed('not-allowed', _xmlns_attrs) -> @@ -13407,8 +14223,8 @@ encode_error_not_allowed('not-allowed', _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"not-allowed">>, _attrs, _els}. -decode_error_not_acceptable({xmlel, - <<"not-acceptable">>, _attrs, _els}) -> +decode_error_not_acceptable(__TopXMLNS, + {xmlel, <<"not-acceptable">>, _attrs, _els}) -> 'not-acceptable'. encode_error_not_acceptable('not-acceptable', @@ -13417,8 +14233,8 @@ encode_error_not_acceptable('not-acceptable', _attrs = _xmlns_attrs, {xmlel, <<"not-acceptable">>, _attrs, _els}. -decode_error_jid_malformed({xmlel, <<"jid-malformed">>, - _attrs, _els}) -> +decode_error_jid_malformed(__TopXMLNS, + {xmlel, <<"jid-malformed">>, _attrs, _els}) -> 'jid-malformed'. encode_error_jid_malformed('jid-malformed', @@ -13427,8 +14243,8 @@ encode_error_jid_malformed('jid-malformed', _attrs = _xmlns_attrs, {xmlel, <<"jid-malformed">>, _attrs, _els}. -decode_error_item_not_found({xmlel, - <<"item-not-found">>, _attrs, _els}) -> +decode_error_item_not_found(__TopXMLNS, + {xmlel, <<"item-not-found">>, _attrs, _els}) -> 'item-not-found'. encode_error_item_not_found('item-not-found', @@ -13437,8 +14253,8 @@ encode_error_item_not_found('item-not-found', _attrs = _xmlns_attrs, {xmlel, <<"item-not-found">>, _attrs, _els}. -decode_error_internal_server_error({xmlel, - <<"internal-server-error">>, _attrs, +decode_error_internal_server_error(__TopXMLNS, + {xmlel, <<"internal-server-error">>, _attrs, _els}) -> 'internal-server-error'. @@ -13448,32 +14264,34 @@ encode_error_internal_server_error('internal-server-error', _attrs = _xmlns_attrs, {xmlel, <<"internal-server-error">>, _attrs, _els}. -decode_error_gone({xmlel, <<"gone">>, _attrs, _els}) -> - Uri = decode_error_gone_els(_els, <<>>), {gone, Uri}. +decode_error_gone(__TopXMLNS, + {xmlel, <<"gone">>, _attrs, _els}) -> + Uri = decode_error_gone_els(__TopXMLNS, _els, <<>>), + {gone, Uri}. -decode_error_gone_els([], Uri) -> - decode_error_gone_cdata(Uri); -decode_error_gone_els([{xmlcdata, _data} | _els], - Uri) -> - decode_error_gone_els(_els, +decode_error_gone_els(__TopXMLNS, [], Uri) -> + decode_error_gone_cdata(__TopXMLNS, Uri); +decode_error_gone_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Uri) -> + decode_error_gone_els(__TopXMLNS, _els, <>); -decode_error_gone_els([_ | _els], Uri) -> - decode_error_gone_els(_els, Uri). +decode_error_gone_els(__TopXMLNS, [_ | _els], Uri) -> + decode_error_gone_els(__TopXMLNS, _els, Uri). encode_error_gone({gone, Uri}, _xmlns_attrs) -> _els = encode_error_gone_cdata(Uri, []), _attrs = _xmlns_attrs, {xmlel, <<"gone">>, _attrs, _els}. -decode_error_gone_cdata(<<>>) -> undefined; -decode_error_gone_cdata(_val) -> _val. +decode_error_gone_cdata(__TopXMLNS, <<>>) -> undefined; +decode_error_gone_cdata(__TopXMLNS, _val) -> _val. encode_error_gone_cdata(undefined, _acc) -> _acc; encode_error_gone_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_error_forbidden({xmlel, <<"forbidden">>, _attrs, - _els}) -> +decode_error_forbidden(__TopXMLNS, + {xmlel, <<"forbidden">>, _attrs, _els}) -> forbidden. encode_error_forbidden(forbidden, _xmlns_attrs) -> @@ -13481,9 +14299,9 @@ encode_error_forbidden(forbidden, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"forbidden">>, _attrs, _els}. -decode_error_feature_not_implemented({xmlel, - <<"feature-not-implemented">>, _attrs, - _els}) -> +decode_error_feature_not_implemented(__TopXMLNS, + {xmlel, <<"feature-not-implemented">>, + _attrs, _els}) -> 'feature-not-implemented'. encode_error_feature_not_implemented('feature-not-implemented', @@ -13492,8 +14310,8 @@ encode_error_feature_not_implemented('feature-not-implemented', _attrs = _xmlns_attrs, {xmlel, <<"feature-not-implemented">>, _attrs, _els}. -decode_error_conflict({xmlel, <<"conflict">>, _attrs, - _els}) -> +decode_error_conflict(__TopXMLNS, + {xmlel, <<"conflict">>, _attrs, _els}) -> conflict. encode_error_conflict(conflict, _xmlns_attrs) -> @@ -13501,8 +14319,8 @@ encode_error_conflict(conflict, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"conflict">>, _attrs, _els}. -decode_error_bad_request({xmlel, <<"bad-request">>, - _attrs, _els}) -> +decode_error_bad_request(__TopXMLNS, + {xmlel, <<"bad-request">>, _attrs, _els}) -> 'bad-request'. encode_error_bad_request('bad-request', _xmlns_attrs) -> @@ -13510,112 +14328,122 @@ encode_error_bad_request('bad-request', _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"bad-request">>, _attrs, _els}. -decode_presence({xmlel, <<"presence">>, _attrs, - _els}) -> +decode_presence(__TopXMLNS, + {xmlel, <<"presence">>, _attrs, _els}) -> {Error, Status, Show, Priority, __Els} = - decode_presence_els(_els, undefined, [], undefined, - undefined, []), + decode_presence_els(__TopXMLNS, _els, undefined, [], + undefined, undefined, []), {Id, Type, From, To, Lang} = - decode_presence_attrs(_attrs, undefined, undefined, - undefined, undefined, undefined), + decode_presence_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined, undefined), {presence, Id, Type, Lang, From, To, Show, Status, Priority, Error, __Els}. -decode_presence_els([], Error, Status, Show, Priority, - __Els) -> +decode_presence_els(__TopXMLNS, [], Error, Status, Show, + Priority, __Els) -> {Error, lists:reverse(Status), Show, Priority, lists:reverse(__Els)}; -decode_presence_els([{xmlel, <<"error">>, _attrs, _} = - _el - | _els], - Error, Status, Show, Priority, __Els) -> +decode_presence_els(__TopXMLNS, + [{xmlel, <<"error">>, _attrs, _} = _el | _els], Error, + Status, Show, Priority, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_presence_els(_els, decode_error(_el), Status, - Show, Priority, __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_presence_els(__TopXMLNS, _els, + decode_error(__TopXMLNS, _el), Status, Show, + Priority, __Els); true -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els) + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els) end; -decode_presence_els([{xmlel, <<"show">>, _attrs, _} = - _el - | _els], - Error, Status, Show, Priority, __Els) -> +decode_presence_els(__TopXMLNS, + [{xmlel, <<"show">>, _attrs, _} = _el | _els], Error, + Status, Show, Priority, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_presence_els(_els, Error, Status, - decode_presence_show(_el), Priority, __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_presence_els(__TopXMLNS, _els, Error, Status, + decode_presence_show(__TopXMLNS, _el), Priority, + __Els); true -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els) + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els) end; -decode_presence_els([{xmlel, <<"status">>, _attrs, _} = - _el - | _els], - Error, Status, Show, Priority, __Els) -> +decode_presence_els(__TopXMLNS, + [{xmlel, <<"status">>, _attrs, _} = _el | _els], Error, + Status, Show, Priority, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_presence_els(_els, Error, - [decode_presence_status(_el) | Status], Show, - Priority, __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_presence_els(__TopXMLNS, _els, Error, + [decode_presence_status(__TopXMLNS, _el) + | Status], + Show, Priority, __Els); true -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els) + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els) end; -decode_presence_els([{xmlel, <<"priority">>, _attrs, - _} = - _el - | _els], +decode_presence_els(__TopXMLNS, + [{xmlel, <<"priority">>, _attrs, _} = _el | _els], Error, Status, Show, Priority, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_presence_els(_els, Error, Status, Show, - decode_presence_priority(_el), __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, decode_presence_priority(__TopXMLNS, _el), + __Els); true -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els) + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els) end; -decode_presence_els([{xmlel, _, _, _} = _el | _els], - Error, Status, Show, Priority, __Els) -> +decode_presence_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], Error, Status, Show, + Priority, __Els) -> case is_known_tag(_el) of true -> - decode_presence_els(_els, Error, Status, Show, Priority, - [decode(_el) | __Els]); + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, [decode(_el) | __Els]); false -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els) + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els) end; -decode_presence_els([_ | _els], Error, Status, Show, - Priority, __Els) -> - decode_presence_els(_els, Error, Status, Show, Priority, - __Els). +decode_presence_els(__TopXMLNS, [_ | _els], Error, + Status, Show, Priority, __Els) -> + decode_presence_els(__TopXMLNS, _els, Error, Status, + Show, Priority, __Els). -decode_presence_attrs([{<<"id">>, _val} | _attrs], _Id, - Type, From, To, Lang) -> - decode_presence_attrs(_attrs, _val, Type, From, To, - Lang); -decode_presence_attrs([{<<"type">>, _val} | _attrs], Id, - _Type, From, To, Lang) -> - decode_presence_attrs(_attrs, Id, _val, From, To, Lang); -decode_presence_attrs([{<<"from">>, _val} | _attrs], Id, - Type, _From, To, Lang) -> - decode_presence_attrs(_attrs, Id, Type, _val, To, Lang); -decode_presence_attrs([{<<"to">>, _val} | _attrs], Id, - Type, From, _To, Lang) -> - decode_presence_attrs(_attrs, Id, Type, From, _val, - Lang); -decode_presence_attrs([{<<"xml:lang">>, _val} | _attrs], - Id, Type, From, To, _Lang) -> - decode_presence_attrs(_attrs, Id, Type, From, To, _val); -decode_presence_attrs([_ | _attrs], Id, Type, From, To, +decode_presence_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id, Type, From, To, Lang) -> - decode_presence_attrs(_attrs, Id, Type, From, To, Lang); -decode_presence_attrs([], Id, Type, From, To, Lang) -> - {decode_presence_attr_id(Id), - decode_presence_attr_type(Type), - decode_presence_attr_from(From), - decode_presence_attr_to(To), - 'decode_presence_attr_xml:lang'(Lang)}. + decode_presence_attrs(__TopXMLNS, _attrs, _val, Type, + From, To, Lang); +decode_presence_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Id, _Type, From, To, + Lang) -> + decode_presence_attrs(__TopXMLNS, _attrs, Id, _val, + From, To, Lang); +decode_presence_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], Id, Type, _From, To, + Lang) -> + decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, + _val, To, Lang); +decode_presence_attrs(__TopXMLNS, + [{<<"to">>, _val} | _attrs], Id, Type, From, _To, + Lang) -> + decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, + From, _val, Lang); +decode_presence_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, + _Lang) -> + decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, + From, To, _val); +decode_presence_attrs(__TopXMLNS, [_ | _attrs], Id, + Type, From, To, Lang) -> + decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, + From, To, Lang); +decode_presence_attrs(__TopXMLNS, [], Id, Type, From, + To, Lang) -> + {decode_presence_attr_id(__TopXMLNS, Id), + decode_presence_attr_type(__TopXMLNS, Type), + decode_presence_attr_from(__TopXMLNS, From), + decode_presence_attr_to(__TopXMLNS, To), + 'decode_presence_attr_xml:lang'(__TopXMLNS, Lang)}. encode_presence({presence, Id, Type, Lang, From, To, Show, Status, Priority, Error, __Els}, @@ -13652,15 +14480,17 @@ encode_presence({presence, Id, Type, Lang, From, To, 'encode_presence_$priority'(Priority, _acc) -> [encode_presence_priority(Priority, []) | _acc]. -decode_presence_attr_id(undefined) -> undefined; -decode_presence_attr_id(_val) -> _val. +decode_presence_attr_id(__TopXMLNS, undefined) -> + undefined; +decode_presence_attr_id(__TopXMLNS, _val) -> _val. encode_presence_attr_id(undefined, _acc) -> _acc; encode_presence_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_presence_attr_type(undefined) -> undefined; -decode_presence_attr_type(_val) -> +decode_presence_attr_type(__TopXMLNS, undefined) -> + undefined; +decode_presence_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [unavailable, subscribe, subscribed, unsubscribe, unsubscribed, probe, error]) @@ -13668,7 +14498,7 @@ decode_presence_attr_type(_val) -> {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"presence">>, - <<"jabber:client">>}}); + __TopXMLNS}}); _res -> _res end. @@ -13676,13 +14506,14 @@ encode_presence_attr_type(undefined, _acc) -> _acc; encode_presence_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_presence_attr_from(undefined) -> undefined; -decode_presence_attr_from(_val) -> +decode_presence_attr_from(__TopXMLNS, undefined) -> + undefined; +decode_presence_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"presence">>, - <<"jabber:client">>}}); + __TopXMLNS}}); _res -> _res end. @@ -13690,13 +14521,14 @@ encode_presence_attr_from(undefined, _acc) -> _acc; encode_presence_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_presence_attr_to(undefined) -> undefined; -decode_presence_attr_to(_val) -> +decode_presence_attr_to(__TopXMLNS, undefined) -> + undefined; +decode_presence_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"presence">>, - <<"jabber:client">>}}); + __TopXMLNS}}); _res -> _res end. @@ -13704,39 +14536,45 @@ encode_presence_attr_to(undefined, _acc) -> _acc; encode_presence_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. -'decode_presence_attr_xml:lang'(undefined) -> undefined; -'decode_presence_attr_xml:lang'(_val) -> _val. +'decode_presence_attr_xml:lang'(__TopXMLNS, + undefined) -> + undefined; +'decode_presence_attr_xml:lang'(__TopXMLNS, _val) -> + _val. 'encode_presence_attr_xml:lang'(undefined, _acc) -> _acc; 'encode_presence_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_presence_priority({xmlel, <<"priority">>, _attrs, - _els}) -> - Cdata = decode_presence_priority_els(_els, <<>>), Cdata. +decode_presence_priority(__TopXMLNS, + {xmlel, <<"priority">>, _attrs, _els}) -> + Cdata = decode_presence_priority_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_presence_priority_els([], Cdata) -> - decode_presence_priority_cdata(Cdata); -decode_presence_priority_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_presence_priority_els(_els, +decode_presence_priority_els(__TopXMLNS, [], Cdata) -> + decode_presence_priority_cdata(__TopXMLNS, Cdata); +decode_presence_priority_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_presence_priority_els(__TopXMLNS, _els, <>); -decode_presence_priority_els([_ | _els], Cdata) -> - decode_presence_priority_els(_els, Cdata). +decode_presence_priority_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_presence_priority_els(__TopXMLNS, _els, Cdata). encode_presence_priority(Cdata, _xmlns_attrs) -> _els = encode_presence_priority_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"priority">>, _attrs, _els}. -decode_presence_priority_cdata(<<>>) -> undefined; -decode_presence_priority_cdata(_val) -> +decode_presence_priority_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_presence_priority_cdata(__TopXMLNS, _val) -> case catch dec_int(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"priority">>, - <<"jabber:client">>}}); + {bad_cdata_value, <<>>, <<"priority">>, __TopXMLNS}}); _res -> _res end. @@ -13744,29 +14582,33 @@ encode_presence_priority_cdata(undefined, _acc) -> _acc; encode_presence_priority_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. -decode_presence_status({xmlel, <<"status">>, _attrs, - _els}) -> - Data = decode_presence_status_els(_els, <<>>), - Lang = decode_presence_status_attrs(_attrs, undefined), +decode_presence_status(__TopXMLNS, + {xmlel, <<"status">>, _attrs, _els}) -> + Data = decode_presence_status_els(__TopXMLNS, _els, + <<>>), + Lang = decode_presence_status_attrs(__TopXMLNS, _attrs, + undefined), {text, Lang, Data}. -decode_presence_status_els([], Data) -> - decode_presence_status_cdata(Data); -decode_presence_status_els([{xmlcdata, _data} | _els], - Data) -> - decode_presence_status_els(_els, +decode_presence_status_els(__TopXMLNS, [], Data) -> + decode_presence_status_cdata(__TopXMLNS, Data); +decode_presence_status_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_presence_status_els(__TopXMLNS, _els, <>); -decode_presence_status_els([_ | _els], Data) -> - decode_presence_status_els(_els, Data). - -decode_presence_status_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_presence_status_attrs(_attrs, _val); -decode_presence_status_attrs([_ | _attrs], Lang) -> - decode_presence_status_attrs(_attrs, Lang); -decode_presence_status_attrs([], Lang) -> - 'decode_presence_status_attr_xml:lang'(Lang). +decode_presence_status_els(__TopXMLNS, [_ | _els], + Data) -> + decode_presence_status_els(__TopXMLNS, _els, Data). + +decode_presence_status_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_presence_status_attrs(__TopXMLNS, _attrs, _val); +decode_presence_status_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_presence_status_attrs(__TopXMLNS, _attrs, Lang); +decode_presence_status_attrs(__TopXMLNS, [], Lang) -> + 'decode_presence_status_attr_xml:lang'(__TopXMLNS, + Lang). encode_presence_status({text, Lang, Data}, _xmlns_attrs) -> @@ -13775,9 +14617,12 @@ encode_presence_status({text, Lang, Data}, _xmlns_attrs), {xmlel, <<"status">>, _attrs, _els}. -'decode_presence_status_attr_xml:lang'(undefined) -> +'decode_presence_status_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_presence_status_attr_xml:lang'(_val) -> _val. +'decode_presence_status_attr_xml:lang'(__TopXMLNS, + _val) -> + _val. 'encode_presence_status_attr_xml:lang'(undefined, _acc) -> @@ -13785,38 +14630,42 @@ encode_presence_status({text, Lang, Data}, 'encode_presence_status_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_presence_status_cdata(<<>>) -> undefined; -decode_presence_status_cdata(_val) -> _val. +decode_presence_status_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_presence_status_cdata(__TopXMLNS, _val) -> _val. encode_presence_status_cdata(undefined, _acc) -> _acc; encode_presence_status_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_presence_show({xmlel, <<"show">>, _attrs, - _els}) -> - Cdata = decode_presence_show_els(_els, <<>>), Cdata. +decode_presence_show(__TopXMLNS, + {xmlel, <<"show">>, _attrs, _els}) -> + Cdata = decode_presence_show_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_presence_show_els([], Cdata) -> - decode_presence_show_cdata(Cdata); -decode_presence_show_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_presence_show_els(_els, +decode_presence_show_els(__TopXMLNS, [], Cdata) -> + decode_presence_show_cdata(__TopXMLNS, Cdata); +decode_presence_show_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_presence_show_els(__TopXMLNS, _els, <>); -decode_presence_show_els([_ | _els], Cdata) -> - decode_presence_show_els(_els, Cdata). +decode_presence_show_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_presence_show_els(__TopXMLNS, _els, Cdata). encode_presence_show(Cdata, _xmlns_attrs) -> _els = encode_presence_show_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"show">>, _attrs, _els}. -decode_presence_show_cdata(<<>>) -> undefined; -decode_presence_show_cdata(_val) -> +decode_presence_show_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_presence_show_cdata(__TopXMLNS, _val) -> case catch dec_enum(_val, [away, chat, dnd, xa]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_cdata_value, <<>>, <<"show">>, - <<"jabber:client">>}}); + {bad_cdata_value, <<>>, <<"show">>, __TopXMLNS}}); _res -> _res end. @@ -13824,109 +14673,123 @@ encode_presence_show_cdata(undefined, _acc) -> _acc; encode_presence_show_cdata(_val, _acc) -> [{xmlcdata, enc_enum(_val)} | _acc]. -decode_message({xmlel, <<"message">>, _attrs, _els}) -> +decode_message(__TopXMLNS, + {xmlel, <<"message">>, _attrs, _els}) -> {Error, Thread, Subject, Body, __Els} = - decode_message_els(_els, undefined, undefined, [], [], - []), + decode_message_els(__TopXMLNS, _els, undefined, + undefined, [], [], []), {Id, Type, From, To, Lang} = - decode_message_attrs(_attrs, undefined, undefined, - undefined, undefined, undefined), + decode_message_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined, undefined), {message, Id, Type, Lang, From, To, Subject, Body, Thread, Error, __Els}. -decode_message_els([], Error, Thread, Subject, Body, - __Els) -> +decode_message_els(__TopXMLNS, [], Error, Thread, + Subject, Body, __Els) -> {Error, Thread, lists:reverse(Subject), lists:reverse(Body), lists:reverse(__Els)}; -decode_message_els([{xmlel, <<"error">>, _attrs, _} = - _el - | _els], - Error, Thread, Subject, Body, __Els) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_message_els(_els, decode_error(_el), Thread, - Subject, Body, __Els); - true -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els) - end; -decode_message_els([{xmlel, <<"subject">>, _attrs, _} = - _el - | _els], - Error, Thread, Subject, Body, __Els) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_message_els(_els, Error, Thread, - [decode_message_subject(_el) | Subject], Body, - __Els); +decode_message_els(__TopXMLNS, + [{xmlel, <<"error">>, _attrs, _} = _el | _els], Error, + Thread, Subject, Body, __Els) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_message_els(__TopXMLNS, _els, + decode_error(__TopXMLNS, _el), Thread, Subject, + Body, __Els); true -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els) + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els) + end; +decode_message_els(__TopXMLNS, + [{xmlel, <<"subject">>, _attrs, _} = _el | _els], Error, + Thread, Subject, Body, __Els) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_message_els(__TopXMLNS, _els, Error, Thread, + [decode_message_subject(__TopXMLNS, _el) + | Subject], + Body, __Els); + true -> + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els) end; -decode_message_els([{xmlel, <<"thread">>, _attrs, _} = - _el - | _els], - Error, Thread, Subject, Body, __Els) -> +decode_message_els(__TopXMLNS, + [{xmlel, <<"thread">>, _attrs, _} = _el | _els], Error, + Thread, Subject, Body, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_message_els(_els, Error, - decode_message_thread(_el), Subject, Body, __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_message_els(__TopXMLNS, _els, Error, + decode_message_thread(__TopXMLNS, _el), Subject, + Body, __Els); true -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els) + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els) end; -decode_message_els([{xmlel, <<"body">>, _attrs, _} = _el - | _els], - Error, Thread, Subject, Body, __Els) -> +decode_message_els(__TopXMLNS, + [{xmlel, <<"body">>, _attrs, _} = _el | _els], Error, + Thread, Subject, Body, __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_message_els(_els, Error, Thread, Subject, - [decode_message_body(_el) | Body], __Els); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, + [decode_message_body(__TopXMLNS, _el) | Body], + __Els); true -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els) + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els) end; -decode_message_els([{xmlel, _, _, _} = _el | _els], - Error, Thread, Subject, Body, __Els) -> +decode_message_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], Error, Thread, Subject, + Body, __Els) -> case is_known_tag(_el) of true -> - decode_message_els(_els, Error, Thread, Subject, Body, - [decode(_el) | __Els]); + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, [decode(_el) | __Els]); false -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els) + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els) end; -decode_message_els([_ | _els], Error, Thread, Subject, - Body, __Els) -> - decode_message_els(_els, Error, Thread, Subject, Body, - __Els). - -decode_message_attrs([{<<"id">>, _val} | _attrs], _Id, - Type, From, To, Lang) -> - decode_message_attrs(_attrs, _val, Type, From, To, - Lang); -decode_message_attrs([{<<"type">>, _val} | _attrs], Id, - _Type, From, To, Lang) -> - decode_message_attrs(_attrs, Id, _val, From, To, Lang); -decode_message_attrs([{<<"from">>, _val} | _attrs], Id, - Type, _From, To, Lang) -> - decode_message_attrs(_attrs, Id, Type, _val, To, Lang); -decode_message_attrs([{<<"to">>, _val} | _attrs], Id, - Type, From, _To, Lang) -> - decode_message_attrs(_attrs, Id, Type, From, _val, - Lang); -decode_message_attrs([{<<"xml:lang">>, _val} | _attrs], - Id, Type, From, To, _Lang) -> - decode_message_attrs(_attrs, Id, Type, From, To, _val); -decode_message_attrs([_ | _attrs], Id, Type, From, To, +decode_message_els(__TopXMLNS, [_ | _els], Error, + Thread, Subject, Body, __Els) -> + decode_message_els(__TopXMLNS, _els, Error, Thread, + Subject, Body, __Els). + +decode_message_attrs(__TopXMLNS, + [{<<"id">>, _val} | _attrs], _Id, Type, From, To, + Lang) -> + decode_message_attrs(__TopXMLNS, _attrs, _val, Type, + From, To, Lang); +decode_message_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Id, _Type, From, To, Lang) -> - decode_message_attrs(_attrs, Id, Type, From, To, Lang); -decode_message_attrs([], Id, Type, From, To, Lang) -> - {decode_message_attr_id(Id), - decode_message_attr_type(Type), - decode_message_attr_from(From), - decode_message_attr_to(To), - 'decode_message_attr_xml:lang'(Lang)}. + decode_message_attrs(__TopXMLNS, _attrs, Id, _val, From, + To, Lang); +decode_message_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], Id, Type, _From, To, + Lang) -> + decode_message_attrs(__TopXMLNS, _attrs, Id, Type, _val, + To, Lang); +decode_message_attrs(__TopXMLNS, + [{<<"to">>, _val} | _attrs], Id, Type, From, _To, + Lang) -> + decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, + _val, Lang); +decode_message_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, + _Lang) -> + decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, + To, _val); +decode_message_attrs(__TopXMLNS, [_ | _attrs], Id, Type, + From, To, Lang) -> + decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, + To, Lang); +decode_message_attrs(__TopXMLNS, [], Id, Type, From, To, + Lang) -> + {decode_message_attr_id(__TopXMLNS, Id), + decode_message_attr_type(__TopXMLNS, Type), + decode_message_attr_from(__TopXMLNS, From), + decode_message_attr_to(__TopXMLNS, To), + 'decode_message_attr_xml:lang'(__TopXMLNS, Lang)}. encode_message({message, Id, Type, Lang, From, To, Subject, Body, Thread, Error, __Els}, @@ -13964,22 +14827,24 @@ encode_message({message, Id, Type, Lang, From, To, 'encode_message_$body'(_els, [encode_message_body(Body, []) | _acc]). -decode_message_attr_id(undefined) -> undefined; -decode_message_attr_id(_val) -> _val. +decode_message_attr_id(__TopXMLNS, undefined) -> + undefined; +decode_message_attr_id(__TopXMLNS, _val) -> _val. encode_message_attr_id(undefined, _acc) -> _acc; encode_message_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_message_attr_type(undefined) -> normal; -decode_message_attr_type(_val) -> +decode_message_attr_type(__TopXMLNS, undefined) -> + normal; +decode_message_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [chat, normal, groupchat, headline, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"message">>, - <<"jabber:client">>}}); + __TopXMLNS}}); _res -> _res end. @@ -13987,13 +14852,14 @@ encode_message_attr_type(normal, _acc) -> _acc; encode_message_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_message_attr_from(undefined) -> undefined; -decode_message_attr_from(_val) -> +decode_message_attr_from(__TopXMLNS, undefined) -> + undefined; +decode_message_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"message">>, - <<"jabber:client">>}}); + __TopXMLNS}}); _res -> _res end. @@ -14001,13 +14867,13 @@ encode_message_attr_from(undefined, _acc) -> _acc; encode_message_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_message_attr_to(undefined) -> undefined; -decode_message_attr_to(_val) -> +decode_message_attr_to(__TopXMLNS, undefined) -> + undefined; +decode_message_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"to">>, <<"message">>, - <<"jabber:client">>}}); + {bad_attr_value, <<"to">>, <<"message">>, __TopXMLNS}}); _res -> _res end. @@ -14015,61 +14881,68 @@ encode_message_attr_to(undefined, _acc) -> _acc; encode_message_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. -'decode_message_attr_xml:lang'(undefined) -> undefined; -'decode_message_attr_xml:lang'(_val) -> _val. +'decode_message_attr_xml:lang'(__TopXMLNS, undefined) -> + undefined; +'decode_message_attr_xml:lang'(__TopXMLNS, _val) -> + _val. 'encode_message_attr_xml:lang'(undefined, _acc) -> _acc; 'encode_message_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_message_thread({xmlel, <<"thread">>, _attrs, - _els}) -> - Cdata = decode_message_thread_els(_els, <<>>), Cdata. +decode_message_thread(__TopXMLNS, + {xmlel, <<"thread">>, _attrs, _els}) -> + Cdata = decode_message_thread_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_message_thread_els([], Cdata) -> - decode_message_thread_cdata(Cdata); -decode_message_thread_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_message_thread_els(_els, +decode_message_thread_els(__TopXMLNS, [], Cdata) -> + decode_message_thread_cdata(__TopXMLNS, Cdata); +decode_message_thread_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_message_thread_els(__TopXMLNS, _els, <>); -decode_message_thread_els([_ | _els], Cdata) -> - decode_message_thread_els(_els, Cdata). +decode_message_thread_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_message_thread_els(__TopXMLNS, _els, Cdata). encode_message_thread(Cdata, _xmlns_attrs) -> _els = encode_message_thread_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"thread">>, _attrs, _els}. -decode_message_thread_cdata(<<>>) -> undefined; -decode_message_thread_cdata(_val) -> _val. +decode_message_thread_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_message_thread_cdata(__TopXMLNS, _val) -> _val. encode_message_thread_cdata(undefined, _acc) -> _acc; encode_message_thread_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_message_body({xmlel, <<"body">>, _attrs, - _els}) -> - Data = decode_message_body_els(_els, <<>>), - Lang = decode_message_body_attrs(_attrs, undefined), +decode_message_body(__TopXMLNS, + {xmlel, <<"body">>, _attrs, _els}) -> + Data = decode_message_body_els(__TopXMLNS, _els, <<>>), + Lang = decode_message_body_attrs(__TopXMLNS, _attrs, + undefined), {text, Lang, Data}. -decode_message_body_els([], Data) -> - decode_message_body_cdata(Data); -decode_message_body_els([{xmlcdata, _data} | _els], - Data) -> - decode_message_body_els(_els, +decode_message_body_els(__TopXMLNS, [], Data) -> + decode_message_body_cdata(__TopXMLNS, Data); +decode_message_body_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_message_body_els(__TopXMLNS, _els, <>); -decode_message_body_els([_ | _els], Data) -> - decode_message_body_els(_els, Data). - -decode_message_body_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_message_body_attrs(_attrs, _val); -decode_message_body_attrs([_ | _attrs], Lang) -> - decode_message_body_attrs(_attrs, Lang); -decode_message_body_attrs([], Lang) -> - 'decode_message_body_attr_xml:lang'(Lang). +decode_message_body_els(__TopXMLNS, [_ | _els], Data) -> + decode_message_body_els(__TopXMLNS, _els, Data). + +decode_message_body_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_message_body_attrs(__TopXMLNS, _attrs, _val); +decode_message_body_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_message_body_attrs(__TopXMLNS, _attrs, Lang); +decode_message_body_attrs(__TopXMLNS, [], Lang) -> + 'decode_message_body_attr_xml:lang'(__TopXMLNS, Lang). encode_message_body({text, Lang, Data}, _xmlns_attrs) -> _els = encode_message_body_cdata(Data, []), @@ -14077,45 +14950,52 @@ encode_message_body({text, Lang, Data}, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"body">>, _attrs, _els}. -'decode_message_body_attr_xml:lang'(undefined) -> +'decode_message_body_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_message_body_attr_xml:lang'(_val) -> _val. +'decode_message_body_attr_xml:lang'(__TopXMLNS, _val) -> + _val. 'encode_message_body_attr_xml:lang'(undefined, _acc) -> _acc; 'encode_message_body_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_message_body_cdata(<<>>) -> undefined; -decode_message_body_cdata(_val) -> _val. +decode_message_body_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_message_body_cdata(__TopXMLNS, _val) -> _val. encode_message_body_cdata(undefined, _acc) -> _acc; encode_message_body_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_message_subject({xmlel, <<"subject">>, _attrs, - _els}) -> - Data = decode_message_subject_els(_els, <<>>), - Lang = decode_message_subject_attrs(_attrs, undefined), +decode_message_subject(__TopXMLNS, + {xmlel, <<"subject">>, _attrs, _els}) -> + Data = decode_message_subject_els(__TopXMLNS, _els, + <<>>), + Lang = decode_message_subject_attrs(__TopXMLNS, _attrs, + undefined), {text, Lang, Data}. -decode_message_subject_els([], Data) -> - decode_message_subject_cdata(Data); -decode_message_subject_els([{xmlcdata, _data} | _els], - Data) -> - decode_message_subject_els(_els, +decode_message_subject_els(__TopXMLNS, [], Data) -> + decode_message_subject_cdata(__TopXMLNS, Data); +decode_message_subject_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Data) -> + decode_message_subject_els(__TopXMLNS, _els, <>); -decode_message_subject_els([_ | _els], Data) -> - decode_message_subject_els(_els, Data). - -decode_message_subject_attrs([{<<"xml:lang">>, _val} - | _attrs], - _Lang) -> - decode_message_subject_attrs(_attrs, _val); -decode_message_subject_attrs([_ | _attrs], Lang) -> - decode_message_subject_attrs(_attrs, Lang); -decode_message_subject_attrs([], Lang) -> - 'decode_message_subject_attr_xml:lang'(Lang). +decode_message_subject_els(__TopXMLNS, [_ | _els], + Data) -> + decode_message_subject_els(__TopXMLNS, _els, Data). + +decode_message_subject_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], _Lang) -> + decode_message_subject_attrs(__TopXMLNS, _attrs, _val); +decode_message_subject_attrs(__TopXMLNS, [_ | _attrs], + Lang) -> + decode_message_subject_attrs(__TopXMLNS, _attrs, Lang); +decode_message_subject_attrs(__TopXMLNS, [], Lang) -> + 'decode_message_subject_attr_xml:lang'(__TopXMLNS, + Lang). encode_message_subject({text, Lang, Data}, _xmlns_attrs) -> @@ -14124,9 +15004,12 @@ encode_message_subject({text, Lang, Data}, _xmlns_attrs), {xmlel, <<"subject">>, _attrs, _els}. -'decode_message_subject_attr_xml:lang'(undefined) -> +'decode_message_subject_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_message_subject_attr_xml:lang'(_val) -> _val. +'decode_message_subject_attr_xml:lang'(__TopXMLNS, + _val) -> + _val. 'encode_message_subject_attr_xml:lang'(undefined, _acc) -> @@ -14134,63 +15017,80 @@ encode_message_subject({text, Lang, Data}, 'encode_message_subject_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_message_subject_cdata(<<>>) -> undefined; -decode_message_subject_cdata(_val) -> _val. +decode_message_subject_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_message_subject_cdata(__TopXMLNS, _val) -> _val. encode_message_subject_cdata(undefined, _acc) -> _acc; encode_message_subject_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_iq({xmlel, <<"iq">>, _attrs, _els}) -> - {Error, __Els} = decode_iq_els(_els, undefined, []), - {Id, Type, From, To, Lang} = decode_iq_attrs(_attrs, - undefined, undefined, +decode_iq(__TopXMLNS, + {xmlel, <<"iq">>, _attrs, _els}) -> + {Error, __Els} = decode_iq_els(__TopXMLNS, _els, + undefined, []), + {Id, Type, From, To, Lang} = decode_iq_attrs(__TopXMLNS, + _attrs, undefined, undefined, undefined, undefined, undefined), {iq, Id, Type, Lang, From, To, Error, __Els}. -decode_iq_els([], Error, __Els) -> +decode_iq_els(__TopXMLNS, [], Error, __Els) -> {Error, lists:reverse(__Els)}; -decode_iq_els([{xmlel, <<"error">>, _attrs, _} = _el - | _els], - Error, __Els) -> +decode_iq_els(__TopXMLNS, + [{xmlel, <<"error">>, _attrs, _} = _el | _els], Error, + __Els) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:client">> -> - decode_iq_els(_els, decode_error(_el), __Els); - true -> decode_iq_els(_els, Error, __Els) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_iq_els(__TopXMLNS, _els, + decode_error(__TopXMLNS, _el), __Els); + true -> decode_iq_els(__TopXMLNS, _els, Error, __Els) end; -decode_iq_els([{xmlel, _, _, _} = _el | _els], Error, - __Els) -> +decode_iq_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], Error, __Els) -> case is_known_tag(_el) of true -> - decode_iq_els(_els, Error, [decode(_el) | __Els]); - false -> decode_iq_els(_els, Error, __Els) - end; -decode_iq_els([_ | _els], Error, __Els) -> - decode_iq_els(_els, Error, __Els). - -decode_iq_attrs([{<<"id">>, _val} | _attrs], _Id, Type, + decode_iq_els(__TopXMLNS, _els, Error, + [decode(_el) | __Els]); + false -> decode_iq_els(__TopXMLNS, _els, Error, __Els) + end; +decode_iq_els(__TopXMLNS, [_ | _els], Error, __Els) -> + decode_iq_els(__TopXMLNS, _els, Error, __Els). + +decode_iq_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], + _Id, Type, From, To, Lang) -> + decode_iq_attrs(__TopXMLNS, _attrs, _val, Type, From, + To, Lang); +decode_iq_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Id, _Type, From, To, + Lang) -> + decode_iq_attrs(__TopXMLNS, _attrs, Id, _val, From, To, + Lang); +decode_iq_attrs(__TopXMLNS, + [{<<"from">>, _val} | _attrs], Id, Type, _From, To, + Lang) -> + decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, _val, To, + Lang); +decode_iq_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], + Id, Type, From, _To, Lang) -> + decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, + _val, Lang); +decode_iq_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, + _Lang) -> + decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, To, + _val); +decode_iq_attrs(__TopXMLNS, [_ | _attrs], Id, Type, From, To, Lang) -> - decode_iq_attrs(_attrs, _val, Type, From, To, Lang); -decode_iq_attrs([{<<"type">>, _val} | _attrs], Id, - _Type, From, To, Lang) -> - decode_iq_attrs(_attrs, Id, _val, From, To, Lang); -decode_iq_attrs([{<<"from">>, _val} | _attrs], Id, Type, - _From, To, Lang) -> - decode_iq_attrs(_attrs, Id, Type, _val, To, Lang); -decode_iq_attrs([{<<"to">>, _val} | _attrs], Id, Type, - From, _To, Lang) -> - decode_iq_attrs(_attrs, Id, Type, From, _val, Lang); -decode_iq_attrs([{<<"xml:lang">>, _val} | _attrs], Id, - Type, From, To, _Lang) -> - decode_iq_attrs(_attrs, Id, Type, From, To, _val); -decode_iq_attrs([_ | _attrs], Id, Type, From, To, + decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, To, + Lang); +decode_iq_attrs(__TopXMLNS, [], Id, Type, From, To, Lang) -> - decode_iq_attrs(_attrs, Id, Type, From, To, Lang); -decode_iq_attrs([], Id, Type, From, To, Lang) -> - {decode_iq_attr_id(Id), decode_iq_attr_type(Type), - decode_iq_attr_from(From), decode_iq_attr_to(To), - 'decode_iq_attr_xml:lang'(Lang)}. + {decode_iq_attr_id(__TopXMLNS, Id), + decode_iq_attr_type(__TopXMLNS, Type), + decode_iq_attr_from(__TopXMLNS, From), + decode_iq_attr_to(__TopXMLNS, To), + 'decode_iq_attr_xml:lang'(__TopXMLNS, Lang)}. encode_iq({iq, Id, Type, Lang, From, To, Error, __Els}, _xmlns_attrs) -> @@ -14208,38 +15108,34 @@ encode_iq({iq, Id, Type, Lang, From, To, Error, __Els}, 'encode_iq_$error'(Error, _acc) -> [encode_error(Error, []) | _acc]. -decode_iq_attr_id(undefined) -> +decode_iq_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"id">>, <<"iq">>, - <<"jabber:client">>}}); -decode_iq_attr_id(_val) -> _val. + {missing_attr, <<"id">>, <<"iq">>, __TopXMLNS}}); +decode_iq_attr_id(__TopXMLNS, _val) -> _val. encode_iq_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. -decode_iq_attr_type(undefined) -> +decode_iq_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"type">>, <<"iq">>, - <<"jabber:client">>}}); -decode_iq_attr_type(_val) -> + {missing_attr, <<"type">>, <<"iq">>, __TopXMLNS}}); +decode_iq_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [get, set, result, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"type">>, <<"iq">>, - <<"jabber:client">>}}); + {bad_attr_value, <<"type">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. encode_iq_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_iq_attr_from(undefined) -> undefined; -decode_iq_attr_from(_val) -> +decode_iq_attr_from(__TopXMLNS, undefined) -> undefined; +decode_iq_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"from">>, <<"iq">>, - <<"jabber:client">>}}); + {bad_attr_value, <<"from">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. @@ -14247,13 +15143,12 @@ encode_iq_attr_from(undefined, _acc) -> _acc; encode_iq_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. -decode_iq_attr_to(undefined) -> undefined; -decode_iq_attr_to(_val) -> +decode_iq_attr_to(__TopXMLNS, undefined) -> undefined; +decode_iq_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"to">>, <<"iq">>, - <<"jabber:client">>}}); + {bad_attr_value, <<"to">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. @@ -14261,28 +15156,31 @@ encode_iq_attr_to(undefined, _acc) -> _acc; encode_iq_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. -'decode_iq_attr_xml:lang'(undefined) -> undefined; -'decode_iq_attr_xml:lang'(_val) -> _val. +'decode_iq_attr_xml:lang'(__TopXMLNS, undefined) -> + undefined; +'decode_iq_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_iq_attr_xml:lang'(undefined, _acc) -> _acc; 'encode_iq_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_stats({xmlel, <<"query">>, _attrs, _els}) -> - Stat = decode_stats_els(_els, []), {stats, Stat}. +decode_stats(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + Stat = decode_stats_els(__TopXMLNS, _els, []), + {stats, Stat}. -decode_stats_els([], Stat) -> lists:reverse(Stat); -decode_stats_els([{xmlel, <<"stat">>, _attrs, _} = _el - | _els], - Stat) -> +decode_stats_els(__TopXMLNS, [], Stat) -> + lists:reverse(Stat); +decode_stats_els(__TopXMLNS, + [{xmlel, <<"stat">>, _attrs, _} = _el | _els], Stat) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/stats">> -> - decode_stats_els(_els, [decode_stat(_el) | Stat]); - true -> decode_stats_els(_els, Stat) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_stats_els(__TopXMLNS, _els, + [decode_stat(__TopXMLNS, _el) | Stat]); + true -> decode_stats_els(__TopXMLNS, _els, Stat) end; -decode_stats_els([_ | _els], Stat) -> - decode_stats_els(_els, Stat). +decode_stats_els(__TopXMLNS, [_ | _els], Stat) -> + decode_stats_els(__TopXMLNS, _els, Stat). encode_stats({stats, Stat}, _xmlns_attrs) -> _els = 'encode_stats_$stat'(Stat, []), @@ -14294,40 +15192,48 @@ encode_stats({stats, Stat}, _xmlns_attrs) -> 'encode_stats_$stat'(_els, [encode_stat(Stat, []) | _acc]). -decode_stat({xmlel, <<"stat">>, _attrs, _els}) -> - Error = decode_stat_els(_els, []), - {Name, Units, Value} = decode_stat_attrs(_attrs, - undefined, undefined, undefined), +decode_stat(__TopXMLNS, + {xmlel, <<"stat">>, _attrs, _els}) -> + Error = decode_stat_els(__TopXMLNS, _els, []), + {Name, Units, Value} = decode_stat_attrs(__TopXMLNS, + _attrs, undefined, undefined, + undefined), {stat, Name, Units, Value, Error}. -decode_stat_els([], Error) -> lists:reverse(Error); -decode_stat_els([{xmlel, <<"error">>, _attrs, _} = _el - | _els], +decode_stat_els(__TopXMLNS, [], Error) -> + lists:reverse(Error); +decode_stat_els(__TopXMLNS, + [{xmlel, <<"error">>, _attrs, _} = _el | _els], Error) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/stats">> -> - decode_stat_els(_els, [decode_stat_error(_el) | Error]); - true -> decode_stat_els(_els, Error) - end; -decode_stat_els([_ | _els], Error) -> - decode_stat_els(_els, Error). - -decode_stat_attrs([{<<"name">>, _val} | _attrs], _Name, - Units, Value) -> - decode_stat_attrs(_attrs, _val, Units, Value); -decode_stat_attrs([{<<"units">>, _val} | _attrs], Name, - _Units, Value) -> - decode_stat_attrs(_attrs, Name, _val, Value); -decode_stat_attrs([{<<"value">>, _val} | _attrs], Name, - Units, _Value) -> - decode_stat_attrs(_attrs, Name, Units, _val); -decode_stat_attrs([_ | _attrs], Name, Units, Value) -> - decode_stat_attrs(_attrs, Name, Units, Value); -decode_stat_attrs([], Name, Units, Value) -> - {decode_stat_attr_name(Name), - decode_stat_attr_units(Units), - decode_stat_attr_value(Value)}. + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_stat_els(__TopXMLNS, _els, + [decode_stat_error(__TopXMLNS, _el) | Error]); + true -> decode_stat_els(__TopXMLNS, _els, Error) + end; +decode_stat_els(__TopXMLNS, [_ | _els], Error) -> + decode_stat_els(__TopXMLNS, _els, Error). + +decode_stat_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name, Units, Value) -> + decode_stat_attrs(__TopXMLNS, _attrs, _val, Units, + Value); +decode_stat_attrs(__TopXMLNS, + [{<<"units">>, _val} | _attrs], Name, _Units, Value) -> + decode_stat_attrs(__TopXMLNS, _attrs, Name, _val, + Value); +decode_stat_attrs(__TopXMLNS, + [{<<"value">>, _val} | _attrs], Name, Units, _Value) -> + decode_stat_attrs(__TopXMLNS, _attrs, Name, Units, + _val); +decode_stat_attrs(__TopXMLNS, [_ | _attrs], Name, Units, + Value) -> + decode_stat_attrs(__TopXMLNS, _attrs, Name, Units, + Value); +decode_stat_attrs(__TopXMLNS, [], Name, Units, Value) -> + {decode_stat_attr_name(__TopXMLNS, Name), + decode_stat_attr_units(__TopXMLNS, Units), + decode_stat_attr_value(__TopXMLNS, Value)}. encode_stat({stat, Name, Units, Value, Error}, _xmlns_attrs) -> @@ -14343,50 +15249,54 @@ encode_stat({stat, Name, Units, Value, Error}, 'encode_stat_$error'(_els, [encode_stat_error(Error, []) | _acc]). -decode_stat_attr_name(undefined) -> +decode_stat_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"name">>, <<"stat">>, - <<"http://jabber.org/protocol/stats">>}}); -decode_stat_attr_name(_val) -> _val. + {missing_attr, <<"name">>, <<"stat">>, __TopXMLNS}}); +decode_stat_attr_name(__TopXMLNS, _val) -> _val. encode_stat_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_stat_attr_units(undefined) -> undefined; -decode_stat_attr_units(_val) -> _val. +decode_stat_attr_units(__TopXMLNS, undefined) -> + undefined; +decode_stat_attr_units(__TopXMLNS, _val) -> _val. encode_stat_attr_units(undefined, _acc) -> _acc; encode_stat_attr_units(_val, _acc) -> [{<<"units">>, _val} | _acc]. -decode_stat_attr_value(undefined) -> undefined; -decode_stat_attr_value(_val) -> _val. +decode_stat_attr_value(__TopXMLNS, undefined) -> + undefined; +decode_stat_attr_value(__TopXMLNS, _val) -> _val. encode_stat_attr_value(undefined, _acc) -> _acc; encode_stat_attr_value(_val, _acc) -> [{<<"value">>, _val} | _acc]. -decode_stat_error({xmlel, <<"error">>, _attrs, _els}) -> - Cdata = decode_stat_error_els(_els, <<>>), - Code = decode_stat_error_attrs(_attrs, undefined), +decode_stat_error(__TopXMLNS, + {xmlel, <<"error">>, _attrs, _els}) -> + Cdata = decode_stat_error_els(__TopXMLNS, _els, <<>>), + Code = decode_stat_error_attrs(__TopXMLNS, _attrs, + undefined), {Code, Cdata}. -decode_stat_error_els([], Cdata) -> - decode_stat_error_cdata(Cdata); -decode_stat_error_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_stat_error_els(_els, +decode_stat_error_els(__TopXMLNS, [], Cdata) -> + decode_stat_error_cdata(__TopXMLNS, Cdata); +decode_stat_error_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_stat_error_els(__TopXMLNS, _els, <>); -decode_stat_error_els([_ | _els], Cdata) -> - decode_stat_error_els(_els, Cdata). - -decode_stat_error_attrs([{<<"code">>, _val} | _attrs], - _Code) -> - decode_stat_error_attrs(_attrs, _val); -decode_stat_error_attrs([_ | _attrs], Code) -> - decode_stat_error_attrs(_attrs, Code); -decode_stat_error_attrs([], Code) -> - decode_stat_error_attr_code(Code). +decode_stat_error_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_stat_error_els(__TopXMLNS, _els, Cdata). + +decode_stat_error_attrs(__TopXMLNS, + [{<<"code">>, _val} | _attrs], _Code) -> + decode_stat_error_attrs(__TopXMLNS, _attrs, _val); +decode_stat_error_attrs(__TopXMLNS, [_ | _attrs], + Code) -> + decode_stat_error_attrs(__TopXMLNS, _attrs, Code); +decode_stat_error_attrs(__TopXMLNS, [], Code) -> + decode_stat_error_attr_code(__TopXMLNS, Code). encode_stat_error({Code, Cdata}, _xmlns_attrs) -> _els = encode_stat_error_cdata(Cdata, []), @@ -14394,66 +15304,68 @@ encode_stat_error({Code, Cdata}, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"error">>, _attrs, _els}. -decode_stat_error_attr_code(undefined) -> +decode_stat_error_attr_code(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"code">>, <<"error">>, - <<"http://jabber.org/protocol/stats">>}}); -decode_stat_error_attr_code(_val) -> + {missing_attr, <<"code">>, <<"error">>, __TopXMLNS}}); +decode_stat_error_attr_code(__TopXMLNS, _val) -> case catch dec_int(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"code">>, <<"error">>, - <<"http://jabber.org/protocol/stats">>}}); + {bad_attr_value, <<"code">>, <<"error">>, __TopXMLNS}}); _res -> _res end. encode_stat_error_attr_code(_val, _acc) -> [{<<"code">>, enc_int(_val)} | _acc]. -decode_stat_error_cdata(<<>>) -> undefined; -decode_stat_error_cdata(_val) -> _val. +decode_stat_error_cdata(__TopXMLNS, <<>>) -> undefined; +decode_stat_error_cdata(__TopXMLNS, _val) -> _val. encode_stat_error_cdata(undefined, _acc) -> _acc; encode_stat_error_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_bookmarks_storage({xmlel, <<"storage">>, _attrs, - _els}) -> - {Conference, Url} = decode_bookmarks_storage_els(_els, - [], []), +decode_bookmarks_storage(__TopXMLNS, + {xmlel, <<"storage">>, _attrs, _els}) -> + {Conference, Url} = + decode_bookmarks_storage_els(__TopXMLNS, _els, [], []), {bookmark_storage, Conference, Url}. -decode_bookmarks_storage_els([], Conference, Url) -> +decode_bookmarks_storage_els(__TopXMLNS, [], Conference, + Url) -> {lists:reverse(Conference), lists:reverse(Url)}; -decode_bookmarks_storage_els([{xmlel, <<"conference">>, - _attrs, _} = - _el +decode_bookmarks_storage_els(__TopXMLNS, + [{xmlel, <<"conference">>, _attrs, _} = _el | _els], Conference, Url) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"storage:bookmarks">> -> - decode_bookmarks_storage_els(_els, - [decode_bookmark_conference(_el) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bookmarks_storage_els(__TopXMLNS, _els, + [decode_bookmark_conference(__TopXMLNS, + _el) | Conference], Url); true -> - decode_bookmarks_storage_els(_els, Conference, Url) + decode_bookmarks_storage_els(__TopXMLNS, _els, + Conference, Url) end; -decode_bookmarks_storage_els([{xmlel, <<"url">>, _attrs, - _} = - _el - | _els], +decode_bookmarks_storage_els(__TopXMLNS, + [{xmlel, <<"url">>, _attrs, _} = _el | _els], Conference, Url) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"storage:bookmarks">> -> - decode_bookmarks_storage_els(_els, Conference, - [decode_bookmark_url(_el) | Url]); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bookmarks_storage_els(__TopXMLNS, _els, + Conference, + [decode_bookmark_url(__TopXMLNS, _el) + | Url]); true -> - decode_bookmarks_storage_els(_els, Conference, Url) + decode_bookmarks_storage_els(__TopXMLNS, _els, + Conference, Url) end; -decode_bookmarks_storage_els([_ | _els], Conference, - Url) -> - decode_bookmarks_storage_els(_els, Conference, Url). +decode_bookmarks_storage_els(__TopXMLNS, [_ | _els], + Conference, Url) -> + decode_bookmarks_storage_els(__TopXMLNS, _els, + Conference, Url). encode_bookmarks_storage({bookmark_storage, Conference, Url}, @@ -14479,22 +15391,27 @@ encode_bookmarks_storage({bookmark_storage, Conference, 'encode_bookmarks_storage_$url'(_els, [encode_bookmark_url(Url, []) | _acc]). -decode_bookmark_url({xmlel, <<"url">>, _attrs, _els}) -> - {Name, Url} = decode_bookmark_url_attrs(_attrs, - undefined, undefined), +decode_bookmark_url(__TopXMLNS, + {xmlel, <<"url">>, _attrs, _els}) -> + {Name, Url} = decode_bookmark_url_attrs(__TopXMLNS, + _attrs, undefined, undefined), {bookmark_url, Name, Url}. -decode_bookmark_url_attrs([{<<"name">>, _val} | _attrs], - _Name, Url) -> - decode_bookmark_url_attrs(_attrs, _val, Url); -decode_bookmark_url_attrs([{<<"url">>, _val} | _attrs], - Name, _Url) -> - decode_bookmark_url_attrs(_attrs, Name, _val); -decode_bookmark_url_attrs([_ | _attrs], Name, Url) -> - decode_bookmark_url_attrs(_attrs, Name, Url); -decode_bookmark_url_attrs([], Name, Url) -> - {decode_bookmark_url_attr_name(Name), - decode_bookmark_url_attr_url(Url)}. +decode_bookmark_url_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name, Url) -> + decode_bookmark_url_attrs(__TopXMLNS, _attrs, _val, + Url); +decode_bookmark_url_attrs(__TopXMLNS, + [{<<"url">>, _val} | _attrs], Name, _Url) -> + decode_bookmark_url_attrs(__TopXMLNS, _attrs, Name, + _val); +decode_bookmark_url_attrs(__TopXMLNS, [_ | _attrs], + Name, Url) -> + decode_bookmark_url_attrs(__TopXMLNS, _attrs, Name, + Url); +decode_bookmark_url_attrs(__TopXMLNS, [], Name, Url) -> + {decode_bookmark_url_attr_name(__TopXMLNS, Name), + decode_bookmark_url_attr_url(__TopXMLNS, Url)}. encode_bookmark_url({bookmark_url, Name, Url}, _xmlns_attrs) -> @@ -14504,89 +15421,93 @@ encode_bookmark_url({bookmark_url, Name, Url}, _xmlns_attrs)), {xmlel, <<"url">>, _attrs, _els}. -decode_bookmark_url_attr_name(undefined) -> +decode_bookmark_url_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"name">>, <<"url">>, - <<"storage:bookmarks">>}}); -decode_bookmark_url_attr_name(_val) -> _val. + {missing_attr, <<"name">>, <<"url">>, __TopXMLNS}}); +decode_bookmark_url_attr_name(__TopXMLNS, _val) -> _val. encode_bookmark_url_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_bookmark_url_attr_url(undefined) -> +decode_bookmark_url_attr_url(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"url">>, <<"url">>, - <<"storage:bookmarks">>}}); -decode_bookmark_url_attr_url(_val) -> _val. + {missing_attr, <<"url">>, <<"url">>, __TopXMLNS}}); +decode_bookmark_url_attr_url(__TopXMLNS, _val) -> _val. encode_bookmark_url_attr_url(_val, _acc) -> [{<<"url">>, _val} | _acc]. -decode_bookmark_conference({xmlel, <<"conference">>, - _attrs, _els}) -> - {Password, Nick} = decode_bookmark_conference_els(_els, - undefined, undefined), +decode_bookmark_conference(__TopXMLNS, + {xmlel, <<"conference">>, _attrs, _els}) -> + {Password, Nick} = + decode_bookmark_conference_els(__TopXMLNS, _els, + undefined, undefined), {Name, Jid, Autojoin} = - decode_bookmark_conference_attrs(_attrs, undefined, - undefined, undefined), + decode_bookmark_conference_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined), {bookmark_conference, Name, Jid, Autojoin, Nick, Password}. -decode_bookmark_conference_els([], Password, Nick) -> +decode_bookmark_conference_els(__TopXMLNS, [], Password, + Nick) -> {Password, Nick}; -decode_bookmark_conference_els([{xmlel, <<"nick">>, - _attrs, _} = - _el - | _els], +decode_bookmark_conference_els(__TopXMLNS, + [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Password, Nick) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"storage:bookmarks">> -> - decode_bookmark_conference_els(_els, Password, - decode_conference_nick(_el)); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bookmark_conference_els(__TopXMLNS, _els, + Password, + decode_conference_nick(__TopXMLNS, + _el)); true -> - decode_bookmark_conference_els(_els, Password, Nick) + decode_bookmark_conference_els(__TopXMLNS, _els, + Password, Nick) end; -decode_bookmark_conference_els([{xmlel, <<"password">>, - _attrs, _} = - _el +decode_bookmark_conference_els(__TopXMLNS, + [{xmlel, <<"password">>, _attrs, _} = _el | _els], Password, Nick) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"storage:bookmarks">> -> - decode_bookmark_conference_els(_els, - decode_conference_password(_el), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_bookmark_conference_els(__TopXMLNS, _els, + decode_conference_password(__TopXMLNS, + _el), Nick); true -> - decode_bookmark_conference_els(_els, Password, Nick) + decode_bookmark_conference_els(__TopXMLNS, _els, + Password, Nick) end; -decode_bookmark_conference_els([_ | _els], Password, - Nick) -> - decode_bookmark_conference_els(_els, Password, Nick). - -decode_bookmark_conference_attrs([{<<"name">>, _val} - | _attrs], - _Name, Jid, Autojoin) -> - decode_bookmark_conference_attrs(_attrs, _val, Jid, - Autojoin); -decode_bookmark_conference_attrs([{<<"jid">>, _val} - | _attrs], - Name, _Jid, Autojoin) -> - decode_bookmark_conference_attrs(_attrs, Name, _val, - Autojoin); -decode_bookmark_conference_attrs([{<<"autojoin">>, _val} - | _attrs], - Name, Jid, _Autojoin) -> - decode_bookmark_conference_attrs(_attrs, Name, Jid, - _val); -decode_bookmark_conference_attrs([_ | _attrs], Name, - Jid, Autojoin) -> - decode_bookmark_conference_attrs(_attrs, Name, Jid, - Autojoin); -decode_bookmark_conference_attrs([], Name, Jid, +decode_bookmark_conference_els(__TopXMLNS, [_ | _els], + Password, Nick) -> + decode_bookmark_conference_els(__TopXMLNS, _els, + Password, Nick). + +decode_bookmark_conference_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name, Jid, + Autojoin) -> + decode_bookmark_conference_attrs(__TopXMLNS, _attrs, + _val, Jid, Autojoin); +decode_bookmark_conference_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], Name, _Jid, Autojoin) -> - {decode_bookmark_conference_attr_name(Name), - decode_bookmark_conference_attr_jid(Jid), - decode_bookmark_conference_attr_autojoin(Autojoin)}. + decode_bookmark_conference_attrs(__TopXMLNS, _attrs, + Name, _val, Autojoin); +decode_bookmark_conference_attrs(__TopXMLNS, + [{<<"autojoin">>, _val} | _attrs], Name, Jid, + _Autojoin) -> + decode_bookmark_conference_attrs(__TopXMLNS, _attrs, + Name, Jid, _val); +decode_bookmark_conference_attrs(__TopXMLNS, + [_ | _attrs], Name, Jid, Autojoin) -> + decode_bookmark_conference_attrs(__TopXMLNS, _attrs, + Name, Jid, Autojoin); +decode_bookmark_conference_attrs(__TopXMLNS, [], Name, + Jid, Autojoin) -> + {decode_bookmark_conference_attr_name(__TopXMLNS, Name), + decode_bookmark_conference_attr_jid(__TopXMLNS, Jid), + decode_bookmark_conference_attr_autojoin(__TopXMLNS, + Autojoin)}. encode_bookmark_conference({bookmark_conference, Name, Jid, Autojoin, Nick, Password}, @@ -14613,39 +15534,45 @@ encode_bookmark_conference({bookmark_conference, Name, 'encode_bookmark_conference_$nick'(Nick, _acc) -> [encode_conference_nick(Nick, []) | _acc]. -decode_bookmark_conference_attr_name(undefined) -> +decode_bookmark_conference_attr_name(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"conference">>, - <<"storage:bookmarks">>}}); -decode_bookmark_conference_attr_name(_val) -> _val. + __TopXMLNS}}); +decode_bookmark_conference_attr_name(__TopXMLNS, + _val) -> + _val. encode_bookmark_conference_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_bookmark_conference_attr_jid(undefined) -> +decode_bookmark_conference_attr_jid(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"conference">>, - <<"storage:bookmarks">>}}); -decode_bookmark_conference_attr_jid(_val) -> + __TopXMLNS}}); +decode_bookmark_conference_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"conference">>, - <<"storage:bookmarks">>}}); + __TopXMLNS}}); _res -> _res end. encode_bookmark_conference_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_bookmark_conference_attr_autojoin(undefined) -> +decode_bookmark_conference_attr_autojoin(__TopXMLNS, + undefined) -> false; -decode_bookmark_conference_attr_autojoin(_val) -> +decode_bookmark_conference_attr_autojoin(__TopXMLNS, + _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"autojoin">>, <<"conference">>, - <<"storage:bookmarks">>}}); + __TopXMLNS}}); _res -> _res end. @@ -14654,105 +15581,112 @@ encode_bookmark_conference_attr_autojoin(false, _acc) -> encode_bookmark_conference_attr_autojoin(_val, _acc) -> [{<<"autojoin">>, enc_bool(_val)} | _acc]. -decode_conference_password({xmlel, <<"password">>, - _attrs, _els}) -> - Cdata = decode_conference_password_els(_els, <<>>), +decode_conference_password(__TopXMLNS, + {xmlel, <<"password">>, _attrs, _els}) -> + Cdata = decode_conference_password_els(__TopXMLNS, _els, + <<>>), Cdata. -decode_conference_password_els([], Cdata) -> - decode_conference_password_cdata(Cdata); -decode_conference_password_els([{xmlcdata, _data} - | _els], - Cdata) -> - decode_conference_password_els(_els, +decode_conference_password_els(__TopXMLNS, [], Cdata) -> + decode_conference_password_cdata(__TopXMLNS, Cdata); +decode_conference_password_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_conference_password_els(__TopXMLNS, _els, <>); -decode_conference_password_els([_ | _els], Cdata) -> - decode_conference_password_els(_els, Cdata). +decode_conference_password_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_conference_password_els(__TopXMLNS, _els, Cdata). encode_conference_password(Cdata, _xmlns_attrs) -> _els = encode_conference_password_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"password">>, _attrs, _els}. -decode_conference_password_cdata(<<>>) -> undefined; -decode_conference_password_cdata(_val) -> _val. +decode_conference_password_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_conference_password_cdata(__TopXMLNS, _val) -> + _val. encode_conference_password_cdata(undefined, _acc) -> _acc; encode_conference_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_conference_nick({xmlel, <<"nick">>, _attrs, - _els}) -> - Cdata = decode_conference_nick_els(_els, <<>>), Cdata. +decode_conference_nick(__TopXMLNS, + {xmlel, <<"nick">>, _attrs, _els}) -> + Cdata = decode_conference_nick_els(__TopXMLNS, _els, + <<>>), + Cdata. -decode_conference_nick_els([], Cdata) -> - decode_conference_nick_cdata(Cdata); -decode_conference_nick_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_conference_nick_els(_els, +decode_conference_nick_els(__TopXMLNS, [], Cdata) -> + decode_conference_nick_cdata(__TopXMLNS, Cdata); +decode_conference_nick_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_conference_nick_els(__TopXMLNS, _els, <>); -decode_conference_nick_els([_ | _els], Cdata) -> - decode_conference_nick_els(_els, Cdata). +decode_conference_nick_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_conference_nick_els(__TopXMLNS, _els, Cdata). encode_conference_nick(Cdata, _xmlns_attrs) -> _els = encode_conference_nick_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"nick">>, _attrs, _els}. -decode_conference_nick_cdata(<<>>) -> undefined; -decode_conference_nick_cdata(_val) -> _val. +decode_conference_nick_cdata(__TopXMLNS, <<>>) -> + undefined; +decode_conference_nick_cdata(__TopXMLNS, _val) -> _val. encode_conference_nick_cdata(undefined, _acc) -> _acc; encode_conference_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_private({xmlel, <<"query">>, _attrs, _els}) -> - __Xmls = decode_private_els(_els, []), +decode_private(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + __Xmls = decode_private_els(__TopXMLNS, _els, []), {private, __Xmls}. -decode_private_els([], __Xmls) -> lists:reverse(__Xmls); -decode_private_els([{xmlel, _, _, _} = _el | _els], - __Xmls) -> - decode_private_els(_els, [_el | __Xmls]); -decode_private_els([_ | _els], __Xmls) -> - decode_private_els(_els, __Xmls). +decode_private_els(__TopXMLNS, [], __Xmls) -> + lists:reverse(__Xmls); +decode_private_els(__TopXMLNS, + [{xmlel, _, _, _} = _el | _els], __Xmls) -> + decode_private_els(__TopXMLNS, _els, [_el | __Xmls]); +decode_private_els(__TopXMLNS, [_ | _els], __Xmls) -> + decode_private_els(__TopXMLNS, _els, __Xmls). encode_private({private, __Xmls}, _xmlns_attrs) -> _els = __Xmls, _attrs = _xmlns_attrs, {xmlel, <<"query">>, _attrs, _els}. -decode_disco_items({xmlel, <<"query">>, _attrs, - _els}) -> - Items = decode_disco_items_els(_els, []), - Node = decode_disco_items_attrs(_attrs, undefined), +decode_disco_items(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + Items = decode_disco_items_els(__TopXMLNS, _els, []), + Node = decode_disco_items_attrs(__TopXMLNS, _attrs, + undefined), {disco_items, Node, Items}. -decode_disco_items_els([], Items) -> +decode_disco_items_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_disco_items_els([{xmlel, <<"item">>, _attrs, _} = - _el - | _els], - Items) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == - <<"http://jabber.org/protocol/disco#items">> -> - decode_disco_items_els(_els, - [decode_disco_item(_el) | Items]); - true -> decode_disco_items_els(_els, Items) - end; -decode_disco_items_els([_ | _els], Items) -> - decode_disco_items_els(_els, Items). - -decode_disco_items_attrs([{<<"node">>, _val} | _attrs], - _Node) -> - decode_disco_items_attrs(_attrs, _val); -decode_disco_items_attrs([_ | _attrs], Node) -> - decode_disco_items_attrs(_attrs, Node); -decode_disco_items_attrs([], Node) -> - decode_disco_items_attr_node(Node). +decode_disco_items_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_disco_items_els(__TopXMLNS, _els, + [decode_disco_item(__TopXMLNS, _el) | Items]); + true -> decode_disco_items_els(__TopXMLNS, _els, Items) + end; +decode_disco_items_els(__TopXMLNS, [_ | _els], Items) -> + decode_disco_items_els(__TopXMLNS, _els, Items). + +decode_disco_items_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node) -> + decode_disco_items_attrs(__TopXMLNS, _attrs, _val); +decode_disco_items_attrs(__TopXMLNS, [_ | _attrs], + Node) -> + decode_disco_items_attrs(__TopXMLNS, _attrs, Node); +decode_disco_items_attrs(__TopXMLNS, [], Node) -> + decode_disco_items_attr_node(__TopXMLNS, Node). encode_disco_items({disco_items, Node, Items}, _xmlns_attrs) -> @@ -14766,35 +15700,42 @@ encode_disco_items({disco_items, Node, Items}, 'encode_disco_items_$items'(_els, [encode_disco_item(Items, []) | _acc]). -decode_disco_items_attr_node(undefined) -> undefined; -decode_disco_items_attr_node(_val) -> _val. +decode_disco_items_attr_node(__TopXMLNS, undefined) -> + undefined; +decode_disco_items_attr_node(__TopXMLNS, _val) -> _val. encode_disco_items_attr_node(undefined, _acc) -> _acc; encode_disco_items_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_disco_item({xmlel, <<"item">>, _attrs, _els}) -> - {Jid, Name, Node} = decode_disco_item_attrs(_attrs, - undefined, undefined, +decode_disco_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + {Jid, Name, Node} = decode_disco_item_attrs(__TopXMLNS, + _attrs, undefined, undefined, undefined), {disco_item, Jid, Name, Node}. -decode_disco_item_attrs([{<<"jid">>, _val} | _attrs], - _Jid, Name, Node) -> - decode_disco_item_attrs(_attrs, _val, Name, Node); -decode_disco_item_attrs([{<<"name">>, _val} | _attrs], - Jid, _Name, Node) -> - decode_disco_item_attrs(_attrs, Jid, _val, Node); -decode_disco_item_attrs([{<<"node">>, _val} | _attrs], - Jid, Name, _Node) -> - decode_disco_item_attrs(_attrs, Jid, Name, _val); -decode_disco_item_attrs([_ | _attrs], Jid, Name, +decode_disco_item_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Name, Node) -> + decode_disco_item_attrs(__TopXMLNS, _attrs, _val, Name, + Node); +decode_disco_item_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], Jid, _Name, Node) -> + decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, _val, + Node); +decode_disco_item_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], Jid, Name, _Node) -> + decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, Name, + _val); +decode_disco_item_attrs(__TopXMLNS, [_ | _attrs], Jid, + Name, Node) -> + decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, Name, + Node); +decode_disco_item_attrs(__TopXMLNS, [], Jid, Name, Node) -> - decode_disco_item_attrs(_attrs, Jid, Name, Node); -decode_disco_item_attrs([], Jid, Name, Node) -> - {decode_disco_item_attr_jid(Jid), - decode_disco_item_attr_name(Name), - decode_disco_item_attr_node(Node)}. + {decode_disco_item_attr_jid(__TopXMLNS, Jid), + decode_disco_item_attr_name(__TopXMLNS, Name), + decode_disco_item_attr_node(__TopXMLNS, Node)}. encode_disco_item({disco_item, Jid, Name, Node}, _xmlns_attrs) -> @@ -14805,95 +15746,98 @@ encode_disco_item({disco_item, Jid, Name, Node}, _xmlns_attrs))), {xmlel, <<"item">>, _attrs, _els}. -decode_disco_item_attr_jid(undefined) -> +decode_disco_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"jid">>, <<"item">>, - <<"http://jabber.org/protocol/disco#items">>}}); -decode_disco_item_attr_jid(_val) -> + {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); +decode_disco_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"item">>, - <<"http://jabber.org/protocol/disco#items">>}}); + {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_disco_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_disco_item_attr_name(undefined) -> undefined; -decode_disco_item_attr_name(_val) -> _val. +decode_disco_item_attr_name(__TopXMLNS, undefined) -> + undefined; +decode_disco_item_attr_name(__TopXMLNS, _val) -> _val. encode_disco_item_attr_name(undefined, _acc) -> _acc; encode_disco_item_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_disco_item_attr_node(undefined) -> undefined; -decode_disco_item_attr_node(_val) -> _val. +decode_disco_item_attr_node(__TopXMLNS, undefined) -> + undefined; +decode_disco_item_attr_node(__TopXMLNS, _val) -> _val. encode_disco_item_attr_node(undefined, _acc) -> _acc; encode_disco_item_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_disco_info({xmlel, <<"query">>, _attrs, _els}) -> +decode_disco_info(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> {Xdata, Features, Identities} = - decode_disco_info_els(_els, [], [], []), - Node = decode_disco_info_attrs(_attrs, undefined), + decode_disco_info_els(__TopXMLNS, _els, [], [], []), + Node = decode_disco_info_attrs(__TopXMLNS, _attrs, + undefined), {disco_info, Node, Identities, Features, Xdata}. -decode_disco_info_els([], Xdata, Features, +decode_disco_info_els(__TopXMLNS, [], Xdata, Features, Identities) -> {lists:reverse(Xdata), lists:reverse(Features), lists:reverse(Identities)}; -decode_disco_info_els([{xmlel, <<"identity">>, _attrs, - _} = - _el - | _els], +decode_disco_info_els(__TopXMLNS, + [{xmlel, <<"identity">>, _attrs, _} = _el | _els], Xdata, Features, Identities) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/disco#info">> -> - decode_disco_info_els(_els, Xdata, Features, - [decode_disco_identity(_el) | Identities]); + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_disco_info_els(__TopXMLNS, _els, Xdata, Features, + [decode_disco_identity(__TopXMLNS, _el) + | Identities]); true -> - decode_disco_info_els(_els, Xdata, Features, Identities) + decode_disco_info_els(__TopXMLNS, _els, Xdata, Features, + Identities) end; -decode_disco_info_els([{xmlel, <<"feature">>, _attrs, - _} = - _el - | _els], - Xdata, Features, Identities) -> +decode_disco_info_els(__TopXMLNS, + [{xmlel, <<"feature">>, _attrs, _} = _el | _els], Xdata, + Features, Identities) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; - _xmlns == <<"http://jabber.org/protocol/disco#info">> -> - decode_disco_info_els(_els, Xdata, - [decode_disco_feature(_el) | Features], + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_disco_info_els(__TopXMLNS, _els, Xdata, + [decode_disco_feature(__TopXMLNS, _el) + | Features], Identities); true -> - decode_disco_info_els(_els, Xdata, Features, Identities) + decode_disco_info_els(__TopXMLNS, _els, Xdata, Features, + Identities) end; -decode_disco_info_els([{xmlel, <<"x">>, _attrs, _} = _el - | _els], - Xdata, Features, Identities) -> +decode_disco_info_els(__TopXMLNS, + [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata, + Features, Identities) -> _xmlns = get_attr(<<"xmlns">>, _attrs), if _xmlns == <<"jabber:x:data">> -> - decode_disco_info_els(_els, [decode_xdata(_el) | Xdata], - Features, Identities); + decode_disco_info_els(__TopXMLNS, _els, + [decode_xdata(_xmlns, _el) | Xdata], Features, + Identities); true -> - decode_disco_info_els(_els, Xdata, Features, Identities) + decode_disco_info_els(__TopXMLNS, _els, Xdata, Features, + Identities) end; -decode_disco_info_els([_ | _els], Xdata, Features, - Identities) -> - decode_disco_info_els(_els, Xdata, Features, +decode_disco_info_els(__TopXMLNS, [_ | _els], Xdata, + Features, Identities) -> + decode_disco_info_els(__TopXMLNS, _els, Xdata, Features, Identities). -decode_disco_info_attrs([{<<"node">>, _val} | _attrs], - _Node) -> - decode_disco_info_attrs(_attrs, _val); -decode_disco_info_attrs([_ | _attrs], Node) -> - decode_disco_info_attrs(_attrs, Node); -decode_disco_info_attrs([], Node) -> - decode_disco_info_attr_node(Node). +decode_disco_info_attrs(__TopXMLNS, + [{<<"node">>, _val} | _attrs], _Node) -> + decode_disco_info_attrs(__TopXMLNS, _attrs, _val); +decode_disco_info_attrs(__TopXMLNS, [_ | _attrs], + Node) -> + decode_disco_info_attrs(__TopXMLNS, _attrs, Node); +decode_disco_info_attrs(__TopXMLNS, [], Node) -> + decode_disco_info_attr_node(__TopXMLNS, Node). encode_disco_info({disco_info, Node, Identities, Features, Xdata}, @@ -14927,25 +15871,28 @@ encode_disco_info({disco_info, Node, Identities, [encode_disco_identity(Identities, []) | _acc]). -decode_disco_info_attr_node(undefined) -> undefined; -decode_disco_info_attr_node(_val) -> _val. +decode_disco_info_attr_node(__TopXMLNS, undefined) -> + undefined; +decode_disco_info_attr_node(__TopXMLNS, _val) -> _val. encode_disco_info_attr_node(undefined, _acc) -> _acc; encode_disco_info_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. -decode_disco_feature({xmlel, <<"feature">>, _attrs, - _els}) -> - Var = decode_disco_feature_attrs(_attrs, undefined), +decode_disco_feature(__TopXMLNS, + {xmlel, <<"feature">>, _attrs, _els}) -> + Var = decode_disco_feature_attrs(__TopXMLNS, _attrs, + undefined), Var. -decode_disco_feature_attrs([{<<"var">>, _val} | _attrs], - _Var) -> - decode_disco_feature_attrs(_attrs, _val); -decode_disco_feature_attrs([_ | _attrs], Var) -> - decode_disco_feature_attrs(_attrs, Var); -decode_disco_feature_attrs([], Var) -> - decode_disco_feature_attr_var(Var). +decode_disco_feature_attrs(__TopXMLNS, + [{<<"var">>, _val} | _attrs], _Var) -> + decode_disco_feature_attrs(__TopXMLNS, _attrs, _val); +decode_disco_feature_attrs(__TopXMLNS, [_ | _attrs], + Var) -> + decode_disco_feature_attrs(__TopXMLNS, _attrs, Var); +decode_disco_feature_attrs(__TopXMLNS, [], Var) -> + decode_disco_feature_attr_var(__TopXMLNS, Var). encode_disco_feature(Var, _xmlns_attrs) -> _els = [], @@ -14953,52 +15900,52 @@ encode_disco_feature(Var, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"feature">>, _attrs, _els}. -decode_disco_feature_attr_var(undefined) -> +decode_disco_feature_attr_var(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"var">>, <<"feature">>, - <<"http://jabber.org/protocol/disco#info">>}}); -decode_disco_feature_attr_var(_val) -> _val. + {missing_attr, <<"var">>, <<"feature">>, __TopXMLNS}}); +decode_disco_feature_attr_var(__TopXMLNS, _val) -> _val. encode_disco_feature_attr_var(_val, _acc) -> [{<<"var">>, _val} | _acc]. -decode_disco_identity({xmlel, <<"identity">>, _attrs, - _els}) -> +decode_disco_identity(__TopXMLNS, + {xmlel, <<"identity">>, _attrs, _els}) -> {Category, Type, Lang, Name} = - decode_disco_identity_attrs(_attrs, undefined, - undefined, undefined, undefined), + decode_disco_identity_attrs(__TopXMLNS, _attrs, + undefined, undefined, undefined, undefined), {identity, Category, Type, Lang, Name}. -decode_disco_identity_attrs([{<<"category">>, _val} - | _attrs], - _Category, Type, Lang, Name) -> - decode_disco_identity_attrs(_attrs, _val, Type, Lang, - Name); -decode_disco_identity_attrs([{<<"type">>, _val} - | _attrs], - Category, _Type, Lang, Name) -> - decode_disco_identity_attrs(_attrs, Category, _val, - Lang, Name); -decode_disco_identity_attrs([{<<"xml:lang">>, _val} - | _attrs], - Category, Type, _Lang, Name) -> - decode_disco_identity_attrs(_attrs, Category, Type, - _val, Name); -decode_disco_identity_attrs([{<<"name">>, _val} - | _attrs], - Category, Type, Lang, _Name) -> - decode_disco_identity_attrs(_attrs, Category, Type, - Lang, _val); -decode_disco_identity_attrs([_ | _attrs], Category, +decode_disco_identity_attrs(__TopXMLNS, + [{<<"category">>, _val} | _attrs], _Category, Type, + Lang, Name) -> + decode_disco_identity_attrs(__TopXMLNS, _attrs, _val, + Type, Lang, Name); +decode_disco_identity_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Category, _Type, + Lang, Name) -> + decode_disco_identity_attrs(__TopXMLNS, _attrs, + Category, _val, Lang, Name); +decode_disco_identity_attrs(__TopXMLNS, + [{<<"xml:lang">>, _val} | _attrs], Category, Type, + _Lang, Name) -> + decode_disco_identity_attrs(__TopXMLNS, _attrs, + Category, Type, _val, Name); +decode_disco_identity_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], Category, Type, Lang, + _Name) -> + decode_disco_identity_attrs(__TopXMLNS, _attrs, + Category, Type, Lang, _val); +decode_disco_identity_attrs(__TopXMLNS, [_ | _attrs], + Category, Type, Lang, Name) -> + decode_disco_identity_attrs(__TopXMLNS, _attrs, + Category, Type, Lang, Name); +decode_disco_identity_attrs(__TopXMLNS, [], Category, Type, Lang, Name) -> - decode_disco_identity_attrs(_attrs, Category, Type, - Lang, Name); -decode_disco_identity_attrs([], Category, Type, Lang, - Name) -> - {decode_disco_identity_attr_category(Category), - decode_disco_identity_attr_type(Type), - 'decode_disco_identity_attr_xml:lang'(Lang), - decode_disco_identity_attr_name(Name)}. + {decode_disco_identity_attr_category(__TopXMLNS, + Category), + decode_disco_identity_attr_type(__TopXMLNS, Type), + 'decode_disco_identity_attr_xml:lang'(__TopXMLNS, Lang), + decode_disco_identity_attr_name(__TopXMLNS, Name)}. encode_disco_identity({identity, Category, Type, Lang, Name}, @@ -15011,27 +15958,34 @@ encode_disco_identity({identity, Category, Type, Lang, _xmlns_attrs)))), {xmlel, <<"identity">>, _attrs, _els}. -decode_disco_identity_attr_category(undefined) -> +decode_disco_identity_attr_category(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"category">>, <<"identity">>, - <<"http://jabber.org/protocol/disco#info">>}}); -decode_disco_identity_attr_category(_val) -> _val. + __TopXMLNS}}); +decode_disco_identity_attr_category(__TopXMLNS, _val) -> + _val. encode_disco_identity_attr_category(_val, _acc) -> [{<<"category">>, _val} | _acc]. -decode_disco_identity_attr_type(undefined) -> +decode_disco_identity_attr_type(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"identity">>, - <<"http://jabber.org/protocol/disco#info">>}}); -decode_disco_identity_attr_type(_val) -> _val. + __TopXMLNS}}); +decode_disco_identity_attr_type(__TopXMLNS, _val) -> + _val. encode_disco_identity_attr_type(_val, _acc) -> [{<<"type">>, _val} | _acc]. -'decode_disco_identity_attr_xml:lang'(undefined) -> +'decode_disco_identity_attr_xml:lang'(__TopXMLNS, + undefined) -> undefined; -'decode_disco_identity_attr_xml:lang'(_val) -> _val. +'decode_disco_identity_attr_xml:lang'(__TopXMLNS, + _val) -> + _val. 'encode_disco_identity_attr_xml:lang'(undefined, _acc) -> @@ -15039,16 +15993,19 @@ encode_disco_identity_attr_type(_val, _acc) -> 'encode_disco_identity_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. -decode_disco_identity_attr_name(undefined) -> undefined; -decode_disco_identity_attr_name(_val) -> _val. +decode_disco_identity_attr_name(__TopXMLNS, + undefined) -> + undefined; +decode_disco_identity_attr_name(__TopXMLNS, _val) -> + _val. encode_disco_identity_attr_name(undefined, _acc) -> _acc; encode_disco_identity_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_block_list({xmlel, <<"blocklist">>, _attrs, - _els}) -> +decode_block_list(__TopXMLNS, + {xmlel, <<"blocklist">>, _attrs, _els}) -> {block_list}. encode_block_list({block_list}, _xmlns_attrs) -> @@ -15056,24 +16013,26 @@ encode_block_list({block_list}, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"blocklist">>, _attrs, _els}. -decode_unblock({xmlel, <<"unblock">>, _attrs, _els}) -> - Items = decode_unblock_els(_els, []), {unblock, Items}. +decode_unblock(__TopXMLNS, + {xmlel, <<"unblock">>, _attrs, _els}) -> + Items = decode_unblock_els(__TopXMLNS, _els, []), + {unblock, Items}. -decode_unblock_els([], Items) -> lists:reverse(Items); -decode_unblock_els([{xmlel, <<"item">>, _attrs, _} = _el - | _els], - Items) -> +decode_unblock_els(__TopXMLNS, [], Items) -> + lists:reverse(Items); +decode_unblock_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"urn:xmpp:blocking">> -> - decode_unblock_els(_els, - case decode_block_item(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_unblock_els(__TopXMLNS, _els, + case decode_block_item(__TopXMLNS, _el) of undefined -> Items; _new_el -> [_new_el | Items] end); - true -> decode_unblock_els(_els, Items) + true -> decode_unblock_els(__TopXMLNS, _els, Items) end; -decode_unblock_els([_ | _els], Items) -> - decode_unblock_els(_els, Items). +decode_unblock_els(__TopXMLNS, [_ | _els], Items) -> + decode_unblock_els(__TopXMLNS, _els, Items). encode_unblock({unblock, Items}, _xmlns_attrs) -> _els = 'encode_unblock_$items'(Items, []), @@ -15085,24 +16044,26 @@ encode_unblock({unblock, Items}, _xmlns_attrs) -> 'encode_unblock_$items'(_els, [encode_block_item(Items, []) | _acc]). -decode_block({xmlel, <<"block">>, _attrs, _els}) -> - Items = decode_block_els(_els, []), {block, Items}. +decode_block(__TopXMLNS, + {xmlel, <<"block">>, _attrs, _els}) -> + Items = decode_block_els(__TopXMLNS, _els, []), + {block, Items}. -decode_block_els([], Items) -> lists:reverse(Items); -decode_block_els([{xmlel, <<"item">>, _attrs, _} = _el - | _els], - Items) -> +decode_block_els(__TopXMLNS, [], Items) -> + lists:reverse(Items); +decode_block_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"urn:xmpp:blocking">> -> - decode_block_els(_els, - case decode_block_item(_el) of + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_block_els(__TopXMLNS, _els, + case decode_block_item(__TopXMLNS, _el) of undefined -> Items; _new_el -> [_new_el | Items] end); - true -> decode_block_els(_els, Items) + true -> decode_block_els(__TopXMLNS, _els, Items) end; -decode_block_els([_ | _els], Items) -> - decode_block_els(_els, Items). +decode_block_els(__TopXMLNS, [_ | _els], Items) -> + decode_block_els(__TopXMLNS, _els, Items). encode_block({block, Items}, _xmlns_attrs) -> _els = 'encode_block_$items'(Items, []), @@ -15114,78 +16075,89 @@ encode_block({block, Items}, _xmlns_attrs) -> 'encode_block_$items'(_els, [encode_block_item(Items, []) | _acc]). -decode_block_item({xmlel, <<"item">>, _attrs, _els}) -> - Jid = decode_block_item_attrs(_attrs, undefined), Jid. +decode_block_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + Jid = decode_block_item_attrs(__TopXMLNS, _attrs, + undefined), + Jid. -decode_block_item_attrs([{<<"jid">>, _val} | _attrs], - _Jid) -> - decode_block_item_attrs(_attrs, _val); -decode_block_item_attrs([_ | _attrs], Jid) -> - decode_block_item_attrs(_attrs, Jid); -decode_block_item_attrs([], Jid) -> - decode_block_item_attr_jid(Jid). +decode_block_item_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid) -> + decode_block_item_attrs(__TopXMLNS, _attrs, _val); +decode_block_item_attrs(__TopXMLNS, [_ | _attrs], + Jid) -> + decode_block_item_attrs(__TopXMLNS, _attrs, Jid); +decode_block_item_attrs(__TopXMLNS, [], Jid) -> + decode_block_item_attr_jid(__TopXMLNS, Jid). encode_block_item(Jid, _xmlns_attrs) -> _els = [], _attrs = encode_block_item_attr_jid(Jid, _xmlns_attrs), {xmlel, <<"item">>, _attrs, _els}. -decode_block_item_attr_jid(undefined) -> +decode_block_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"jid">>, <<"item">>, - <<"urn:xmpp:blocking">>}}); -decode_block_item_attr_jid(_val) -> + {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); +decode_block_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"item">>, - <<"urn:xmpp:blocking">>}}); + {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_block_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_privacy({xmlel, <<"query">>, _attrs, _els}) -> - {Lists, Default, Active} = decode_privacy_els(_els, [], - undefined, undefined), +decode_privacy(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + {Lists, Default, Active} = + decode_privacy_els(__TopXMLNS, _els, [], undefined, + undefined), {privacy, Lists, Default, Active}. -decode_privacy_els([], Lists, Default, Active) -> +decode_privacy_els(__TopXMLNS, [], Lists, Default, + Active) -> {lists:reverse(Lists), Default, Active}; -decode_privacy_els([{xmlel, <<"list">>, _attrs, _} = _el - | _els], - Lists, Default, Active) -> - _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_els(_els, - [decode_privacy_list(_el) | Lists], Default, - Active); - true -> decode_privacy_els(_els, Lists, Default, Active) +decode_privacy_els(__TopXMLNS, + [{xmlel, <<"list">>, _attrs, _} = _el | _els], Lists, + Default, Active) -> + _xmlns = get_attr(<<"xmlns">>, _attrs), + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_els(__TopXMLNS, _els, + [decode_privacy_list(__TopXMLNS, _el) | Lists], + Default, Active); + true -> + decode_privacy_els(__TopXMLNS, _els, Lists, Default, + Active) end; -decode_privacy_els([{xmlel, <<"default">>, _attrs, _} = - _el - | _els], - Lists, Default, Active) -> +decode_privacy_els(__TopXMLNS, + [{xmlel, <<"default">>, _attrs, _} = _el | _els], Lists, + Default, Active) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_els(_els, Lists, - decode_privacy_default_list(_el), Active); - true -> decode_privacy_els(_els, Lists, Default, Active) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_els(__TopXMLNS, _els, Lists, + decode_privacy_default_list(__TopXMLNS, _el), + Active); + true -> + decode_privacy_els(__TopXMLNS, _els, Lists, Default, + Active) end; -decode_privacy_els([{xmlel, <<"active">>, _attrs, _} = - _el - | _els], - Lists, Default, Active) -> +decode_privacy_els(__TopXMLNS, + [{xmlel, <<"active">>, _attrs, _} = _el | _els], Lists, + Default, Active) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_els(_els, Lists, Default, - decode_privacy_active_list(_el)); - true -> decode_privacy_els(_els, Lists, Default, Active) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_els(__TopXMLNS, _els, Lists, Default, + decode_privacy_active_list(__TopXMLNS, _el)); + true -> + decode_privacy_els(__TopXMLNS, _els, Lists, Default, + Active) end; -decode_privacy_els([_ | _els], Lists, Default, - Active) -> - decode_privacy_els(_els, Lists, Default, Active). +decode_privacy_els(__TopXMLNS, [_ | _els], Lists, + Default, Active) -> + decode_privacy_els(__TopXMLNS, _els, Lists, Default, + Active). encode_privacy({privacy, Lists, Default, Active}, _xmlns_attrs) -> @@ -15209,20 +16181,23 @@ encode_privacy({privacy, Lists, Default, Active}, 'encode_privacy_$active'(Active, _acc) -> [encode_privacy_active_list(Active, []) | _acc]. -decode_privacy_active_list({xmlel, <<"active">>, _attrs, - _els}) -> - Name = decode_privacy_active_list_attrs(_attrs, - undefined), +decode_privacy_active_list(__TopXMLNS, + {xmlel, <<"active">>, _attrs, _els}) -> + Name = decode_privacy_active_list_attrs(__TopXMLNS, + _attrs, undefined), Name. -decode_privacy_active_list_attrs([{<<"name">>, _val} - | _attrs], - _Name) -> - decode_privacy_active_list_attrs(_attrs, _val); -decode_privacy_active_list_attrs([_ | _attrs], Name) -> - decode_privacy_active_list_attrs(_attrs, Name); -decode_privacy_active_list_attrs([], Name) -> - decode_privacy_active_list_attr_name(Name). +decode_privacy_active_list_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name) -> + decode_privacy_active_list_attrs(__TopXMLNS, _attrs, + _val); +decode_privacy_active_list_attrs(__TopXMLNS, + [_ | _attrs], Name) -> + decode_privacy_active_list_attrs(__TopXMLNS, _attrs, + Name); +decode_privacy_active_list_attrs(__TopXMLNS, [], + Name) -> + decode_privacy_active_list_attr_name(__TopXMLNS, Name). encode_privacy_active_list(Name, _xmlns_attrs) -> _els = [], @@ -15230,28 +16205,35 @@ encode_privacy_active_list(Name, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"active">>, _attrs, _els}. -decode_privacy_active_list_attr_name(undefined) -> none; -decode_privacy_active_list_attr_name(_val) -> _val. +decode_privacy_active_list_attr_name(__TopXMLNS, + undefined) -> + none; +decode_privacy_active_list_attr_name(__TopXMLNS, + _val) -> + _val. encode_privacy_active_list_attr_name(none, _acc) -> _acc; encode_privacy_active_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_privacy_default_list({xmlel, <<"default">>, - _attrs, _els}) -> - Name = decode_privacy_default_list_attrs(_attrs, - undefined), +decode_privacy_default_list(__TopXMLNS, + {xmlel, <<"default">>, _attrs, _els}) -> + Name = decode_privacy_default_list_attrs(__TopXMLNS, + _attrs, undefined), Name. -decode_privacy_default_list_attrs([{<<"name">>, _val} - | _attrs], - _Name) -> - decode_privacy_default_list_attrs(_attrs, _val); -decode_privacy_default_list_attrs([_ | _attrs], Name) -> - decode_privacy_default_list_attrs(_attrs, Name); -decode_privacy_default_list_attrs([], Name) -> - decode_privacy_default_list_attr_name(Name). +decode_privacy_default_list_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name) -> + decode_privacy_default_list_attrs(__TopXMLNS, _attrs, + _val); +decode_privacy_default_list_attrs(__TopXMLNS, + [_ | _attrs], Name) -> + decode_privacy_default_list_attrs(__TopXMLNS, _attrs, + Name); +decode_privacy_default_list_attrs(__TopXMLNS, [], + Name) -> + decode_privacy_default_list_attr_name(__TopXMLNS, Name). encode_privacy_default_list(Name, _xmlns_attrs) -> _els = [], @@ -15259,44 +16241,48 @@ encode_privacy_default_list(Name, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"default">>, _attrs, _els}. -decode_privacy_default_list_attr_name(undefined) -> +decode_privacy_default_list_attr_name(__TopXMLNS, + undefined) -> none; -decode_privacy_default_list_attr_name(_val) -> _val. +decode_privacy_default_list_attr_name(__TopXMLNS, + _val) -> + _val. encode_privacy_default_list_attr_name(none, _acc) -> _acc; encode_privacy_default_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_privacy_list({xmlel, <<"list">>, _attrs, - _els}) -> - Items = decode_privacy_list_els(_els, []), - Name = decode_privacy_list_attrs(_attrs, undefined), +decode_privacy_list(__TopXMLNS, + {xmlel, <<"list">>, _attrs, _els}) -> + Items = decode_privacy_list_els(__TopXMLNS, _els, []), + Name = decode_privacy_list_attrs(__TopXMLNS, _attrs, + undefined), {privacy_list, Name, Items}. -decode_privacy_list_els([], Items) -> +decode_privacy_list_els(__TopXMLNS, [], Items) -> lists:reverse(Items); -decode_privacy_list_els([{xmlel, <<"item">>, _attrs, - _} = - _el - | _els], - Items) -> +decode_privacy_list_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_list_els(_els, - [decode_privacy_item(_el) | Items]); - true -> decode_privacy_list_els(_els, Items) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_list_els(__TopXMLNS, _els, + [decode_privacy_item(__TopXMLNS, _el) + | Items]); + true -> decode_privacy_list_els(__TopXMLNS, _els, Items) end; -decode_privacy_list_els([_ | _els], Items) -> - decode_privacy_list_els(_els, Items). +decode_privacy_list_els(__TopXMLNS, [_ | _els], + Items) -> + decode_privacy_list_els(__TopXMLNS, _els, Items). -decode_privacy_list_attrs([{<<"name">>, _val} | _attrs], - _Name) -> - decode_privacy_list_attrs(_attrs, _val); -decode_privacy_list_attrs([_ | _attrs], Name) -> - decode_privacy_list_attrs(_attrs, Name); -decode_privacy_list_attrs([], Name) -> - decode_privacy_list_attr_name(Name). +decode_privacy_list_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], _Name) -> + decode_privacy_list_attrs(__TopXMLNS, _attrs, _val); +decode_privacy_list_attrs(__TopXMLNS, [_ | _attrs], + Name) -> + decode_privacy_list_attrs(__TopXMLNS, _attrs, Name); +decode_privacy_list_attrs(__TopXMLNS, [], Name) -> + decode_privacy_list_attr_name(__TopXMLNS, Name). encode_privacy_list({privacy_list, Name, Items}, _xmlns_attrs) -> @@ -15310,96 +16296,89 @@ encode_privacy_list({privacy_list, Name, Items}, 'encode_privacy_list_$items'(_els, [encode_privacy_item(Items, []) | _acc]). -decode_privacy_list_attr_name(undefined) -> +decode_privacy_list_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"name">>, <<"list">>, - <<"jabber:iq:privacy">>}}); -decode_privacy_list_attr_name(_val) -> _val. + {missing_attr, <<"name">>, <<"list">>, __TopXMLNS}}); +decode_privacy_list_attr_name(__TopXMLNS, _val) -> _val. encode_privacy_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_privacy_item({xmlel, <<"item">>, _attrs, - _els}) -> - Kinds = decode_privacy_item_els(_els, []), +decode_privacy_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + Kinds = decode_privacy_item_els(__TopXMLNS, _els, []), {Action, Order, Type, Value} = - decode_privacy_item_attrs(_attrs, undefined, undefined, - undefined, undefined), + decode_privacy_item_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined), {privacy_item, Order, Action, Type, Value, Kinds}. -decode_privacy_item_els([], Kinds) -> +decode_privacy_item_els(__TopXMLNS, [], Kinds) -> lists:reverse(Kinds); -decode_privacy_item_els([{xmlel, <<"message">>, _attrs, - _} = - _el - | _els], +decode_privacy_item_els(__TopXMLNS, + [{xmlel, <<"message">>, _attrs, _} = _el | _els], Kinds) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_item_els(_els, Kinds); - true -> decode_privacy_item_els(_els, Kinds) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_item_els(__TopXMLNS, _els, Kinds); + true -> decode_privacy_item_els(__TopXMLNS, _els, Kinds) end; -decode_privacy_item_els([{xmlel, <<"iq">>, _attrs, _} = - _el - | _els], - Kinds) -> +decode_privacy_item_els(__TopXMLNS, + [{xmlel, <<"iq">>, _attrs, _} = _el | _els], Kinds) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_item_els(_els, Kinds); - true -> decode_privacy_item_els(_els, Kinds) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_item_els(__TopXMLNS, _els, Kinds); + true -> decode_privacy_item_els(__TopXMLNS, _els, Kinds) end; -decode_privacy_item_els([{xmlel, <<"presence-in">>, - _attrs, _} = - _el - | _els], +decode_privacy_item_els(__TopXMLNS, + [{xmlel, <<"presence-in">>, _attrs, _} = _el | _els], Kinds) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_item_els(_els, Kinds); - true -> decode_privacy_item_els(_els, Kinds) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_item_els(__TopXMLNS, _els, Kinds); + true -> decode_privacy_item_els(__TopXMLNS, _els, Kinds) end; -decode_privacy_item_els([{xmlel, <<"presence-out">>, - _attrs, _} = - _el - | _els], +decode_privacy_item_els(__TopXMLNS, + [{xmlel, <<"presence-out">>, _attrs, _} = _el | _els], Kinds) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:privacy">> -> - decode_privacy_item_els(_els, Kinds); - true -> decode_privacy_item_els(_els, Kinds) - end; -decode_privacy_item_els([_ | _els], Kinds) -> - decode_privacy_item_els(_els, Kinds). - -decode_privacy_item_attrs([{<<"action">>, _val} - | _attrs], - _Action, Order, Type, Value) -> - decode_privacy_item_attrs(_attrs, _val, Order, Type, - Value); -decode_privacy_item_attrs([{<<"order">>, _val} - | _attrs], - Action, _Order, Type, Value) -> - decode_privacy_item_attrs(_attrs, Action, _val, Type, - Value); -decode_privacy_item_attrs([{<<"type">>, _val} | _attrs], - Action, Order, _Type, Value) -> - decode_privacy_item_attrs(_attrs, Action, Order, _val, - Value); -decode_privacy_item_attrs([{<<"value">>, _val} - | _attrs], - Action, Order, Type, _Value) -> - decode_privacy_item_attrs(_attrs, Action, Order, Type, - _val); -decode_privacy_item_attrs([_ | _attrs], Action, Order, - Type, Value) -> - decode_privacy_item_attrs(_attrs, Action, Order, Type, - Value); -decode_privacy_item_attrs([], Action, Order, Type, + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_privacy_item_els(__TopXMLNS, _els, Kinds); + true -> decode_privacy_item_els(__TopXMLNS, _els, Kinds) + end; +decode_privacy_item_els(__TopXMLNS, [_ | _els], + Kinds) -> + decode_privacy_item_els(__TopXMLNS, _els, Kinds). + +decode_privacy_item_attrs(__TopXMLNS, + [{<<"action">>, _val} | _attrs], _Action, Order, Type, Value) -> - {decode_privacy_item_attr_action(Action), - decode_privacy_item_attr_order(Order), - decode_privacy_item_attr_type(Type), - decode_privacy_item_attr_value(Value)}. + decode_privacy_item_attrs(__TopXMLNS, _attrs, _val, + Order, Type, Value); +decode_privacy_item_attrs(__TopXMLNS, + [{<<"order">>, _val} | _attrs], Action, _Order, Type, + Value) -> + decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, + _val, Type, Value); +decode_privacy_item_attrs(__TopXMLNS, + [{<<"type">>, _val} | _attrs], Action, Order, _Type, + Value) -> + decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, + Order, _val, Value); +decode_privacy_item_attrs(__TopXMLNS, + [{<<"value">>, _val} | _attrs], Action, Order, Type, + _Value) -> + decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, + Order, Type, _val); +decode_privacy_item_attrs(__TopXMLNS, [_ | _attrs], + Action, Order, Type, Value) -> + decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, + Order, Type, Value); +decode_privacy_item_attrs(__TopXMLNS, [], Action, Order, + Type, Value) -> + {decode_privacy_item_attr_action(__TopXMLNS, Action), + decode_privacy_item_attr_order(__TopXMLNS, Order), + decode_privacy_item_attr_type(__TopXMLNS, Type), + decode_privacy_item_attr_value(__TopXMLNS, Value)}. encode_privacy_item({privacy_item, Order, Action, Type, Value, Kinds}, @@ -15434,45 +16413,43 @@ encode_privacy_item({privacy_item, Order, Action, Type, [encode_privacy_presence_out(Kinds, []) | _acc]). -decode_privacy_item_attr_action(undefined) -> +decode_privacy_item_attr_action(__TopXMLNS, + undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"action">>, <<"item">>, - <<"jabber:iq:privacy">>}}); -decode_privacy_item_attr_action(_val) -> + {missing_attr, <<"action">>, <<"item">>, __TopXMLNS}}); +decode_privacy_item_attr_action(__TopXMLNS, _val) -> case catch dec_enum(_val, [allow, deny]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"action">>, <<"item">>, - <<"jabber:iq:privacy">>}}); + __TopXMLNS}}); _res -> _res end. encode_privacy_item_attr_action(_val, _acc) -> [{<<"action">>, enc_enum(_val)} | _acc]. -decode_privacy_item_attr_order(undefined) -> +decode_privacy_item_attr_order(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"order">>, <<"item">>, - <<"jabber:iq:privacy">>}}); -decode_privacy_item_attr_order(_val) -> + {missing_attr, <<"order">>, <<"item">>, __TopXMLNS}}); +decode_privacy_item_attr_order(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"order">>, <<"item">>, - <<"jabber:iq:privacy">>}}); + {bad_attr_value, <<"order">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_privacy_item_attr_order(_val, _acc) -> [{<<"order">>, enc_int(_val)} | _acc]. -decode_privacy_item_attr_type(undefined) -> undefined; -decode_privacy_item_attr_type(_val) -> +decode_privacy_item_attr_type(__TopXMLNS, undefined) -> + undefined; +decode_privacy_item_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [group, jid, subscription]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"type">>, <<"item">>, - <<"jabber:iq:privacy">>}}); + {bad_attr_value, <<"type">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -15480,15 +16457,17 @@ encode_privacy_item_attr_type(undefined, _acc) -> _acc; encode_privacy_item_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. -decode_privacy_item_attr_value(undefined) -> undefined; -decode_privacy_item_attr_value(_val) -> _val. +decode_privacy_item_attr_value(__TopXMLNS, undefined) -> + undefined; +decode_privacy_item_attr_value(__TopXMLNS, _val) -> + _val. encode_privacy_item_attr_value(undefined, _acc) -> _acc; encode_privacy_item_attr_value(_val, _acc) -> [{<<"value">>, _val} | _acc]. -decode_privacy_presence_out({xmlel, <<"presence-out">>, - _attrs, _els}) -> +decode_privacy_presence_out(__TopXMLNS, + {xmlel, <<"presence-out">>, _attrs, _els}) -> 'presence-out'. encode_privacy_presence_out('presence-out', @@ -15497,8 +16476,8 @@ encode_privacy_presence_out('presence-out', _attrs = _xmlns_attrs, {xmlel, <<"presence-out">>, _attrs, _els}. -decode_privacy_presence_in({xmlel, <<"presence-in">>, - _attrs, _els}) -> +decode_privacy_presence_in(__TopXMLNS, + {xmlel, <<"presence-in">>, _attrs, _els}) -> 'presence-in'. encode_privacy_presence_in('presence-in', @@ -15507,7 +16486,8 @@ encode_privacy_presence_in('presence-in', _attrs = _xmlns_attrs, {xmlel, <<"presence-in">>, _attrs, _els}. -decode_privacy_iq({xmlel, <<"iq">>, _attrs, _els}) -> +decode_privacy_iq(__TopXMLNS, + {xmlel, <<"iq">>, _attrs, _els}) -> iq. encode_privacy_iq(iq, _xmlns_attrs) -> @@ -15515,8 +16495,8 @@ encode_privacy_iq(iq, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"iq">>, _attrs, _els}. -decode_privacy_message({xmlel, <<"message">>, _attrs, - _els}) -> +decode_privacy_message(__TopXMLNS, + {xmlel, <<"message">>, _attrs, _els}) -> message. encode_privacy_message(message, _xmlns_attrs) -> @@ -15524,31 +16504,33 @@ encode_privacy_message(message, _xmlns_attrs) -> _attrs = _xmlns_attrs, {xmlel, <<"message">>, _attrs, _els}. -decode_roster({xmlel, <<"query">>, _attrs, _els}) -> - Items = decode_roster_els(_els, []), - Ver = decode_roster_attrs(_attrs, undefined), +decode_roster(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + Items = decode_roster_els(__TopXMLNS, _els, []), + Ver = decode_roster_attrs(__TopXMLNS, _attrs, + undefined), {roster, Items, Ver}. -decode_roster_els([], Items) -> lists:reverse(Items); -decode_roster_els([{xmlel, <<"item">>, _attrs, _} = _el - | _els], - Items) -> +decode_roster_els(__TopXMLNS, [], Items) -> + lists:reverse(Items); +decode_roster_els(__TopXMLNS, + [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:roster">> -> - decode_roster_els(_els, - [decode_roster_item(_el) | Items]); - true -> decode_roster_els(_els, Items) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_roster_els(__TopXMLNS, _els, + [decode_roster_item(__TopXMLNS, _el) | Items]); + true -> decode_roster_els(__TopXMLNS, _els, Items) end; -decode_roster_els([_ | _els], Items) -> - decode_roster_els(_els, Items). +decode_roster_els(__TopXMLNS, [_ | _els], Items) -> + decode_roster_els(__TopXMLNS, _els, Items). -decode_roster_attrs([{<<"ver">>, _val} | _attrs], - _Ver) -> - decode_roster_attrs(_attrs, _val); -decode_roster_attrs([_ | _attrs], Ver) -> - decode_roster_attrs(_attrs, Ver); -decode_roster_attrs([], Ver) -> - decode_roster_attr_ver(Ver). +decode_roster_attrs(__TopXMLNS, + [{<<"ver">>, _val} | _attrs], _Ver) -> + decode_roster_attrs(__TopXMLNS, _attrs, _val); +decode_roster_attrs(__TopXMLNS, [_ | _attrs], Ver) -> + decode_roster_attrs(__TopXMLNS, _attrs, Ver); +decode_roster_attrs(__TopXMLNS, [], Ver) -> + decode_roster_attr_ver(__TopXMLNS, Ver). encode_roster({roster, Items, Ver}, _xmlns_attrs) -> _els = 'encode_roster_$items'(Items, []), @@ -15560,62 +16542,69 @@ encode_roster({roster, Items, Ver}, _xmlns_attrs) -> 'encode_roster_$items'(_els, [encode_roster_item(Items, []) | _acc]). -decode_roster_attr_ver(undefined) -> undefined; -decode_roster_attr_ver(_val) -> _val. +decode_roster_attr_ver(__TopXMLNS, undefined) -> + undefined; +decode_roster_attr_ver(__TopXMLNS, _val) -> _val. encode_roster_attr_ver(undefined, _acc) -> _acc; encode_roster_attr_ver(_val, _acc) -> [{<<"ver">>, _val} | _acc]. -decode_roster_item({xmlel, <<"item">>, _attrs, _els}) -> - Groups = decode_roster_item_els(_els, []), +decode_roster_item(__TopXMLNS, + {xmlel, <<"item">>, _attrs, _els}) -> + Groups = decode_roster_item_els(__TopXMLNS, _els, []), {Jid, Name, Subscription, Ask} = - decode_roster_item_attrs(_attrs, undefined, undefined, - undefined, undefined), + decode_roster_item_attrs(__TopXMLNS, _attrs, undefined, + undefined, undefined, undefined), {roster_item, Jid, Name, Groups, Subscription, Ask}. -decode_roster_item_els([], Groups) -> +decode_roster_item_els(__TopXMLNS, [], Groups) -> lists:reverse(Groups); -decode_roster_item_els([{xmlel, <<"group">>, _attrs, - _} = - _el - | _els], +decode_roster_item_els(__TopXMLNS, + [{xmlel, <<"group">>, _attrs, _} = _el | _els], Groups) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:roster">> -> - decode_roster_item_els(_els, - [decode_roster_group(_el) | Groups]); - true -> decode_roster_item_els(_els, Groups) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_roster_item_els(__TopXMLNS, _els, + [decode_roster_group(__TopXMLNS, _el) + | Groups]); + true -> decode_roster_item_els(__TopXMLNS, _els, Groups) end; -decode_roster_item_els([_ | _els], Groups) -> - decode_roster_item_els(_els, Groups). +decode_roster_item_els(__TopXMLNS, [_ | _els], + Groups) -> + decode_roster_item_els(__TopXMLNS, _els, Groups). -decode_roster_item_attrs([{<<"jid">>, _val} | _attrs], - _Jid, Name, Subscription, Ask) -> - decode_roster_item_attrs(_attrs, _val, Name, +decode_roster_item_attrs(__TopXMLNS, + [{<<"jid">>, _val} | _attrs], _Jid, Name, Subscription, + Ask) -> + decode_roster_item_attrs(__TopXMLNS, _attrs, _val, Name, Subscription, Ask); -decode_roster_item_attrs([{<<"name">>, _val} | _attrs], - Jid, _Name, Subscription, Ask) -> - decode_roster_item_attrs(_attrs, Jid, _val, +decode_roster_item_attrs(__TopXMLNS, + [{<<"name">>, _val} | _attrs], Jid, _Name, + Subscription, Ask) -> + decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, _val, Subscription, Ask); -decode_roster_item_attrs([{<<"subscription">>, _val} - | _attrs], - Jid, Name, _Subscription, Ask) -> - decode_roster_item_attrs(_attrs, Jid, Name, _val, Ask); -decode_roster_item_attrs([{<<"ask">>, _val} | _attrs], - Jid, Name, Subscription, _Ask) -> - decode_roster_item_attrs(_attrs, Jid, Name, +decode_roster_item_attrs(__TopXMLNS, + [{<<"subscription">>, _val} | _attrs], Jid, Name, + _Subscription, Ask) -> + decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, + _val, Ask); +decode_roster_item_attrs(__TopXMLNS, + [{<<"ask">>, _val} | _attrs], Jid, Name, Subscription, + _Ask) -> + decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, Subscription, _val); -decode_roster_item_attrs([_ | _attrs], Jid, Name, - Subscription, Ask) -> - decode_roster_item_attrs(_attrs, Jid, Name, +decode_roster_item_attrs(__TopXMLNS, [_ | _attrs], Jid, + Name, Subscription, Ask) -> + decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, Subscription, Ask); -decode_roster_item_attrs([], Jid, Name, Subscription, - Ask) -> - {decode_roster_item_attr_jid(Jid), - decode_roster_item_attr_name(Name), - decode_roster_item_attr_subscription(Subscription), - decode_roster_item_attr_ask(Ask)}. +decode_roster_item_attrs(__TopXMLNS, [], Jid, Name, + Subscription, Ask) -> + {decode_roster_item_attr_jid(__TopXMLNS, Jid), + decode_roster_item_attr_name(__TopXMLNS, Name), + decode_roster_item_attr_subscription(__TopXMLNS, + Subscription), + decode_roster_item_attr_ask(__TopXMLNS, Ask)}. encode_roster_item({roster_item, Jid, Name, Groups, Subscription, Ask}, @@ -15633,38 +16622,40 @@ encode_roster_item({roster_item, Jid, Name, Groups, 'encode_roster_item_$groups'(_els, [encode_roster_group(Groups, []) | _acc]). -decode_roster_item_attr_jid(undefined) -> +decode_roster_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, - {missing_attr, <<"jid">>, <<"item">>, - <<"jabber:iq:roster">>}}); -decode_roster_item_attr_jid(_val) -> + {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); +decode_roster_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"jid">>, <<"item">>, - <<"jabber:iq:roster">>}}); + {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_roster_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. -decode_roster_item_attr_name(undefined) -> undefined; -decode_roster_item_attr_name(_val) -> _val. +decode_roster_item_attr_name(__TopXMLNS, undefined) -> + undefined; +decode_roster_item_attr_name(__TopXMLNS, _val) -> _val. encode_roster_item_attr_name(undefined, _acc) -> _acc; encode_roster_item_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. -decode_roster_item_attr_subscription(undefined) -> none; -decode_roster_item_attr_subscription(_val) -> +decode_roster_item_attr_subscription(__TopXMLNS, + undefined) -> + none; +decode_roster_item_attr_subscription(__TopXMLNS, + _val) -> case catch dec_enum(_val, [none, to, from, both, remove]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"subscription">>, <<"item">>, - <<"jabber:iq:roster">>}}); + __TopXMLNS}}); _res -> _res end. @@ -15673,13 +16664,13 @@ encode_roster_item_attr_subscription(none, _acc) -> encode_roster_item_attr_subscription(_val, _acc) -> [{<<"subscription">>, enc_enum(_val)} | _acc]. -decode_roster_item_attr_ask(undefined) -> undefined; -decode_roster_item_attr_ask(_val) -> +decode_roster_item_attr_ask(__TopXMLNS, undefined) -> + undefined; +decode_roster_item_attr_ask(__TopXMLNS, _val) -> case catch dec_enum(_val, [subscribe]) of {'EXIT', _} -> erlang:error({xmpp_codec, - {bad_attr_value, <<"ask">>, <<"item">>, - <<"jabber:iq:roster">>}}); + {bad_attr_value, <<"ask">>, <<"item">>, __TopXMLNS}}); _res -> _res end. @@ -15687,70 +16678,75 @@ encode_roster_item_attr_ask(undefined, _acc) -> _acc; encode_roster_item_attr_ask(_val, _acc) -> [{<<"ask">>, enc_enum(_val)} | _acc]. -decode_roster_group({xmlel, <<"group">>, _attrs, - _els}) -> - Cdata = decode_roster_group_els(_els, <<>>), Cdata. +decode_roster_group(__TopXMLNS, + {xmlel, <<"group">>, _attrs, _els}) -> + Cdata = decode_roster_group_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_roster_group_els([], Cdata) -> - decode_roster_group_cdata(Cdata); -decode_roster_group_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_roster_group_els(_els, +decode_roster_group_els(__TopXMLNS, [], Cdata) -> + decode_roster_group_cdata(__TopXMLNS, Cdata); +decode_roster_group_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_roster_group_els(__TopXMLNS, _els, <>); -decode_roster_group_els([_ | _els], Cdata) -> - decode_roster_group_els(_els, Cdata). +decode_roster_group_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_roster_group_els(__TopXMLNS, _els, Cdata). encode_roster_group(Cdata, _xmlns_attrs) -> _els = encode_roster_group_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"group">>, _attrs, _els}. -decode_roster_group_cdata(<<>>) -> +decode_roster_group_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, - {missing_cdata, <<>>, <<"group">>, - <<"jabber:iq:roster">>}}); -decode_roster_group_cdata(_val) -> _val. + {missing_cdata, <<>>, <<"group">>, __TopXMLNS}}); +decode_roster_group_cdata(__TopXMLNS, _val) -> _val. encode_roster_group_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_version({xmlel, <<"query">>, _attrs, _els}) -> - {Ver, Os, Name} = decode_version_els(_els, undefined, - undefined, undefined), +decode_version(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + {Ver, Os, Name} = decode_version_els(__TopXMLNS, _els, + undefined, undefined, undefined), {version, Name, Ver, Os}. -decode_version_els([], Ver, Os, Name) -> +decode_version_els(__TopXMLNS, [], Ver, Os, Name) -> {Ver, Os, Name}; -decode_version_els([{xmlel, <<"name">>, _attrs, _} = _el - | _els], - Ver, Os, Name) -> +decode_version_els(__TopXMLNS, + [{xmlel, <<"name">>, _attrs, _} = _el | _els], Ver, Os, + Name) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:version">> -> - decode_version_els(_els, Ver, Os, - decode_version_name(_el)); - true -> decode_version_els(_els, Ver, Os, Name) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_version_els(__TopXMLNS, _els, Ver, Os, + decode_version_name(__TopXMLNS, _el)); + true -> + decode_version_els(__TopXMLNS, _els, Ver, Os, Name) end; -decode_version_els([{xmlel, <<"version">>, _attrs, _} = - _el - | _els], - Ver, Os, Name) -> +decode_version_els(__TopXMLNS, + [{xmlel, <<"version">>, _attrs, _} = _el | _els], Ver, + Os, Name) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:version">> -> - decode_version_els(_els, decode_version_ver(_el), Os, - Name); - true -> decode_version_els(_els, Ver, Os, Name) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_version_els(__TopXMLNS, _els, + decode_version_ver(__TopXMLNS, _el), Os, Name); + true -> + decode_version_els(__TopXMLNS, _els, Ver, Os, Name) end; -decode_version_els([{xmlel, <<"os">>, _attrs, _} = _el - | _els], - Ver, Os, Name) -> +decode_version_els(__TopXMLNS, + [{xmlel, <<"os">>, _attrs, _} = _el | _els], Ver, Os, + Name) -> _xmlns = get_attr(<<"xmlns">>, _attrs), - if _xmlns == <<>>; _xmlns == <<"jabber:iq:version">> -> - decode_version_els(_els, Ver, decode_version_os(_el), - Name); - true -> decode_version_els(_els, Ver, Os, Name) + if _xmlns == <<>>; _xmlns == __TopXMLNS -> + decode_version_els(__TopXMLNS, _els, Ver, + decode_version_os(__TopXMLNS, _el), Name); + true -> + decode_version_els(__TopXMLNS, _els, Ver, Os, Name) end; -decode_version_els([_ | _els], Ver, Os, Name) -> - decode_version_els(_els, Ver, Os, Name). +decode_version_els(__TopXMLNS, [_ | _els], Ver, Os, + Name) -> + decode_version_els(__TopXMLNS, _els, Ver, Os, Name). encode_version({version, Name, Ver, Os}, _xmlns_attrs) -> @@ -15773,104 +16769,111 @@ encode_version({version, Name, Ver, Os}, 'encode_version_$name'(Name, _acc) -> [encode_version_name(Name, []) | _acc]. -decode_version_os({xmlel, <<"os">>, _attrs, _els}) -> - Cdata = decode_version_os_els(_els, <<>>), Cdata. +decode_version_os(__TopXMLNS, + {xmlel, <<"os">>, _attrs, _els}) -> + Cdata = decode_version_os_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_version_os_els([], Cdata) -> - decode_version_os_cdata(Cdata); -decode_version_os_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_version_os_els(_els, +decode_version_os_els(__TopXMLNS, [], Cdata) -> + decode_version_os_cdata(__TopXMLNS, Cdata); +decode_version_os_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_version_os_els(__TopXMLNS, _els, <>); -decode_version_os_els([_ | _els], Cdata) -> - decode_version_os_els(_els, Cdata). +decode_version_os_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_version_os_els(__TopXMLNS, _els, Cdata). encode_version_os(Cdata, _xmlns_attrs) -> _els = encode_version_os_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"os">>, _attrs, _els}. -decode_version_os_cdata(<<>>) -> +decode_version_os_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, - {missing_cdata, <<>>, <<"os">>, - <<"jabber:iq:version">>}}); -decode_version_os_cdata(_val) -> _val. + {missing_cdata, <<>>, <<"os">>, __TopXMLNS}}); +decode_version_os_cdata(__TopXMLNS, _val) -> _val. encode_version_os_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_version_ver({xmlel, <<"version">>, _attrs, - _els}) -> - Cdata = decode_version_ver_els(_els, <<>>), Cdata. +decode_version_ver(__TopXMLNS, + {xmlel, <<"version">>, _attrs, _els}) -> + Cdata = decode_version_ver_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_version_ver_els([], Cdata) -> - decode_version_ver_cdata(Cdata); -decode_version_ver_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_version_ver_els(_els, +decode_version_ver_els(__TopXMLNS, [], Cdata) -> + decode_version_ver_cdata(__TopXMLNS, Cdata); +decode_version_ver_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_version_ver_els(__TopXMLNS, _els, <>); -decode_version_ver_els([_ | _els], Cdata) -> - decode_version_ver_els(_els, Cdata). +decode_version_ver_els(__TopXMLNS, [_ | _els], Cdata) -> + decode_version_ver_els(__TopXMLNS, _els, Cdata). encode_version_ver(Cdata, _xmlns_attrs) -> _els = encode_version_ver_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"version">>, _attrs, _els}. -decode_version_ver_cdata(<<>>) -> +decode_version_ver_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, - {missing_cdata, <<>>, <<"version">>, - <<"jabber:iq:version">>}}); -decode_version_ver_cdata(_val) -> _val. + {missing_cdata, <<>>, <<"version">>, __TopXMLNS}}); +decode_version_ver_cdata(__TopXMLNS, _val) -> _val. encode_version_ver_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_version_name({xmlel, <<"name">>, _attrs, - _els}) -> - Cdata = decode_version_name_els(_els, <<>>), Cdata. +decode_version_name(__TopXMLNS, + {xmlel, <<"name">>, _attrs, _els}) -> + Cdata = decode_version_name_els(__TopXMLNS, _els, <<>>), + Cdata. -decode_version_name_els([], Cdata) -> - decode_version_name_cdata(Cdata); -decode_version_name_els([{xmlcdata, _data} | _els], - Cdata) -> - decode_version_name_els(_els, +decode_version_name_els(__TopXMLNS, [], Cdata) -> + decode_version_name_cdata(__TopXMLNS, Cdata); +decode_version_name_els(__TopXMLNS, + [{xmlcdata, _data} | _els], Cdata) -> + decode_version_name_els(__TopXMLNS, _els, <>); -decode_version_name_els([_ | _els], Cdata) -> - decode_version_name_els(_els, Cdata). +decode_version_name_els(__TopXMLNS, [_ | _els], + Cdata) -> + decode_version_name_els(__TopXMLNS, _els, Cdata). encode_version_name(Cdata, _xmlns_attrs) -> _els = encode_version_name_cdata(Cdata, []), _attrs = _xmlns_attrs, {xmlel, <<"name">>, _attrs, _els}. -decode_version_name_cdata(<<>>) -> +decode_version_name_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, - {missing_cdata, <<>>, <<"name">>, - <<"jabber:iq:version">>}}); -decode_version_name_cdata(_val) -> _val. + {missing_cdata, <<>>, <<"name">>, __TopXMLNS}}); +decode_version_name_cdata(__TopXMLNS, _val) -> _val. encode_version_name_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. -decode_last({xmlel, <<"query">>, _attrs, _els}) -> - Text = decode_last_els(_els, <<>>), - Seconds = decode_last_attrs(_attrs, undefined), +decode_last(__TopXMLNS, + {xmlel, <<"query">>, _attrs, _els}) -> + Text = decode_last_els(__TopXMLNS, _els, <<>>), + Seconds = decode_last_attrs(__TopXMLNS, _attrs, + undefined), {last, Seconds, Text}. -decode_last_els([], Text) -> decode_last_cdata(Text); -decode_last_els([{xmlcdata, _data} | _els], Text) -> - decode_last_els(_els, <>); -decode_last_els([_ | _els], Text) -> - decode_last_els(_els, Text). - -decode_last_attrs([{<<"seconds">>, _val} | _attrs], - _Seconds) -> - decode_last_attrs(_attrs, _val); -decode_last_attrs([_ | _attrs], Seconds) -> - decode_last_attrs(_attrs, Seconds); -decode_last_attrs([], Seconds) -> - decode_last_attr_seconds(Seconds). +decode_last_els(__TopXMLNS, [], Text) -> + decode_last_cdata(__TopXMLNS, Text); +decode_last_els(__TopXMLNS, [{xmlcdata, _data} | _els], + Text) -> + decode_last_els(__TopXMLNS, _els, + <>); +decode_last_els(__TopXMLNS, [_ | _els], Text) -> + decode_last_els(__TopXMLNS, _els, Text). + +decode_last_attrs(__TopXMLNS, + [{<<"seconds">>, _val} | _attrs], _Seconds) -> + decode_last_attrs(__TopXMLNS, _attrs, _val); +decode_last_attrs(__TopXMLNS, [_ | _attrs], Seconds) -> + decode_last_attrs(__TopXMLNS, _attrs, Seconds); +decode_last_attrs(__TopXMLNS, [], Seconds) -> + decode_last_attr_seconds(__TopXMLNS, Seconds). encode_last({last, Seconds, Text}, _xmlns_attrs) -> _els = encode_last_cdata(Text, []), @@ -15878,13 +16881,14 @@ encode_last({last, Seconds, Text}, _xmlns_attrs) -> _xmlns_attrs), {xmlel, <<"query">>, _attrs, _els}. -decode_last_attr_seconds(undefined) -> undefined; -decode_last_attr_seconds(_val) -> +decode_last_attr_seconds(__TopXMLNS, undefined) -> + undefined; +decode_last_attr_seconds(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"seconds">>, <<"query">>, - <<"jabber:iq:last">>}}); + __TopXMLNS}}); _res -> _res end. @@ -15892,8 +16896,8 @@ encode_last_attr_seconds(undefined, _acc) -> _acc; encode_last_attr_seconds(_val, _acc) -> [{<<"seconds">>, enc_int(_val)} | _acc]. -decode_last_cdata(<<>>) -> undefined; -decode_last_cdata(_val) -> _val. +decode_last_cdata(__TopXMLNS, <<>>) -> undefined; +decode_last_cdata(__TopXMLNS, _val) -> _val. encode_last_cdata(undefined, _acc) -> _acc; encode_last_cdata(_val, _acc) -> diff --git a/tools/xmpp_codec.hrl b/tools/xmpp_codec.hrl index 80567d7d4..9521d5d1a 100644 --- a/tools/xmpp_codec.hrl +++ b/tools/xmpp_codec.hrl @@ -13,7 +13,8 @@ port = 1080 :: non_neg_integer()}). -record(sm_resume, {h :: non_neg_integer(), - previd :: binary()}). + previd :: binary(), + xmlns :: binary()}). -record(carbons_enable, {}). @@ -40,18 +41,21 @@ from :: any(), to :: any()}). --record(sm_a, {h :: non_neg_integer()}). +-record(sm_a, {h :: non_neg_integer(), + xmlns :: binary()}). -record(starttls_proceed, {}). -record(sm_resumed, {h :: non_neg_integer(), - previd :: binary()}). + previd :: binary(), + xmlns :: binary()}). -record(forwarded, {delay :: #delay{}, sub_els = [] :: [any()]}). -record(sm_enable, {max :: non_neg_integer(), - resume = false :: any()}). + resume = false :: any(), + xmlns :: binary()}). -record(starttls_failure, {}). @@ -63,7 +67,7 @@ -record(p1_ack, {}). --record(feature_sm, {}). +-record(feature_sm, {xmlns :: binary()}). -record(pubsub_item, {id :: binary(), xml_els = [] :: [any()]}). @@ -84,7 +88,7 @@ node :: binary(), publisher :: binary()}). --record(sm_r, {}). +-record(sm_r, {xmlns :: binary()}). -record(muc_actor, {jid :: any(), nick :: binary()}). @@ -108,7 +112,8 @@ -record(sm_enabled, {id :: binary(), location :: binary(), max :: non_neg_integer(), - resume = false :: any()}). + resume = false :: any(), + xmlns :: binary()}). -record(pubsub_event_items, {node :: binary(), retract = [] :: [binary()], @@ -378,7 +383,8 @@ -record(sasl_mechanisms, {list = [] :: [binary()]}). --record(sm_failed, {reason :: atom() | #gone{} | #redirect{}}). +-record(sm_failed, {reason :: atom() | #gone{} | #redirect{}, + xmlns :: binary()}). -record(error, {type :: 'auth' | 'cancel' | 'continue' | 'modify' | 'wait', by :: binary(), diff --git a/tools/xmpp_codec.spec b/tools/xmpp_codec.spec index be18ce307..3e5afd980 100644 --- a/tools/xmpp_codec.spec +++ b/tools/xmpp_codec.spec @@ -2070,16 +2070,18 @@ -xml(feature_sm, #elem{name = <<"sm">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {feature_sm}}). + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {feature_sm, '$xmlns'}, + attrs = [#attr{name = <<"xmlns">>}]}). -xml(sm_enable, #elem{name = <<"enable">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_enable, '$max', '$resume'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_enable, '$max', '$resume', '$xmlns'}, attrs = [#attr{name = <<"max">>, dec = {dec_int, [0, infinity]}, enc = {enc_int, []}}, + #attr{name = <<"xmlns">>}, #attr{name = <<"resume">>, default = false, dec = {dec_bool, []}, @@ -2087,10 +2089,11 @@ -xml(sm_enabled, #elem{name = <<"enabled">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_enabled, '$id', '$location', '$max', '$resume'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_enabled, '$id', '$location', '$max', '$resume', '$xmlns'}, attrs = [#attr{name = <<"id">>}, #attr{name = <<"location">>}, + #attr{name = <<"xmlns">>}, #attr{name = <<"max">>, dec = {dec_int, [0, infinity]}, enc = {enc_int, []}}, @@ -2101,44 +2104,49 @@ -xml(sm_resume, #elem{name = <<"resume">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_resume, '$h', '$previd'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_resume, '$h', '$previd', '$xmlns'}, attrs = [#attr{name = <<"h">>, required = true, dec = {dec_int, [0, infinity]}, enc = {enc_int, []}}, + #attr{name = <<"xmlns">>}, #attr{name = <<"previd">>, required = true}]}). -xml(sm_resumed, #elem{name = <<"resumed">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_resumed, '$h', '$previd'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_resumed, '$h', '$previd', '$xmlns'}, attrs = [#attr{name = <<"h">>, required = true, dec = {dec_int, [0, infinity]}, enc = {enc_int, []}}, + #attr{name = <<"xmlns">>}, #attr{name = <<"previd">>, required = true}]}). -xml(sm_r, #elem{name = <<"r">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_r}}). + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_r, '$xmlns'}, + attrs = [#attr{name = <<"xmlns">>}]}). -xml(sm_a, #elem{name = <<"a">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_a, '$h'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_a, '$h', '$xmlns'}, attrs = [#attr{name = <<"h">>, required = true, dec = {dec_int, [0, infinity]}, - enc = {enc_int, []}}]}). + enc = {enc_int, []}}, + #attr{name = <<"xmlns">>}]}). -xml(sm_failed, #elem{name = <<"failed">>, - xmlns = <<"urn:xmpp:sm:3">>, - result = {sm_failed, '$reason'}, + xmlns = [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], + result = {sm_failed, '$reason', '$xmlns'}, + attrs = [#attr{name = <<"xmlns">>}], refs = [#ref{name = error_bad_request, min = 0, max = 1, label = '$reason'}, #ref{name = error_conflict, -- cgit v1.2.3