files.xml — список файлов, предназначенных для просмотра. Этот список должен удовлетворять следующей XML схеме:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="base32Binary">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Za-z2-7]+"></xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="zeroOne">
<xs:restriction base="xs:int">
<xs:enumeration value="0"></xs:enumeration>
<xs:enumeration value="1"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ContainerType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element ref="Directory"></xs:element>
<xs:element ref="File"></xs:element>
<xs:any processContents="lax"></xs:any>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:attribute name="Base" type="xs:string"></xs:attribute>
<xs:attribute name="CID" type="base32Binary"></xs:attribute>
<xs:attribute name="Generator" type="xs:string"></xs:attribute>
<xs:attribute name="Incomplete" type="zeroOne" default="0"></xs:attribute>
<xs:attribute name="Name" type="xs:string"></xs:attribute>
<xs:attribute name="Size" type="xs:int"></xs:attribute>
<xs:attribute name="Version" type="xs:int"></xs:attribute>
<xs:element name="FileListing">
<xs:complexType>
<xs:complexContent>
<xs:extension base="ContainerType">
<xs:attribute ref="CID" use="required"></xs:attribute>
<xs:attribute ref="Version" use="required"></xs:attribute>
<xs:attribute ref="Generator" use="optional"></xs:attribute>
<xs:attribute ref="Base" use="required"></xs:attribute>
<xs:anyAttribute processContents="lax"></xs:anyAttribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Directory">
<xs:complexType>
<xs:complexContent>
<xs:extension base="ContainerType">
<xs:attribute ref="Name" use="required"></xs:attribute>
<xs:anyAttribute processContents="lax"></xs:anyAttribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="File">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded"></xs:any>
</xs:sequence>
<xs:attribute ref="Name" use="required"></xs:attribute>
<xs:attribute ref="Size" use="required"></xs:attribute>
<xs:anyAttribute processContents="lax"></xs:anyAttribute>
</xs:complexType>
</xs:element>
</xs:schema>
Пример файл–листа:
<FileListing Version="1" CID="mycid" Generator="DC++ 0.701" Base="/">
<Directory Name="share">
<Directory Name="DC++ Prerelease">
<File Name="DCPlusPlus.pdb" Size="17648640" TTH="xxx" />
<File Name="DCPlusPlus.exe" Size="946176" TTH="yyy" />
</Directory>
<File Name="ADC.txt" Size="154112" TTH="zzz" />
</Directory>
<!-- Только при использовании частичного файл-листа -->
<Directory Name="share2" Incomplete="1"/>
</FileListing>
«encoding» должен быть всегда установлен в UTF-8. Клиенты должны иметь возможность оперировать с XML фалами как с BOM (byte order mark), так и без такового.
«Version» не изменяется, если не изменяется структура файла.
«CID» — это CID клиента, который генерирует файл–лист.
«Generator» — это опция для информативной цели.
«Base» — используется в частичных файл–листах, но также должно присутствовать и в простых файл–листах.
«Incomplete» — сигнализирует о том, что в частичном файл–листе содержатся не включённые в список пункты. «1» — означает, что директория содержит не включённые в список пункты, «0» — не содержит таковых. Incomplete="0" — по умолчанию и таким образом может быть опущено.
Дополнительная информация может быть добавлена в файл расширениями/дополнениями, но не гарантировано, что эта информация будет прочитана другими клиентами
Оригинал (by Setuper): http://mydc.ru/index.html?showtopic=2033&view=findpost&p=16556