<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE xep SYSTEM 'xep.dtd' [ <!ENTITY % ents SYSTEM 'xep.ent'> %ents; ]> <?xml-stylesheet type='text/xsl' href='xep.xsl'?> <xep> <header> <title>Data Forms XML Element</title> <abstract>This specification defines an XMPP protocol extension for including XML-data in XEP-0004 data forms.</abstract> &LEGALNOTICE; <number>0315</number> <status>Deferred</status> <type>Standards Track</type> <sig>Standards</sig> <dependencies> <spec>XMPP Core</spec> <spec>XEP-0004</spec> </dependencies> <supersedes/> <supersededby/> <shortname>xml-element</shortname> <author> <firstname>Sergey</firstname> <surname>Dobrov</surname> <email>binary@jrudevels.org</email> <jid>binary@jrudevels.org</jid> <uri>http://jrudevels.org/</uri> </author> <revision> <version>0.1.1</version> <date>2019-06-19</date> <initials>fs</initials> <remark><p>Fix shortname and section heading to avoid collision with XEP-0221</p></remark> </revision> <revision> <version>0.1</version> <date>2012-10-15</date> <initials>psa</initials> <remark><p>Initial published version approved for publication by the XMPP Council.</p></remark> </revision> <revision> <version>0.0.2</version> <date>2012-06-21</date> <initials>snd</initials> <remark><p>Root element name changed to "wrapper"; xmlns fixed in the XML-schema.</p></remark> </revision> <revision> <version>0.0.1</version> <date>2012-06-13</date> <initials>snd</initials> <remark><p>Initial version.</p></remark> </revision> </header> <section1 topic='Introduction' anchor='intro'> <p>In certain protocols that make use of &xep0004;, it can be helpful to include XML-data (for example, when we want to insert a big amount of structured data which is hard to insert as a separate fields). This document defines a method for including XML-data in a data form.</p> </section1> <section1 topic='XML Element' anchor='xml-element'> <p>The root element for XML-data is <wrapper/>. This element MUST be qualified by the "urn:xmpp:xml-element" namespace. The <wrapper/> element MUST be contained within a <field/> element qualified by the 'jabber:x:data' namespace.</p> <p>The <wrapper/> element SHOULD contain an XML-data which needs to be represented in a form.</p> <example caption='PubSub Blog Node Metadata'><![CDATA[ <wrapper xmlns='urn:xmpp:xml-element'> <feed xmlns='http://www.w3.org/2005/Atom'> <title>Romeo&apos;s Microblog</title> <id>tag:montague.lit,2008:home</id> <updated>2008-05-08T18:30:02Z</updated> <author> <name>Romeo Montague</name> <uri>xmpp:romeo@montague.lit</uri> </author> </feed> </wrapper> ]]></example> <example caption='Inclusion in Data Form'><![CDATA[ <x xmlns='jabber:x:data' type='form'> [ ... ] <field var='xml-metadata' type='hidden'> <wrapper xmlns='urn:xmpp:xml-element'> <feed xmlns='http://www.w3.org/2005/Atom'> <title>Romeo&apos;s Microblog</title> <id>tag:montague.lit,2008:home</id> <updated>2008-05-08T18:30:02Z</updated> <author> <name>Romeo Montague</name> <uri>xmpp:romeo@montague.lit</uri> </author> </feed> </wrapper> </field> [ ... ] </x> ]]></example> </section1> <section1 topic="Usage Practices"> <p>XML-data is usually hard for manual editing and SHOULD be used only for machine level iteractions. So it's RECOMMENDED to include it in the form as a "hidden" field.</p> <p>However, there are situations when human editing of XML-data may be useful (for example, to see XML-logs of some XMPP-service). In that case it's RECOMMENDED for a client to represent this XML in a pretty formatted form and give an instruments to make it easier to edit XML-data.</p> </section1> <section1 topic='IANA Considerations' anchor='iana'> <p>This document requires no interaction with &IANA;.</p> </section1> <section1 topic='XMPP Registrar Considerations' anchor='registrar'> <section2 topic='Protocol Namespaces' anchor='ns'> <p>The ®ISTRAR; includes "urn:xmpp:xml-element" in its registry of protocol namespaces (see &NAMESPACES;).</p> </section2> </section1> <section1 topic='XML Schema' anchor='schema'> <code><![CDATA[ <?xml version='1.0' encoding='UTF-8'?> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='urn:xmpp:xml-element' xmlns='urn:xmpp:xml-element' elementFormDefault='qualified'> <xs:annotation> <xs:documentation> The protocol documented by this schema is defined in XEP-XXXX: http://www.xmpp.org/extensions/xep-xxxx.html </xs:documentation> </xs:annotation> <xs:element name='wrapper'> <xs:complexType> <xs:sequence> <xs:any minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> ]]></code> </section1> </xep>