Модераторы: diadiavova

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных, экспорт в xml 
:(
    Опции темы
nrpe
Дата 21.9.2010, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



Добрый день.
Никак не могу решить задачу, после многодневных поисков пишу к вам.

У меня есть простенькая база данных в excel. Мне нужно выгрузить её на несколько сайтов в формате xml (нужно выгрузить объявления на порталы "из рук в руки", "mail.ru" и д.р.). Но у сторон, кто принимает xml - различные требования к его структуре. MS Office может создавать xml только на основе несложных примитивных xml-схем (об этом даже в ms справке написано). Чаще всего office упирается в "список в списке". Т.е. выражение типа
Код

<test>
 <lala>
   <lolo>12</lolo>
   <lolo>34</lolo>
 </lala>
</test>
для excel недопустимо. И в access мне не удавалось сделать два поля с одним и тем же именем, зато в access есть "подтаблицы", однако при экспорте в xml они становятся обычными таблицами, а не "под".

Я воспользовался xml редактором Altova XMLSpy. У Altova есть дополнительный модуль, который позволяет связать БД и xml-схему (и по идее получить на выходе xml-файл).

Схема, сгенерированная XMLSpy на основе примерочного файла-xml портала "ИРР"
user posted image

Основная часть моей базы данных должна размещаться именно в теге <items>.
XMLSpy в принципе видит все нужные мне теги, атрибуты, поля
user posted image

Но когда дополнительный модуль MapForce генерирует xml-схему (а без этого он не может устанавливать связи с БД) название полей <item> пропадает
user posted image

Видимо, я делаю что-то не так.
Подскажите, пожалуйста, что можно сделать в моём случае?
Огромное спасибо за любую полезную информацию.

(полное описание xml-файла для портала "ИРР" - 1.txt, 7.4 kb и сам примерочный xml)

Это сообщение отредактировал(а) nrpe - 21.9.2010, 01:30
PM MAIL   Вверх
diadiavova
Дата 21.9.2010, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



nrpe, сохрани файл в любом хмл-формате и напиши для него хсл-преобразование. В результате получишь документ той структуры, которая тебе нужна.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 21.9.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



diadiavova, спасибо большое. Не могли бы Вы меня направить чуть конкретнее: можно ли использовать Altova XMLSpy или MapForce для преобразования xsl? Или посоветуйте подходящую программу.
Спасибо.
PM MAIL   Вверх
diadiavova
Дата 21.9.2010, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(nrpe @  21.9.2010,  12:44 Найти цитируемый пост)
 можно ли использовать Altova XMLSpy или MapForce для преобразования xsl?

Я с этими программами не работал, поэтому не знаю какие инструменты там есть. На сколько мне известно, альтова - один из лучших инструментов для работы с хмл, так что преобразование выполнить на на ней можно наверняка, а вот какие там есть инструменты для создания преобразований я не в курсе. Сам я обычно их пишу  руками в хмл-редакторе. 
ХМЛ-формат, создаваемый экселем, достаточно прост для понимания, так что написать для него преобразование совсем нетрудно. Если непонятно как это сделать - выложи небольшой пример исходного документа и что ты хочешь из него получить, тогда можно будет более конкретно говорить как это сделать.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 21.9.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



Спасибо.

Одно объявление из ms office
Код

<ads>
    <offer>
        <id>2</id>
        <deal_type>Rent</deal_type>
        <location type="жилая недвижимость"/>
        <address>Москва г., Авиамоторная м., Красноказарменная </address>
        <price>24 000</price>
        <rooms_num>1</rooms_num>
        <area living="18" kitchen="9" total="38"/>
        <note>Вашему вниманию предлагается однокомнатная квартира.....</note>
        <currency>RUB</currency>
        <foto1>2_1.jpg</foto1>
        <foto2>2_2.jpg</foto2>
        <foto3>2_3.jpg</foto3>
        <foto4>2_4.jpg</foto4>
    </offer>
</ads>


Необходимая структура
Код

<ads>
<ad validfrom="1166440680156" validthru="1167045480156" source-id="00020839000">
  <categories>
    <category hint="Information from newspaper"
    destination="/real-estate/apartments-sale/secondary" />
  </categories>

  <regions>
    <region hint="info from newspaper"
        destination="/russia/moscow-region/moscow/pr-t_vernadskogo_m" />
  </regions>
  <items>
    <item name="offer">продам</item>

    <item name="rooms">1</item>
    <item name="meters-total">30.2</item>
    <item name="meters-living">17.1</item>
    <item name="kitchen">6.2</item>

    <item name="etage">1</item>
    <item name="etage-all">5</item>
    <item name="toilet">Совмещенный</item>
    <item name="telephone">true</item>

    <item name="private">true</item>
    <item name="title">продам 1-комн.кв., Пр-т Вернадского м., 1(5), 30,2 (17,1)
    6,2 кв.м., (с/у совмещенный), телефон, приватизированная</item>
    <item name="description">ул.Коштоянца, косметический ремонт,
    приватизированная, свободна, перспектива сноса</item>
    <item name="phone">111-11-11</item>
    <item name="contact">Виктория</item>
  </items>

  <price currency="USD">140000</price>

 <fotos>
      <foto>
        <url>pictures/img01111.jpg</url>
      </foto>
      <foto>
        <url>pictures/img01112.jpg</url>
      </foto>
</fotos>
</ad>
</ads>


Мне нужно перенести значения:
<id>...</id> в            <ad source-id="...">
<deal_type>...</deal_type> в    <item name="offer">...</item>
<rooms_num> в            <item name="rooms">...</item>

<area living="..." kitchen="..." total="..."/>  в
<item name="meters-living">...</item>
<item name="kitchen">...</item>
<item name="meters-total">...</item>

<note>...</note> в        <item name="title">...</item>

<currency>...</currency> и <price>xxxx</price> в <price currency="...">xxxx</price>

<foto1>2_1.jpg</foto1>
<foto2>2_2.jpg</foto2>
<foto3>2_3.jpg</foto3>
<foto4>2_4.jpg</foto4>
в
 <fotos>
      <foto>
        <url>2_1.jpg</url>
      </foto>
      <foto>
        <url>2_2.jpg</url>
      </foto>
      <foto>
        <url>2_3.jpg</url>
      </foto>
      <foto>
        <url>2_4.jpg</url>
      </foto>
</fotos>


*<ads> </ads> - это границы всего файла, <ad> </ad> и <offer> </offer> - границы одного объявления.

Как Вы пишите преобразование в хмл-редакторе? При помощи php? А в каком редакторе? (вики считает xmlspy тоже редактором)
(извините за мои поверхностные познания о xml, но работа вынудила ознакомиться в кратчайший срок)

Это сообщение отредактировал(а) nrpe - 21.9.2010, 13:57
PM MAIL   Вверх
diadiavova
Дата 21.9.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



nrpe, В твоем примере некоторые данные непонятно откуда берутся, так что я написал, исходя из того, что есть.
Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="//offer/*"/>

    <xsl:template match="/">
        <ads>
            <xsl:apply-templates/>
        </ads>
    </xsl:template>

    <xsl:template match="//offer">
        <ad validfrom="1166440680156" validthru="1167045480156" source-id="{./id}">
            <categories>
                <category hint="Information from newspaper"
                destination="/real-estate/apartments-sale/secondary" />
            </categories>
            <regions>
                <region hint="info from newspaper"
                        destination="/russia/moscow-region/moscow/pr-t_vernadskogo_m" />
            </regions>
            <items>
                <xsl:apply-templates
                    select="*[not(name() = 'currency' or name() = 'price' or starts-with(name(), 'foto'))]"/>
            </items>
            <price currency="{./currency}">
                <xsl:value-of select="./price"/>
            </price>
            <fotos>
                <xsl:for-each select="*[starts-with(name(), 'foto')]">
                    <foto>
                        <url>
                            <xsl:value-of select="."/>
                        </url>
                    </foto>
                </xsl:for-each>
            </fotos>
        </ad>
    </xsl:template>
    <xsl:template match="//deal_type">
        <item name="offer">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>

    <xsl:template match="//rooms_num">
        <item name="rooms">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>

    <xsl:template match="//area_living">
        <item name="meters-living">
            <xsl:value-of select="@living"/>
        </item>
        <item name="kitchen">
            <xsl:value-of select="@kitchen"/>
        </item>
        <item name="meters-total">
            <xsl:value-of select="@total"/>
        </item>
    </xsl:template>

    <xsl:template match="//note">
        <item name="title">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>
</xsl:stylesheet>



На выходе из твоего исходного документа у меня получилось следующее
Код

<?xml version="1.0" encoding="utf-8"?>
<ads>
    <ad validfrom="1166440680156" validthru="1167045480156" source-id="2">
        <categories>
            <category hint="Information from newspaper" destination="/real-estate/apartments-sale/secondary" />
        </categories>
        <regions>
            <region hint="info from newspaper" destination="/russia/moscow-region/moscow/pr-t_vernadskogo_m" />
        </regions>
        <items>
            <item name="offer">Rent</item>
            <item name="rooms">1</item>
            <item name="title">Вашему вниманию предлагается однокомнатная квартира.....</item>
        </items>
        <price currency="RUB">24 000</price>
        <fotos>
            <foto>
                <url>2_1.jpg</url>
            </foto>
            <foto>
                <url>2_2.jpg</url>
            </foto>
            <foto>
                <url>2_3.jpg</url>
            </foto>
            <foto>
                <url>2_4.jpg</url>
            </foto>
        </fotos>
    </ad>
</ads>

Цитата(nrpe @  21.9.2010,  14:56 Найти цитируемый пост)
 При помощи php?

Это уже зависит от задачи, если надо делать это на сервере, то можно и на пхп, а так программ, с помощью которых можно выполнить преобразование, хватает.
Цитата(nrpe @  21.9.2010,  14:56 Найти цитируемый пост)
 А в каком редакторе? 

Да без разницы, хоть в блокноте. Я пользуюсь встроенным хмл-редактором Visual Studio.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 21.9.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



Здорово! Вот это потрясающе, не ожидал таких гибких возможностей преобразования! Спасибо огромное за Ваш вклад. smile
А про данные, которые непонятно  откуда берутся... По-видимому, они просто есть.. По крайней мере мои данные забиваются вручную.
Вы мне буквально уже всё написали... Думаю что написать преобразование из
<area living="..." kitchen="..." total="..."/>
в
<item name="meters-living">...</item>
<item name="kitchen">...</item>
<item name="meters-total">...</item>
мне рано или поздно удастся самому : ) Правда можно этот тег (с тремя переменными одновременно) разделить на три отдельных тега в самом office.
Ещё раз спасибо.
Порекомендуйте, если знаете, что можно почитать новичку о xml (в студенческие года изучали html, pascal, delphi... думаю, освоить начальный xml будет не очень сложно).
PM MAIL   Вверх
diadiavova
Дата 21.9.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(nrpe @  21.9.2010,  16:50 Найти цитируемый пост)
Думаю что написать преобразование из
<area living="..." kitchen="..." total="..."/>
в
<item name="meters-living">...</item>
<item name="kitchen">...</item>
<item name="meters-total">...</item>
мне рано или поздно удастся самому : )

Вообще-то там все есть, я просто ошибся малость и вместо имени area написал area_living. Вот правильный вариант
Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="//offer/*"/>

    <xsl:template match="/">
        <ads>
            <xsl:apply-templates/>
        </ads>
    </xsl:template>

    <xsl:template match="//offer">
        <ad validfrom="1166440680156" validthru="1167045480156" source-id="{./id}">
            <categories>
                <category hint="Information from newspaper"
                destination="/real-estate/apartments-sale/secondary" />
            </categories>
            <regions>
                <region hint="info from newspaper"
                        destination="/russia/moscow-region/moscow/pr-t_vernadskogo_m" />
            </regions>
            <items>
                <xsl:apply-templates
                    select="*[not(name() = 'currency' or name() = 'price' or starts-with(name(), 'foto'))]"/>
            </items>
            <price currency="{./currency}">
                <xsl:value-of select="./price"/>
            </price>
            <fotos>
                <xsl:for-each select="*[starts-with(name(), 'foto')]">
                    <foto>
                        <url>
                            <xsl:value-of select="."/>
                        </url>
                    </foto>
                </xsl:for-each>
            </fotos>
        </ad>
    </xsl:template>
    <xsl:template match="//deal_type">
        <item name="offer">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>

    <xsl:template match="//rooms_num">
        <item name="rooms">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>

    <xsl:template match="//area">
        <item name="meters-living">
            <xsl:value-of select="@living"/>
        </item>
        <item name="kitchen">
            <xsl:value-of select="@kitchen"/>
        </item>
        <item name="meters-total">
            <xsl:value-of select="@total"/>
        </item>
    </xsl:template>

    <xsl:template match="//note">
        <item name="title">
            <xsl:value-of select="."/>
        </item>
    </xsl:template>
</xsl:stylesheet>




--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 22.9.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



Никак не вникну как работает инструкция
<xsl:template match="//offer/*"/>
(окончание "*/" которой делает её уникальной в Вашем коде)

Его отсутствие даёт интересный результат между <itmes> </items>

Код

<items>2<item name="offer">Rent</item>Москва г., Авиамоторная м., Красноказарменная <item name="rooms">1</item><item name="meters-living">18</item><item name="kitchen">9</item><item name="meters-total">38</item><item name="title">Вашему вниманию предлагается однокомнатная квартира. Расположенная в благоустроенном районе г. Москвы с развитой инфраструктурой. Выполнен современный ремонт, имеется вся необходимая мебель и бытовая техника для проживания. Санузел евро-стандарт, выделенная линия интернет, телефон. Дополнительные фотографии на сайте. На все вопросы будем рады ответить по телефону.</item></items>


когда в норме выглядит так

Код

<items>
            <item name="offer">Rent</item>
            <item name="rooms">1</item>
            <item name="meters-living">18</item>
            <item name="kitchen">9</item>
            <item name="meters-total">38</item>
            <item name="title">Вашему вниманию предлагается однокомнатная квартира. Расположенная в благоустроенном районе г. Москвы с развитой инфраструктурой. Выполнен современный ремонт, имеется вся необходимая мебель и бытовая техника для проживания. Санузел евро-стандарт, выделенная линия интернет, телефон. Дополнительные фотографии на сайте. На все вопросы будем рады ответить по телефону.</item>
        </items>


Отличия, которые заметил:
  •  <item name...> начинается с новой строки
  •  после <items> появляется значение <id></id> из исходного документа
  •  после <item name="offer">...</item> появляется значение <address></address> из исходного документа




Необычная функция : ) Не получается найти её описание/работу в гугле.
XMLSpy без проблем выполняет xslt.
Ещё раз Вас благодарю : )

Это сообщение отредактировал(а) nrpe - 22.9.2010, 15:50
PM MAIL   Вверх
diadiavova
Дата 22.9.2010, 15:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(nrpe @  22.9.2010,  16:45 Найти цитируемый пост)
Никак не вникну как работает
<xsl:template match="//offer/*"/>

Для всех элементов-непосредственных потомков элемента offer возвращается пустая строка. Поскольку этот шаблон находится вначале документа, он имеет более низкий приоритет, чем шаблоны, расположенные далее и срабатывает только для тех узлов, для которых нет более высокоприоритетных шаблонов. Когда убираешь этот шаблон, эти узлы обрабатываются по-умолчанию, то есть в конечный документ копируется их текстовое содержимое. Нужного эффекта можно было достичь и по-другому, например, явно указав в apply-template какие узлы нужно обрабатывать.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 22.9.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



А могу ли я сделать копию нескольких элементов? Хотел бы скопировать название элементов и их значение из исходного документа в новый.

Код

<ads>
    <offer>
        <id>2</id>
        <deal_type>Rent</deal_type>
        <location type="жилая недвижимость"/>
        <address>Москва г., Авиамоторная м., Красноказарменная </address>
        <price>24 000</price>
        <rooms_num>1</rooms_num>
        <area living="18" kitchen="9" total="38"/>
        <note>Вашему вниманию предлагается однокомнатная квартира.....</note>
        <currency>RUB</currency>
        <foto1>2_1.jpg</foto1>
        <foto2>2_2.jpg</foto2>
        <foto3>2_3.jpg</foto3>
        <foto4>2_4.jpg</foto4>
    </offer>
</ads>


Т.е. сделать копирование на выход диапазона от <id> </id> до <currency> </currency> 
а затем преобразовывать фотографии (процесс с фотками Вы уже описали).
Спасибо.
PM MAIL   Вверх
diadiavova
Дата 22.9.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Скопировать можно с помощью элемента copy-of, а указать на первые 9 элементов списка можно так
Код

//offer/*[position() &lt; 10]



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 22.9.2010, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



Он копирует значения элементов. А можно ли сделать полную копию?

Так чтобы в исходном документе было
        <price>24 000</price>
        <rooms_num>1</rooms_num>
и на выходе тоже самое
        <price>24 000</price>
        <rooms_num>1</rooms_num>
а не 
24 000
1
PM MAIL   Вверх
diadiavova
Дата 22.9.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(nrpe @  22.9.2010,  18:42 Найти цитируемый пост)
Он копирует значения элементов.

Да нет вообще-то. Просто в то место где должны быть копии вставь
Код

            <xsl:copy-of select="//offer/*[position() &lt; 10]"/>



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
nrpe
Дата 22.9.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.9.2010

Репутация: нет
Всего: нет



А Вы не могли бы написать пример? В процессе экспериментирования он сначала выдавал мне хаос из "значений"... затем выдавал примерно тоже самое только из не читаемых символов (иероглифов)... а потом xmlspy начал зависать.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.