Тема Основы xml лекция Применение css для отображения xml-документа icon

Тема Основы xml лекция Применение css для отображения xml-документа




Скачати 151.8 Kb.
НазваТема Основы xml лекция Применение css для отображения xml-документа
Дата25.10.2012
Розмір151.8 Kb.
ТипЛекция
1. /XML-Лекция 1. концепция Семантического Веб.doc
2. /XML-Лекция 10. XSL.doc
3. /XML-Лекция 11. Сортировка и фильтрация.doc
4. /XML-Лекция 12. Другие способы отображения XML документов.docx
5. /XML-Лекция 13. XLINK.doc
6. /XML-Лекция 14_RDF.doc
7. /XML-Лекция 15_OWL.doc
8. /XML-Лекция 1_Презентация.docx
9. /XML-Лекция 2. Основы XML.doc
10. /XML-Лекция 3. Создание XML-документов.doc
11. /XML-Лекция 4. Обработка XML в C#.docx
12. /XML-Лекция 5. Создание XML-документов в C#.docx
13. /XML-Лекция 6. Отображение XML-документов в помощью CSS.doc
14. /XML-Лекция 7. Атрибуты и пространства имен.doc
15. /XML-Лекция 8. Определение типа документа.doc
16. /XML-Лекция 9. Схемы XSD.doc
“семантический web и языки информационного обмена”
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план
Тема Обработка документов xml лекция 11. Фильтрация и сортировка данных xml план
Лекция 12. Другие способы отображения xml документов План Связывание xml данных с html страницей с помощью dso
Тема Связь xml документов Лекция 12. Создание ссылок на языке xlink
Стандарты rdf пример практического применения rdf
Языки онтологий Создание онтологий в редакторе Protégé-2000
Тема концепция семантического web
Тема Язык xml лекция Введение
Тема Основы xml лекция Создание и отображение xml-документа
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных
Лекция Создание xml-документов в. Net план Использование класса XmlWriter запись потоков данных Xml Использование dom в. Net Чтение xml-документа с помощью XmlNodeList
Тема Основы xml лекция Применение css для отображения xml-документа
Тема Основы xml лекция 7
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)
Тема xml-схемы – описание структуры документа лекция Описание схемы документа средствами xsd (xml schema Definition language)



Тема 2. Основы XML

Лекция 6. Применение CSS для отображения XML-документа



План

1. Создание каскадной таблицы стилей (CSS)

2. Свойства CSS

3. Импорт других таблиц стилей

4. Задание значений URL

5. Cвязывание таблицы стилей с XML-документом

6. Присваивание значений в таблицах стилей

7. Описание свойств отображения элемента в CSS

1. Создание каскадной таблицы стилей (CSS)


Использование CSS является самым простым методом отображения XML-документа.

CSS представляет собой текстовый файл, обычно с расширением *.сss, который содержит набор правил, сообщающих браузеру, каким образом форматировать и отображать элементы в определенном XML-документе.

Листинг 1 содержит пример простой таблицы каскадных стилей.

InventoryOI .css

/* Имя файла: InventoryOI .css */

BOOK

{display:block; margin-top: 12pt; font-size: 10pt}

TITLE

{font-style:italic}

AUTHOR 

{font-weight:bold}

Эта таблица стилей предназначена для присоединения к XML-документу, содержащему элементы BOOK, TITLE, AUTHOR и представленному в Листинге 2.

Листинг 2

Inventory01.xml



Имя файла: Inventory01.xml -->



 



The Adventures of Huckleberry Finn

Mark Twain

mass market paperback


298

$5.49
 





Leaves of Glass

Walt Whitman

hardcover


462

$7.75
 

 



The Legend of Sleepy Ноllоw

Washington lrving

mass market paperback


98

$2.95
 

 



The Marble Faun

NathanielHawthorne

tradepaperback


473

$10.95
 

 



Моbу-Dick

Herman Melville

hardcover


724

$9.95
 

 



The Portrait of Lady

Henry James

mass market paperback


256

$4.95
 

 



The Scarlet Letter

NathanielHawthorne

trade paperback


253

$4.25
 





The Turn of the Screw

Henry James

trade paperback


384

$3.35
 






Таблица стилей состоит из набора правил. Правило содержит информацию по отображению определенного типа элемента в XML-документе. На рисунке представлено правило для элементов BOOK с указанием его составных частей.

Селектор представляет собой имя типа элемента, к которому относится информация по отображению.





За селектором следует блок объявлений, который ограничивается фигурными скобками ({}) и содержит одно или несколько объявлений, разделяемых точкой с запятой.

Каждое объявление задает установку определенного свойства, такого как размер шрифта, который будет использован для отображения элемента. Объявление состоит из свойства, вслед за которым идет двоеточие, после которого следует значение для данного свойства. Например, следующее объявление устанавливает для свойства font-size (размер шрифта) значение 10pt (10 пунктов).





Таблица стилей может также содержать комментарии. Комментарии в таблице стилей начинаются с символов косой черты и звездочки (/*) и заканчиваются символами звездочки и косой черты (*/). Между этими парами символов-ограничителей вы можете поместить любой текст по вашему желанию.

Примечание. Пустые символы (пробелы, табуляция, пропуски строк) отделяют различные компоненты CSS, такие как отдельные объявления в блоке объявлений.

Пример таблицы стилей, представленной в Листинге 1, содержит следующие объявления:

  • display:block. Помещает пустую строку перед и после текста элемента;

  • margin-top:12pt. Добавляет верхнее поле (отбивку) высотой в 12 пт к тексту элемента;

  • font-size:10pt. Устанавливает размер шрифта, используемого для отображения текста элемента, в 10 пунктов;

  • font-style:italic. Отображает текст элемента курсивом;

  • font-weight:bold. Отображает текст элемента полужирным.

2. Свойства CSS


1. Нечувствительность к регистру в CSS.

В Internet Explorer CSS являются нечувствительными к регистру, в котором набраны символы. Например, следующие записи эквивалентны:

TITLE {font-style:italic} или Title {FONT-STYLE:Italic} или title {Font-Style:ITALIC}


Примечание (очень важное!).

Нечувствительность к регистру в таблицах стилей имеет важное значение. Поскольку XML-документы являются чувствительными к регистру, вы можете иметь два различных типа элемента, имена которых отличаются лишь регистром букв, например, Book и BOOK. В таблице стилей, однако, эти два имени будут отнесены к одному и тому же типу элемента, и вы не сможете назначить им различную установку свойств. Следовательно, если вы предполагаете отображать XML-документ с использованием таблицы стилей, у вас не должно быть типов элементов, имена которых отличаются только регистром одной или нескольких букв.


2. Наследование установок свойств

Набор свойств, которые вы присвоили определенному элементу (например, BOOK), действует на все дочерние элементы, вложенные в него, если только они не переустанавливаются впоследствии для определенного дочернего элемента.

Следующие свойства, однако, являются исключениями и не наследуются дочерними элементами:

  • свойство display;

  • свойства, относящиеся к фону (background-color, background-image, background-repeat и background-position);

  • свойство vertical-align, определяющее выравнивание текста;

  • свойства размещения текста (margin-top и другие).

Например, таблица стиля в Листинге 1 форматирует элемент BOOK следующим образом:

BOOK

{display:block; margin-top: 12pt; font-size: 10pt}


Каждый элемент BOOK имеет пять дочерних элементов.



The Turn of the Screw

Henry James

trade paperback


384

$3.35
 




Поскольку свойство font-size является наследуемым, все дочерние элементы внутри элемента BOOK отображаются с размером шрифта в 10 пунктов. Дочерние элементы, однако, не наследуют установку свойств display и margin-top (свойство margin-top относится к группе свойств размещения текста).

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

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


3. Использование множественных элементов и множественных правил

Вы можете применить одно правило к нескольким элементам, включив все имена элементов в селектор и отделив имена запятыми. Например, следующее правило применяется к типам элементов РОЕМ, TITLE, AUTHOR, DATE и STANZA:


РОЕМ, TITLE, AUTHOR, DATE, STANZA

{display: block;

margin-bottom: 12pt}


Если для группы элементов устанавливается общий набор свойств, вы можете сделать вашу таблицу стилей короче и облегчить ее восприятие, включив все эти элементы в одно правило, вместо того, чтобы дублировать установки в отдельных правилах.

Вы также можете включить определенный тип элемента в более чем одно правило внутри той же самой таблицы стилей. Например, следующие правила оба включают элемент DATE:


РОЕМ, TITLE, AUTHOR, DATE, STANZA

{display:block; margin-bottom: 12pt}

DATE

{font-style:italic}


Первое правило содержит объявление, которое элемент DATE разделяет с другими элементами в списке, а второе - осуществляет дополнительную настройку для элемента DATE - а именно, задает установку свойства, применимого только к этому элементу.


4. Использование контекстуальных селекторов

В селекторе вы можете предварить имя элемента именами одного или нескольких элементов-предков (родительский, родительский плюс родительский родителя и т.д.), и правило будет применено только к элементам с этим именем, которые являются вложенными подобным образом. Селектор, который включает один или несколько элементов-предков, называется контекстуальным (contextual) селектором. Селектор, который не включает имен элементов-предков, называется родовым (generic) селектором.

Если определенное свойство для одного и того же элемента имеет одну установку в правиле с контекстуальным селектором, и другую установку в правиле с родовым селектором, установка в правиле с контекстуальным селектором доминирует, поскольку является более конкретизированной.

Предположим, что следующий элемент является корневым элементом XML-документа:






Santa Fe

New Mexico



California




Следующие правила в присоединяемой таблице стилей заставят браузер отформатировать «New Mexico» обычным шрифтом, a «California» - курсивом:


CITY STATE

{font-styte:normal}

STATE

{font-style: italic}


Хотя содержимое New Mexico элемента STATE отвечает обоим констектуальным селекторам в правиле CITY STATE и родовому селектору в правиле STATE, селектор CITY STATE является более конкретным и, следовательно, имеет приоритет.

Примечание. Не следует помещать запятые между именами элементов в контекстном селекторе. В противном случае правило будет применено ко всем элементам, но не к последнему дочернему элементу в списке.

3. Импорт других таблиц стилей


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

Вот обобщенная форма записи директивы @import, где URLТаблСтил есть полный или относительный URL (Uniform Resource Locator) файла, содержащего таблицу стилей, которую вы хотите импортировать:

@import \x\(URLТаблСтил);

Например, следующая директива (использующая относительный URL), помещенная в начале таблицы стилей в следующем примере импортирует таблицу стилей, содержащуюся в файле Book.css (который должен находиться в той же папке, что и основная таблица стилей):


/* Имя файла: Inventory01.сss */ 

@import url(Book.css); 

BOOK

{display:block;

margin-top: 12pt;

font-size:10pt} 

/* продолжение таблицы стилей... */

Директива @import должна располагаться в начале таблицы стилей перед правилами. Вы можете поместить в начале таблицы стилей несколько директив @import.

Если вы импортируете одну или несколько таблиц стилей, браузер объединяет правила, содержащиеся в основной и импортируемых таблицах стилей. Однако в случае возникновения конфликта правил основная таблица стилей (из файла, в который осуществляется импорт) имеет приоритет над импортируемыми таблицами стилей. Если же вы импортируете несколько таблиц стилей, правила из таблицы стилей, импортированной последней, имеют приоритет над правилами из ранее импортированных таблиц стилей.

4. Задание значений URL


Директива &import и свойство background image требуют указания значения URL для задания местонахождения соответствующего ресурса (таблицы стилей или файла изображения). URL задается так, как указано ниже. Обратите внимание, что нельзя помещать пробелы между url и символом открывающей скобки (.

url(URL)

Вы можете использовать полностью заданный URL, как в следующих примерах:

@import url(http://www.my_domain.com/stylesheets/MyStyles.css);

или частичный URL, который задает относительное местонахождения файла таблицы стилей (имя файла OS).

INVENTORY {background-image:url(Background.gif)}

5. Cвязывание таблицы стилей с XML-документом


Чтобы связать таблицу стилей с XML-документом, вы должны вставить в документ зарезервированную инструкцию по обработке xml-stylesheet. Эта инструкция по обработке имеет следующую общую форму записи, где CSSFilePath есть, URL, задающий местонахождение файла таблицы стилей:



Вы можете использовать полный URL, например:


href="http://www.my_domain.com/lnventory01.css"?>

Чаще используется относительный URL, который задает местонахождение относительно местонахождения XML-документа, содержащего инструкцию по обработке xml-stylesheet, например:





Обычно вы добавляете инструкцию по обработке xml-stylesheet в пролог XML-документа, вслед за объявлением XML.

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

Если вы связали таблицу стилей с XML-документом, вы можете открыть этот документ непосредственно в Internet Explorer.

Вы можете включить в XML-документ более одной таблицы стилей, вставив для каждой из них инструкцию по обработке xml-stylesheet в начале XML-документа, например:












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

6. Присваивание значений в таблицах стилей


В таблицах стилей вы можете присваивать значения свойствам на нескольких различных уровнях. Ниже дано описание основных уровней, на которых вы можете присваивать значение свойству. Уровни представлены в порядке их приоритетов - от высшего к низшему, Когда браузер готовится отобразить элемент, и значение его определенного свойства, например, font-size, конфликтует со значением, присвоенным этому элементу на других уровнях, браузер использует значение, присвоенное на наивысшем уровне приоритета.

  1. Если вы присвоили значение свойству в атрибуте STYLE для определенного элемента в XML-документе, браузер использует это значение при отображении элемента. Например, он отобразит следующий элемент полужирным:

Leaves of Glass

  1. Если вы не установили свойство в атрибуте STYLE, браузер использует значение свойства, объявленного в правиле CSS с контекстуальным селектором (т.е. селектором, который определяет элемент с одним или несколькими его элементами-предками. Предположим, что следующий элемент является элементом Документ XML-документа:







Santa Fe 

New Mexico 



California 



Допустим также, что присоединенная таблица стилей содержит следующие правила:

CITY STATE

{font-style:normal} 

STATE

{font-style:italic}

Браузер использует правило CITY STATE для форматирования элемента "New Mexico" STATE, поскольку оно имеет контекстуальный селектор, и, следовательно, имеет приоритет над правилом STATE, имеющим родовой селектор. Надпись «New Mexico» в результате будет отображена обычным шрифтом.

  1. Если вы не объявили значение определенного свойства в правиле, имеющем соответствующий контекстуальный селектор, браузер использует значение, объявленное в правиле с родовым селектором (т.е. селектором, который включает только имя элемента). Например, для второго компонента рассматриваемой таблицы стилей браузер не найдет соответствующего контекстуального правила для элемента "California" STATE, поэтому использует родовое правило STATE, в результате чего надпись «California» будет отображена курсивом.

  2. Если вы не объявили значение для определенного свойства для элемента в родовом правиле, браузер использует установку свойства, объявленную для ближайшего элемента-предка (родителя, родителя родителя и т.д.). Например, в таблице стилей из Листинга 1 правило для элемента TITLE не присваивает значение для свойства font-size:

InventoryOI .css

/* Имя файла: InventoryOI .css */

BOOK

{display:block; margin-top: 12pt; font-size: 10pt}

TITLE

{font-style:italic}

AUTHOR 

{font-weight:bold}


Следовательно, браузер будет использовать установку свойства font-size для родительского элемента BOOK. В результате текст элемента TITLE будет отображен с размером шрифта 10 пунктов. Этот процесс имеет место только для наследуемого свойства. Для ненаследуемого свойства браузер будет использовать значение свойства по умолчанию.

Устранение конфликтов установки свойств.

Если для определенного свойства установлены конфликтующие значения на одном и том же уровне, то браузер использует последнюю установку, которую он обработал. Например, если два родовых правила для одного элемента имеют конфликтующие установки для свойства font-style, как в следующем примере, браузер использует второе из них, поскольку оно обрабатывается последним:


TITLE, AUTHOR, BINDING, PRICE

(display: block; font-size: 12pt; font-weight:bold; font-style:italic} 

AUTHOR

{font-style:normal}

В этом примере элементы AUTHOR будут отформатированы обычным шрифтом, а не курсивом.

Ниже приведен порядок, в котором браузер обрабатывает правила таблицы стилей:

  • если вы связываете несколько таблиц стилей с документом, использующим инструкцию по обработке xml-stylesheet, браузер обрабатывает таблицы стилей в последовательности, в которой они приведены в инструкции по обработке;

  • если вы импортируете одну или несколько таблиц стилей в другую таблицу стилей с использованием директивы @import, браузер обрабатывает импортированные таблицы стилей перед таблицей, в которую они импортируются. Порядок обработки при этом определяется порядком импорта;

  • в таблице стилей правила обрабатываются в том порядке, в котором они записаны.

7. Описание свойств отображения элемента в CSS


Установка свойства display

Свойство display управляет основным способом отображения текста элемента браузером. Может принимать следующие значения в CSS:

  • block. Браузер всегда помещает пустую строку перед и после текста элемента. В результате текст элемента отображается в отдельном «блоке» с предшествующим текстом выше и последующим текстом ниже. Присвоение значения block позволяет вам форматировать текст, с применением различных свойств обрамления к блоку текста, таких как поля, рамки и отступы. Элемент block похож на абзац в программе текстового процессора, который отделен пробелами от предшествующего и последующего текста, и для которого можно задавать отступы, рамки и т.д.;

  • inline (по умолчанию). Браузер не вставляет пустую строку перед или nocле текста элемента (если только предшествующий текст достиг правой границы окна, и браузер должен перенести текст на следующую строку). Он будет вставлять пустые строки внутри текста элемента только с целью уместить текст в окне. Текст элемента, таким образом, может быть размещен в той же строке, что и предыдущий или последующий текст. Элемент inline аналогичен группе символов внутри абзаца в программе текстового процессора;

  • none. Браузер не отображает элемент. Вы можете использовать эту установку для элементов, несущих информацию, которую вы не хотели бы помещать на экране.

Пример.

BOOK

{display:block; margin-top:12pt; font-size:10pt} 

TITLE

{font-style:italic} 

AUTHOR

{font-weight:bold} 

PAGES

{display:none}


Поскольку свойству display элемента BOOK присвоено значение block, браузер всегда будет помещать пустую строку перед и после текста элемента. Поскольку таблица стилей не присваивает значения свойству display для элементов TITLE, AUTHOR и PRICE (и эти элементы не наследуют значение свойства display от их родительских элементов), браузер воспримет их как элементы inline, что является установкой по умолчанию. Следовательно, браузер не будет помещать пустые строки между этими элементами, и отобразит их все на одной строке.

Поскольку для свойства display элемента PAGES установлено значение none, браузер не отобразит этот элемент.


Задание ключевых слов CSS в качестве значений

Для многих свойств CSS вы можете — или должны - присваивать значение с использованием предопределенных ключевых слов CSS. Свойству color вы можете назначить одно из 16 ключевых слов, которые описывают основные цвета, такие как red (красный), green (зеленый), yellow (желтый) или fuchsia (фуксия), как в следующем примере:

PARA {color red}

Свойству border-style вы можете назначить одно из девяти ключевых слов: solid, dotted, dashed, double, groove, ridge, inset, outset или none. Пример:

SECTION (border-style:solid)

Установка свойств шрифта

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

Имя свойства

Значения

Комментарий

font-family

Arial, Times New Roman, sans-serif и др.

определяет имя шрифта

font-size

small, medium (в 1,5 больше, чем small), large (в 1,5 больше, чем medium).

{font-size:12pt}

устанавливает относительную высоту шрифта.

Можно задавать размер в абсолютных единицах (в пунктах)

font-style

italic, normal

Управляет стилем начертания символов

font-weight

normal, bold, bolder, lighter

Устанавливает плотность (жирность) шрифта

font-variant.

small-caps, normal 

Устанавливает преобразования символов текста в прописные буквы



Практическое занятие. Отображение XML-документа с помощью CSS

Методические указания к выполнению практического занятия

  1. Создать в редакторе Блокнот файл, ввести в него листинг, представленный ниже, заменив названия книг (описать 3 книги)








The Adventures of Huckleberry Finn

Mark Twain

mass market paperback


298

$5.49






Leaves of Grass

Walt Whitman

hardcover


462

$7.75






The Legend of Sleepy Hollow

Washington Irving

mass market paperback


98

$2.95






The Marble Faun

Nathaniel Hawthorne

trade paperback


473

$10.95






Moby-Dick

Herman Melville

hardcover


724

$9.95






The Portrait of a Lady

Henry James

mass market paperback


256

$4.95








  1. Сохранить его под именем Книги.xml


3. Написать для этого файла CSS и сохранить в файле BOOK.xsl

4. Связать файл Книги.xml с файлом BOOK.xsl

5. Отобразить документ в браузере.

Схожі:

Тема Основы xml лекция Применение css для отображения xml-документа iconІнформації про предметну область. Вивчаються основні технології, пов’язані з аналізом І трансформацією xml-документів (xslt та xpath, sax, dom та TrAX), описом структури документів (dtd та xmlschema). Розглядаються також специфікації xlink та xpointer
Вивчення курсу передбачає виконання практичного Інтернет-проекту, основними цілями якого є розробка інформаційної системи з підтримкою...
Тема Основы xml лекция Применение css для отображения xml-документа iconЛекція №9 Основи css що таке css? Визначення правил стилів Коментарі css селектори об'єднання в групу Додаткові селектори css універсальні селектори
Якщо html є балками й цеглами, які становлять структуру будинку, то css є штукатуркою й фарбуванням для його обробки
Тема Основы xml лекция Применение css для отображения xml-документа iconСемантичний Веб І мови інформаційного обміну
Підготувати документ xml для опису свого завдання. Документ повинен мати не менше трьох рівнів вкладеності І атрибути
Тема Основы xml лекция Применение css для отображения xml-документа iconІнформаційна картка про інноваційну розробку
Назва розробки. Інтегрована система підтримки процесу дистанційного навчання xml education system framework (xesf)
Тема Основы xml лекция Применение css для отображения xml-документа iconДокументи
1. /Лекция 1. Основы РС.docx
2. /Лекция...

Тема Основы xml лекция Применение css для отображения xml-документа iconРежимы отображения документа
Разметка страниц – отображает документ в точном соответствии с тем, как он будет выведен на печать; в этом режиме удобно работать...
Тема Основы xml лекция Применение css для отображения xml-документа iconДіловодство ● Документна лінгвістика
Документ як частина системи соціальних комунікацій. Характеристика документа як системного об’єкта. Властивості документа. Ознаки...
Тема Основы xml лекция Применение css для отображения xml-документа iconРазработка Web-сервиса на основе php и Mysql
На платформе Microsoft. Net или J2ee web-сервис представляет собой развитый сервер на основе wsdl (Web Service Definition Language),...
Тема Основы xml лекция Применение css для отображения xml-документа iconПрактическая работа № Тема: Создание шаблонов документов с использованием полей формы, применение макросов
Цель: Научиться создавать шаблоны и использовать стандартные, научиться работать с полями формы, использовать макросы, приобрести...
Тема Основы xml лекция Применение css для отображения xml-документа iconДокументи
1. /4 курс/Mенеджмент.doc
2. /4 курс/_стор_я...

Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи