Спецификация RSSB формата

Для того, что бы понять, как строится RSSB файл, достаточно взглянуть на его краткое представление (структуру).

<?xml version="1.0" encoding="windows-1251"?>

    <rss version="2.0" xmlns:bfs="http://www.bfs.ru/rssb/">
      <channel>
        <title>....</title>
        <category>...</category>
        <link>...</link>
        <description>...</description>
        ....
        <item>
          <bfs:Action actiontype="sale" />
          <bfs:Price pricetype="..">...</bfs:Price>
          <title>...</title>
          <description>...</description>
          <bfs:Country>...</bfs:Country>
          <bfs:Region>...</bfs:Region>
          <bfs:City>...</bfs:City>
          <link>...</link>
          <guid>...</guid>
          <pubDate>...</pubDate>
          .....
        </item>
        ...
      </channel>
    </rss>

Ниже эта схема будет разобрана подробно.

Более полное представление структуры формата можно найти в этом примере

Если Вы уже встречались с форматом RSS и знакомы с языком разметки XML, проанализировать формат RSSB не составит труда. Как уже упоминалось выше, формат RSSB основывается на формате RSS версии 2.0. Поэтому для совместимости были сохранены основные поля RSS и добавленные новые, четко определенные поля для передачи бизнес информации.

Как и любой правильный XML файл, формат требует определения версии и языка документа:

<? xml version ="1.0" encoding ="windows-1251"?>

Формат RSSB объявляется строкой, указывающей на совместимость с форматом RSS 2.0 и поддержкой дополнительного пространства имен bfs – необходимого для передачи бизнес информации:

<rss version="2.0" xmlns:bfs="http://www.bfs.ru/rssb">

Далее в структуре документа следует объявление параметров канала после поля <channel> и передаваемые элементы канала <item>...</item>.

Многие из полей формата RSSB являются необязательными, но есть и обязательные поля, отсутствие которых может привести к ошибкам и Ваш документ в этом случае не будет валидным (valid).

Обязательные поля описания канала:

Поле Описание
<title> Заголовок канала. Основной элемент, по которому люди смогут идентифицировать Ваш канал. Используйте заголовки умеренной длины и максимально информативные.
<title>BFS.RU продажа готового бизнеса</title>
<link> Ссылка на Ваш сайт. Ссылка должна вести на главную страницу Вашего сайта или на соответствующий каналу раздел.
<link>http://www.bfs.ru/sale.asp</link>
<description> Описание канала. Описание должно не повторять заголовок, а его дополнять и расшифровывать.
<description>Заявки на продажу готового бизнеса и дополнительная информация</description>
<item> В элементе item содержится вся информация заявки (бизнес-единицы). Подробно его поля рассмотрены ниже.
<item>..</item>

Дополнительные поля описания канала:

Поле Описание
<language> Язык, на котором написан канал.
<language>ru</language>
<copyright> Информация о владельце канала.
<copyright>Форум готового бизнеса BFS.RU</copyright>
<pubDate> Дата последнего обновления канала. Если прибавить к ней число, содержащееся в поле ttl (мин) можно примерно вычислить время, когда информация канала будет обновлена. Дата должна быть указана в точном формате GMT - как указано в примере ниже.
<pubDate>Fri, 06 May 2005 11:36:50 GMT</pubDate>
<generator> Информация о программе, генерирующей канал.
<generator>XML.RSSB.Generator</generator>
<docs> Ссылка на страницу с документацией по формату RSSB. Так как этот формат разработан BFS.RU, поле должно содержать следующую ссылку:
<docs>http://www.bfs.ru/rssb/</docs>
<ttl> Поле указывает время в минутах, через которое обновляется данный канал.
<ttl>360</ttl>
<image> Поле, содержащее иллюстрации. Обычно в нем размещается логотип канала. Дополнительные поля содержат url, link, title - для размещенного изображения. Размер изображения не должен превышать 144X400.
    <image>
    <url>http://www.bfs.ru/images/bfs_rss.gif</url>
    <link>http://www.bfs.ru</link>
    <title>Форум Готового Бизнеса</title>
    </image>

После завершения описания канала идет описание элементов (бизнес-единиц) канала:

Бизнес-единицы размещаются в полях <item>...</item>. Канал может содержать неограниченное число этих полей, что позволяет выгружать большое количество информации. Обычно используется 10-15 полей.

Все перечисляемые ниже поля разделены на 3 группы:

  • 1. Обязательные поля, наследованные из RSS.
  • 2. Обязательные поля, используемые форматом RSSB
  • 3. Дополнительные поля, использование которые не обязательно, но желательно для более четкого описания бизнес единицы.

Все поля 2-й и 3-й группы могут содержать дополнительные атрибут name. Это атрибут предназначен, чтобы избежать двусмысленности в значении поля. В этом атрибуте можно дать краткое описание значения представленного в поле. Например:

<bfs:Product name="Выпускаемая продукция">Товары народного потребления: мясные продукты</bfs:Product>

Описание бизнес-единиц (содержится в полях ):

Поле Описание
1. Обязательные поля, наследованные из RSS.
<title> Название бизнес-единицы
<title>АЗС 60км</title>
<link> Ссылка на страницу с дополнительной (или полной) информацией, например на HTML-страницу сервера. Если на сервере есть форма связи с владельцем бизнес-единицы, также можно использовать эту ссылку для связи с ним, чтобы исключить СПАМ.
<link>http://www.bfs.ru/viewrequest.asp?rqid=2345</link>
<description> Описание бизнес-единицы.
<description>АЗС находится в г. Белгороде на земельном участке 12 соток, земля в бессрочной аренде….</description>
<guid> Идентификатор бизнес-единицы - должен быть УНИКАЛЬНЫМ в пределах базы сайта, для того, чтобы при обмене информацией между сайтами не происходило дублирование единиц.
<guid>A840E5B1-3590-4717-8DC6-5EFCD843EB79</guid>
<pubDate> Дата публикации бизнес-единицы. Дата должна быть указана в точном формате GMT - как указано в примере ниже.
<pubDate>Fri, 06 May 2005 11:36:50 GMT</pubDate>
2. Обязательные поля, используемые форматом RSSB
<bfs:Action> Поле-флаг, определяющее тип бизнес-единицы. Атрибут actiontype может содержать одно из допустимых значений: buy,sale,invest,project - что соответствует продаже бизнеса, покупке бизнеса, инвестированию, проекту для инвестирования.
<bfs:Action actiontype="buy"/>
<bfs:Price> Поле цены. Указывает цену, тип цены (pricetype) и валюту (cur). Для обязательного атрибута pricetype возможны два варианта - fixed и float, что соответствует фиксированной цене и договорной цене. Атрибут cur - необязательный, он указывает валюту, в которой представлена цена, по умолчанию это USD (также возможны usd,euro,rubls).
<bfs:Price pricetype="fixed" cur="usd">4000.00</bfs:Price>
<bfs:BusinessField> Поле для указания вида деятельности – должно быть кратким и информативным.
<bfs:BusinessField>Туризм</bfs:BusinessField>
<bfs:Country> Страна происхождения бизнес-единицы
<bfs:Country>Россия</bfs:Country>
<bfs:City> Город происхождения бизнес-единицы
<bfs:City>Москва</bfs:City>
3. Дополнительные поля бизнес-единицы.
<bfs:CorpName> Наименование компании-владельца (бизнеса, проекта, предложения)
<bfs:CorpName>Регион-Центр-Инвест</bfs:CorpName>
<bfs:LegalForm> Организационно-правовая форма компании-владельца
<bfs:LegalForm> Общество с ограниченной ответственностью </bfs:LegalForm>
<bfs:CorpOwners> Учредители (акционеры) компании-владельца
<bfs:CorpOwners>Физические лица </bfs:CorpOwners>
<bfs:Assets> Активы (фонды) бизнес-единицы
<bfs:Assets> 4х-этажное капитальное здание со всеми коммуникациями и оборудованием площадью около 5000 кв.м., …, специализированный производственный корпус, одноэтажное здание, ремонтно-механический цех, площадью 896,3 кв.м., с парком 30 станков … </bfs:Assets>
<bfs:Comment> Поле дополнительных сведений, не указанных в прочих элементах
<bfs:Comment> Надежный рентабельный бизнес, сложившийся контингент клиентов, административный ресурс ...</bfs:Comment>
<bfs:BusinessAge> Возраст (планируемый срок деятельности)
<bfs:BusinessAge>3 года </bfs:BusinessAge>
<bfs:Product> Производимые услуги или продукция
<bfs:Product> Заправка автотехники всеми видами топлива, автосервис, магазин ... </bfs:Product>
<bfs:Terms> Поле для описания условий сделки (сотрудничества)
<bfs:Terms> Продажа АЗС - как имущественного комплекса, финансовый аудит…, страхование сделки …</bfs:Terms>
<bfs:Share> Процент участия, покупаемая или продаваемая доля
<bfs:Share>100%</bfs:Share>
<bfs:PayBack> Срок окупаемости вложений
<bfs:PayBack>1 год </bfs:PayBack>
<bfs:Personnel> Поле для описания персонала
<bfs:Personnel>Слаженная, квалифицированная команда. Курсы специальной подготовки …</bfs:Personnel>
<bfs:EmplNum> Количество работников
<bfs:EmplNum>20 человек, в том числе 3 управленца</bfs:EmplNum>
<bfs:FinRatios> Поле для описания финансовых показателей бизнес-единицы
<bfs:FinRatios>Коэффициент внутренней рентабельности 63%, Окупаемость проекта 6 месяцев, коэффициент ликвидности, оценка рисков … </bfs:FinRatios>
<bfs:CapitalRet> Доходность на вложенный капитал
<bfs:CapitalRet> 58% годовых в USD </bfs:CapitalRet>
<bfs:Region> Регион происхождение бизнес-единицы (для РФ)
<bfs:Region>Центральный</bfs:Region>
<bfs:Income> Выручка (оборот)
<bfs:Income>210000 USD в мес.</bfs:Income>
<bfs:Margin> Маржинальный доход
<bfs:Margin> 75000 USD в мес.</bfs:Margin>
<bfs:Outlay> Затраты на содержание бизнес-единицы
<bfs:Outlay>85000 USD в мес., включая ФОТ</bfs:Outlay>
<bfs:AssetsCost> Стоимость активов (фондов) бизнес-единицы
<bfs:AssetsCost>950000 USD</bfs:AssetsCost>
<bfs:WageFund> Фонд оплаты труда
<bfs:WageFund> 42000 USD в месяц</bfs:WageFund>
<bfs:DocList> Перечень имеющейся (требующейся) документации к бизнес-единице
<bfs:DocList> Финансовая отчетность, полный пакет разрешительной документации, бизнес-план…</bfs:DocList>

* В представлении базы BFS.RU все финансовые показатели бизнес-единиц, если не указано иное, указаны в USD.

Несколько важных замечаний.

Файл RSSB на сервере размещается с расширением .rss – для совместимости с пользовательскими агрегаторами. Так же рекомендуется создать файл opml.xml или chanel.opml, как список всеx доступных каналов сервера (см. пример – список RSS и RSSB каналов BFS.RU). О OPML формате можно прочесть в статьях про RSS на нашем портале.

Рекомендуется использовать кодировку "windows-1251" или "utf-8"

Для соответствия формату RSSB, предоставляемый сервером файл должен точно соответствовать требованиям, указанным в данной спецификации. Для проверки корректности файла можно воспользоваться нашим валидатором, он проанализирует и сообщит вам о неточностях или ошибках допущенных в файле.

Все требования, изложенные в данной спецификации, консолидированы в DTD (rssb.dtd), который можно использовать для построения RSSB файла.

Для приведения RSSB файла в более удобную для прочтения форму XML, можно воспользоваться файлом преобразования XSL (rssb.xsl). Этот файл поможет преобразовать XML файл к дизайну Вашего сайта, и сделать его, тем самым, читаемым пользователями без использования агрегатора. Для того чтобы подсоединить файл к вашему RSSB файлу, добавьте в него (после декларации xml) строку:


<?xml-stylesheet type="text/xsl" href="rssb.xsl" version="1.0"?>


При этом сохраните свой вариант rssb.xsl в текущей папке, где сохранен RSSB файл.

Поле <guid> - содержит уникальный идентификатор заявки. Если вы получаете заявки из чужого RSSB канала, поле guid поможет избежать дублирования в базе. Если же вы создаете RSSB канал, используйте уникальный номер для каждой бизнес единицы. Для этого можно воспользоваться генератором newid() из T-SQL или же System.Guid.NewGuid() - из Net Framework.

Если нужно использовать HTML теги в текстовом содержание полей, нужно использовать оператор <![CDATA[..HTMLкод..]>.

Примеры загрузки/выгрузки и применения RSSB файлов разобраны в разделе "Создание RSSB-канала"

Приложение 1. DTD (rssb.dtd)

<!--
DTD for RSSB format
(c) Vendor BFS.RU www.bfs.ru
Created 21/05/2005
Alexander Ivanov
-->
<!ELEMENT rss (channel)>
<!ATTLIST rss version  CDATA #REQUIRED>
<!ATTLIST rss xmlns:bfs CDATA #FIXED "http://www.bfs.ru/rssb/">
<!ELEMENT channel (title | link | description | language? | rating? | image? | textinput? | copyright? | pubDate? | lastBuildDate? | docs? | managingEditor? | webMaster? | skipHours? | skipDays? | generator? | ttl? | category? | item+ )*>
<!ELEMENT title (#PCDATA)>
<!ELEMENT generator (#PCDATA)>
<!ELEMENT ttl (#PCDATA)>
<!ELEMENT category (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ELEMENT image (title | url | link | width? | height? | description?)*>
<!ELEMENT url (#PCDATA)>
<!ELEMENT textinput (title | description | name | link)*>
<!ELEMENT name (#PCDATA)>
<!ELEMENT rating (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT width (#PCDATA)>
<!ELEMENT height (#PCDATA)>
<!ELEMENT copyright (#PCDATA)>
<!ELEMENT pubDate (#PCDATA)>
<!ELEMENT lastBuildDate (#PCDATA)>
<!ELEMENT docs (#PCDATA)>
<!ELEMENT managingEditor (#PCDATA)>
<!ELEMENT webMaster (#PCDATA)>
<!ELEMENT hour (#PCDATA)>
<!ELEMENT day (#PCDATA)>
<!ELEMENT skipHours (hour+)>
<!ELEMENT skipDays (day+)>
<!ELEMENT source (#PCDATA)>
<!ELEMENT comments (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT guid (#PCDATA)>
<!ELEMENT enclosure (#PCDATA)>
<!ATTLIST enclosure
url CDATA #REQUIRED
type CDATA #REQUIRED
>
<!--RSSB Filds-->
<!ELEMENT bfs:Personnel (#PCDATA)>
<!ATTLIST bfs:Personnel name CDATA #IMPLIED>
<!ELEMENT bfs:City (#PCDATA)>
<!ATTLIST bfs:City name CDATA #IMPLIED>
<!ELEMENT bfs:DocList (#PCDATA)>
<!ATTLIST bfs:DocList name CDATA #IMPLIED>
<!ELEMENT bfs:EmplNum (#PCDATA)>
<!ATTLIST bfs:EmplNum name CDATA #IMPLIED>
<!ELEMENT bfs:AssetsCost (#PCDATA)>
<!ATTLIST bfs:AssetsCost name CDATA #IMPLIED>
<!ELEMENT bfs:Product (#PCDATA)>
<!ATTLIST bfs:Product name CDATA #IMPLIED>
<!ELEMENT bfs:CorpName (#PCDATA)>
<!ATTLIST bfs:CorpName name CDATA #IMPLIED>
<!ELEMENT bfs:Margin (#PCDATA)>
<!ATTLIST bfs:Margin name CDATA #IMPLIED>
<!ELEMENT bfs:Outlay (#PCDATA)>
<!ATTLIST bfs:Outlay name CDATA #IMPLIED>
<!ELEMENT bfs:Share (#PCDATA)>
<!ATTLIST bfs:Share name CDATA #IMPLIED>
<!ELEMENT bfs:Terms (#PCDATA)>
<!ATTLIST bfs:Terms name CDATA #IMPLIED>
<!ELEMENT bfs:Region (#PCDATA)>
<!ATTLIST bfs:Region name CDATA #IMPLIED>
<!ELEMENT bfs:Country (#PCDATA)>
<!ATTLIST bfs:Country name CDATA #IMPLIED>
<!ELEMENT bfs:BusinessField (#PCDATA)>
<!ATTLIST bfs:BusinessField name CDATA #IMPLIED>
<!ELEMENT bfs:LegalForm (#PCDATA)>
<!ATTLIST bfs:LegalForm name CDATA #IMPLIED>
<!ELEMENT bfs:CorpOwners (#PCDATA)>
<!ATTLIST bfs:CorpOwners name CDATA #IMPLIED>
<!ELEMENT bfs:Assets (#PCDATA)>
<!ATTLIST bfs:Assets name CDATA #IMPLIED>
<!ELEMENT bfs:Comment (#PCDATA)>
<!ATTLIST bfs:Comment name CDATA #IMPLIED>
<!ELEMENT bfs:FinRatios (#PCDATA)>
<!ATTLIST bfs:FinRatios name CDATA #IMPLIED>
<!ELEMENT bfs:BusinessAge (#PCDATA)>
<!ATTLIST bfs:BusinessAge
name CDATA #IMPLIED
>
<!ELEMENT bfs:Action EMPTY>
<!ATTLIST bfs:Action actiontype (buy|sale|invest|project) #REQUIRED>
<!ELEMENT bfs:Price (#PCDATA)>
<!ATTLIST bfs:Price pricetype (fixed|float) #REQUIRED>
<!ATTLIST bfs:Price
name CDATA #IMPLIED
cur (usd|rubls|euro) #IMPLIED
>
<!ELEMENT bfs:WageFund (#PCDATA)>
<!ATTLIST bfs:WageFund
name CDATA #IMPLIED
>
<!ELEMENT bfs:Income (#PCDATA)>
<!ATTLIST bfs:Income name CDATA #IMPLIED>
<!ELEMENT bfs:PayBack (#PCDATA)>
<!ATTLIST bfs:PayBack
name CDATA #IMPLIED
>
<!ELEMENT bfs:CapitalRet (#PCDATA)>
<!ATTLIST bfs:CapitalRet name CDATA #IMPLIED>

<!ELEMENT item ( title?, link?, description?, guid?,
bfs:Action?, bfs:Price?, bfs:BusinessField?, bfs:Country?, bfs:City?,
bfs:LegalForm?, bfs:CorpOwners?, bfs:Assets?, bfs:Comment?,
bfs:BusinessAge?, bfs:CapitalRet?, bfs:Region?, bfs:Terms?,
bfs:Income?, bfs:Margin?, bfs:Outlay?, bfs:Share?, bfs:DocList?,
bfs:WageFund?, bfs:EmplNum?, bfs:AssetsCost?, bfs:PayBack?, bfs:Product?, bfs:CorpName?, bfs:Personnel?, bfs:FinRatios?,
source?, comments?, author?, pubDate?, enclosure?, category? )+>

Приложение 2. XSL (rrsb.xsl)

- <!-- XSL for RSSB format (c) Vendor BFS.RU www.bfs.ru Created 21/05/2005 Alexander Ivanov -->
- <xsl:stylesheet version="1.0">
- <xsl:template match="/rss">
- <html>
- <head>
- <title><xsl:value-of select="channel/title"/></title><link rel="stylesheet" type="text/css" href="http://www.bfs.ru/css/bfs.css"/
></head>
- <body>
- <TABLE class="MainTitle" height="100%" border="0" cellspacing="0" width="100%">
- <TR>
- <TD nowrap="" align="right"><img src="http://www.bfs.ru/images/logo.gif
" alt="Форум Готового Бизнеса BFS.RU"/><BR/><b>ФОРУМ ГОТОВОГО БИЗНЕСА</b></TD>
- <TD width="100%">
- <table class="MainTitle">
- <TR>
- <TD width="100%">
- <a class="Head1"><xsl:value-of select="channel/title"/></a></TD>
- <TD>
- <a href=""><img src="http://www.bfs.ru/images/rssb.gif
" alt="Поддерживает RSSB" border="0"/></a></TD></TR>
- <TR>
- <TD colspan="2">
- <b>
- <a class="Link"><xsl:value-of select="channel/description"/></a></b></TD></TR>
- <TR>
- <TD colspan="2"><a href="">HTML версия</a> | <a href="opml.xml">другие каналы</a></TD></TR>
- <TR>
- <TD colspan="2">Последнее обновление: <xsl:value-of select="channel/lastBuildDate"/></TD></TR></table></TD></TR>
- <TR height="100%">
- <TD class="RSS" colspan="2" align="center" Valign="top"><br/><br/>
- <div class="about" ><b>Информация:</b>
Вы обратились к RSSB каналу. Используя программу агрегатор, Вы можете просматривать эту страницу, не посещая портал BFS.RU.</div><br/><br/><xsl:apply-templates select="channel/item"/><br/><br/>
- <div class="about" ><b>Информация:</b>
Вы обратились к RSSB каналу. Используя программу агрегатор, Вы можете просматривать эту страницу, не посещая портал BFS.RU.</div><br/><br/></TD></TR></TABLE>
- <TABLE width="100%">
- <TR>
- <TD colspan="2" align="center">
- <TABLE width="100%" class="DownMenu" border="0">
- <TR>
- <TD nowrap=""><a href="http://www.bfs.ru/
" >главная</a> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/news/">новости</a
> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/userlib/">публикации</a
> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/raitings/">рейтинги</a
> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/feedback.asp">контакты</a
> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/sitemap.asp">карта
сайта</a> |</TD>
- <TD nowrap="" align="center"><a href="http://www.bfs.ru/search.asp">поиск</a
> |</TD>
- <TD nowrap="" width="100%" align="right"><xsl:text disable-output-escaping="yes">&copy;</xsl:text> Форум Готового Бизнеса | Business Forum Stock 2005</TD></TR></TABLE></TD></TR></TABLE></body></html></xsl:template>
- <xsl:template match="channel/item">
- <table class="InfoTable" cellpadding="3" cellspacing="0" width="90%">
- <tr class="Title">
- <td width="1%" align="right"><xsl:number value="position()"/>.</td>
- <td valign="top" align="right"><xsl:apply-templates select="bfs:Action"/>:</td>
- <td><xsl:value-of select="title"/></td></tr><xsl:apply-templates select="description"/><xsl:apply-templates select="bfs:BusinessField"/><xsl:apply-templates select="bfs:Country"/><xsl:apply-templates select="bfs:City"/><xsl:apply-templates select="bfs:Price"/>
- <!--
<xsl:apply-templates select='bfs:CorpName' /><xsl:apply-templates select='bfs:LegalForm' /><xsl:apply-templates select='bfs:CorpOwners' /><xsl:apply-templates select='bfs:Assets' /><xsl:apply-templates select='bfs:Comment' /><xsl:apply-templates select='bfs:BusinessAge' /><xsl:apply-templates select='bfs:Product' /><xsl:apply-templates select='bfs:Terms' /><xsl:apply-templates select='bfs:Share' /><xsl:apply-templates select='bfs:PayBack' /><xsl:apply-templates select='bfs:Personnel' /><xsl:apply-templates select='bfs:FinRatios' /><xsl:apply-templates select='bfs:Region' /><xsl:apply-templates select='bfs:Income' /><xsl:apply-templates select='bfs:Margin' /><xsl:apply-templates select='bfs:Outlay' /><xsl:apply-templates select='bfs:AssetsCost' /><xsl:apply-templates select='bfs:EmplNum' /><xsl:apply-templates select='bfs:WageFund' /><xsl:apply-templates select='pubDate' /> -->
- <tr class="R1"><td/><td valign="top" align="right">Дата размещения:</td>
- <td><xsl:value-of select="substring(pubDate,6,12)"/><xsl:apply-templates select="author"/></td></tr>
- <tr class="R2"><td/><td/>
- <td valign="top"><a href="" target="blank">Посмотреть детали и сделать запрос</a></td></tr></table><BR/><BR/></xsl:template><xsl:template match="bfs:Action[@actiontype='buy']">         Покупка бизнеса</xsl:template><xsl:template match="bfs:Action[@actiontype='sale']">         Продажа бизнеса
</xsl:template>
- <xsl:template match="author">        
(<xsl:value-of select="." disable-output-escaping="yes"/>)</xsl:template>
- <xsl:template match="description">
- <tr class="Group"><td/><td width="10%" nowrap="nowrap" align="right" valign="top">Описание :</td>
- <td valign="top"><xsl:apply-templates select="../enclosure"/><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:BusinessField">
- <tr class="R1"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Country">
- <tr class="R1"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:City">
- <tr class="R1"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Price[@pricetype='fixed']">
- <tr class="R1"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top">
- <a class="Opt"><xsl:value-of select="." disable-output-escaping="yes"/></a></td></tr></xsl:template>
- <xsl:template match="bfs:Price[@pricetype='float']">
- <tr class="R1"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><a class="Opt">договорная</a></td></tr></xsl:template>
- <xsl:template match="bfs:CorpName">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:LegalForm">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:CorpOwners">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Assets">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Comment">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:BusinessAge">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Product">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Terms">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Share">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:PayBack">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Personnel">
- <tr class="R2">
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="guid">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:FinRatios">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Region">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Income">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Margin">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:Outlay">
- <tr class="R2">
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:AssetsCost">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:EmplNum">
- <tr class="R2"><td/>
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="bfs:WageFund">
- <tr class="R2">
- <td width="10%" nowrap="nowrap" align="right" valign="top"><xsl:value-of select="@name"/>:</td>
- <td valign="top"><xsl:value-of select="." disable-output-escaping="yes"/></td></tr></xsl:template>
- <xsl:template match="enclosure[@type='image/gif']|enclosure[@type='image/jpeg']|enclosure[@type='image/jpg']"><img src="
{@url}" align="left"/></xsl:template></xsl:stylesheet>

Спецификация Формата подготовлена 21.04.2005 BFS.RU
разработчики: Александр Иванов, Коновалов Андрей