%ents; ]>
Tree Transfer Stream Initiation Profile A profile describing metadata for transferring trees of files using stream inititation. &LEGALNOTICE; 0105 Deferred Standards Track Standards XEP-0095 XEP-0096 si-treetransfer &reatmon; 0.3.1 2018-11-03 pep Fix a bunch of typos, batch-style. 0.3 2003-09-22 rwe Updated directory structure from flat to hierarchical. 0.2 2003-07-23 rwe Fixed bad data types in the schema. 0.1 2003-07-09 rwe Initial version.

File transfers of entire trees require a lot more metadata and prior setup to link paths to files with unique ids so that clients can track them. This profile provides a more robust method of defining that metadata so that directory trees can be transfered.

The tree transfer profile is in the "http://jabber.org/protocol/si/profile/tree-transfer" namespace. The profile is fairly simple: it consists of the root element with child elements that specify a directory structure of files with stream ids that will be used for each file.

This profile requires support for the File Transfer profile described in &xep0096;. Once you have accepted this SI, a new SI using the File Transfer profile will be offered for each file in the tree. This profile provides a mapping of files with paths and reserved stream ids which will be used to auto-accept a File Transfer SI that uses that same stream id from the sender.

The root element is <tree> and has two attributes. The attributes are used only during the offer stage of stream initiation:

The size and numfiles attributes MUST be present in the profile.

The only possible child element of the root is <directory/> since there are other specifications that handle single file transfers. The directory structure is sent in a hierarchical manner with nested <directory/> and/or <file/> tags. One or more <file/> elements will be sent, one for each file. One or more <directory/> elements will be sent, one for each directory.

The <directory/> element has one attribute:

The attribute is REQUIRED on each <directory/> element.

The <file/> element has two attributes:

Both attributes are REQUIRED on each <file/> element. The total number of <file> elements MUST equal the numfiles attribute sent in the <tree/> element.

The stream-method that is accepted for a Tree Profile SI MUST be remembered and the subsequent File Transfer SIs MUST NOT provide a Feature Negotiation packet. The stream-method has already been chosen and should be used for all of the streams.

Implementations of this profile MUST support &xep0095; and XEP-0096.

]]> http://jabber.org/protocol/bytestreams ]]> ]]> ]]>

Above is repeated for ft2, ft3, etc...

No interaction with &IANA; is required as a result of this document.

The profile described in this document will be registered with ®ISTRAR; as a valid Stream Initiation profile.

]]>