Лабораторная работа № 1. Создание XML-документа — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Лабораторная работа № 1. Создание XML-документа

2017-09-30 3429
Лабораторная работа № 1. Создание XML-документа 5.00 из 5.00 3 оценки
Заказать работу

 

Теория

 

XML (от англ. eXtensible Markup Language) – расширяемый язык разметки. Он создан для структурирования, хранения и передачи информации. XML – это общий инструмент передачи данных между всеми видами приложений. В языке XML нет предопределенных тегов, автор определет свои языковые теги и свою структуру документа.

Пример XML документа

<?xml version="1.0" encoding="UTF-8"?>

<note>

<to>Анна</to>

<from>Дмитрий</from>

<heading>Напоминание</heading>

<body>Не забудь обо мне в эти выходные!</body>

</note>

Первая строка – это XML декларация. Здесь определяется версия XML (1.0). На следующей строке описывается корневой элемент документа: <note>. Следующие 4 строки описывают дочерние элементы корневого элемента: <to>Анна</to>, <from>Дмитрий</from>, <heading>Напоминание</heading>, <body>Не забудь обо мне в эти выходные!</body>. И, наконец, последняя строка определяет конец корневого элемента: </note>.

Исходя из этого примера, можно смело предположить, что в этом XML документе содержится заметка от Дмитрия к Анне. И все вполне понятно.

 

Правила синтаксиса XML- документа

XML-документы должны удовлетворять следующим правилам:

- все XML элементы должны иметь закрывающий тег;

- теги XML являются регистрозависимыми;

- все элементы обязаны соблюдать корректную вложенность;

- значения атрибутов должны заключаться в кавычки;

- XML документ должен содержать один корневой элемент, который будет родительским для всех других элементов;

- учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).

Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» или «корректно сформированный» XML документ.

Комментарии в XML

<!—это комментарий -->.

 

Подключение файла таблицы стилей

 

<?xml-stylesheet type="text/css" href="1.css"?>.

 

Правила написания имен XML

XML элементы должны следовать следующим правилам написания имен:

- имена могут содержать буквы, числа и другие символы;

- имена не могут начинаться с цифры или символа пунктуации;

- имена не могут начинаться с сочетания "xml" (или XML, или Xml и т.п.);

- имена не могут содержать пробельные символы.

В качестве имен можно использовать любые слова. Нет зарезервированных слов.

 

 

 

Данная таблица была создана XML-документом с подключением css. Структура файла представлена ниже:

 

<?xmlversion="1.0" encoding="UTF-8"?>

<!--FileName: 1.xml>

<?xml-stylesheet type="text/css" href="1.css"?>

<FACULTY>

<SPECIALIZATION>

<NAME>

<TIME>

<EXAM>

<PAGES>

<PASSING>

</SPECIALIZATION>

<SPECIALIZATION>

<NAME>

<TIME>

<EXAM>

<PAGES>

<PASSING>

</SPECIALIZATION>

<SPECIALIZATION>

<NAME>

<TIME>

<EXAM>

<PAGES>

<PASSING>

</SPECIALIZATION>

<SPECIALIZATION>

<NAME>

<TIME>

<EXAM>

<PAGES>

<PASSING>

</SPECIALIZATION>

</FACULTY>

 

В css-файле для каждого тэга описаны свойства:

 

SPECIALIZATION

{ display:block;

text-align:center;

margin:10px 20px 10px 20px;

margin-top:12pt;

border-style:double;

border-color:#8C0088;

font-size:15pt}

NAME

{ font-style:italic;

text-align:center}

TIME

{ display:block;

text-align:center;

font-weight:bold;

border-top:double;

border-color:#8C0088}

EXAM

{ display:block;

text-align:center;

border-top:double;

border-color:#8C0088}

PAGES

{ display:block;

text-align:center;

border-top:double;

border-color:#8C0088}

PASSING

{ display:block;

text-align:center;

border-top:double;

border-color:#8C0088}

FACULTY

{ display:block;

margin:50px 100px;

border-style:solid}

 

Задание к лабораторной работе № 1

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

 

 

Лабораторная работа № 2. Создание валидных XML-документов

 

Валидные XML документы

Валидный XML документ не то же самое, что и синтаксически верный XML документ.

Первое правило для валидного XML документа то, что он должен быть синтаксически верным.

Второе правило – валидный XML документ должен соответствовать определенному типу документов.

Правила, определяющие допустимые элементы и атрибуты для XML документа, называются определениями документа или схемами документа.

С XML можно использовать различные типы определений документа:

- оригинальное определение типа документа (DTD)

- более новый тип определений, основанный на XML, – XML схема.

 

XML DTD

Цель DTD состоит в том, чтобы определить структуру XML документа. Это делается путем определения списка допустимых элементов.

В приведенном ниже примере

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note SYSTEM "Note.dtd">

<note>

<to>Анна</to>

<from>Дмитрий</from>

<heading>Напоминание</heading>

<body>Не забудь обо мне в эти выходные!</body>

</note>

 

декларация DOCTYPE является ссылкой на внешний файл определений типов документа (DTD). Содержимое этого файла показано ниже.

 

<!DOCTYPE note [

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

]>

Приведенное выше DTD интерпретируется следующим образом:

-!DOCTYPE note определяет, что корневым элементом документа является note;

-!ELEMENT note определяет, что элемент note содержит четыре элемента: to, from, heading, body;

-!ELEMENT to определяет, что элемент to должен быть типа "#PCDATA";

-!ELEMENT from определяет, что элемент from должен быть типа "#PCDATA"

-!ELEMENT heading определяет, что элемент heading должен быть типа "#PCDATA"

-!ELEMENT body определяет, что элемент body должен быть типа "#PCDATA"

#PCDATA означает разбираемые текстовые данные.

С DTD XML файл может нести собственный формат и можно быть увереным, что получаемые из внешних источников данные будут корректными.

 

XML схема

Также, как и DTD, XML схемы описывают структуру XML документа. XML документ, прошедший проверку по XML схеме, является "синтаксически верным" и "валидным".

Пример XML схемы

 

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="note">

<xs:complexType>

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

 

Приведенная выше схема интерпретируется следующим образом:

- <xs:element name="note"> определяет элемент "note";

- <xs:complexType> у элемента "note" комплексный тип;

- <xs:sequence> комплексный тип – эпоследовательность элементов;

- <xs:element name="to" type="xs:string"> у элемента "to" строковый тип (текст);

- <xs:element name="from" type="xs:string"> у элемента "from" строковый тип;

- <xs:element name="heading" type="xs:string "> у элемента "heading" строковый тип;

- <xs:element name="body" type="xs:string "> у элемента "body" строковый тип.

Как видно из примера, каждая XML схема состоит с корневого элемента «schema» и обязательного пространства имен «http://www.w3.org/2001/XMLSchema». Далее идет описание схемы и собственно сама схема. При этом очень часто в очень качественных схемах описание бывает куда большим, чем сама XML Schema.

XML схема мощнее DTD, так как:

- XML схема пишется на XML;

- XML схема легко расширяется;

- XML схема поддерживает типы данных;

- XML схема поддерживает пространства имен;

- XML схема поддерживает типы данных.

 

Задание к лабораторной работе № 2

 

На основе прошлой лабораторной работы составьте валидный XML-документ, используя 2 способа: с помощью DTD, а также XML схемы.

 

 

3.3. Лабораторная работа № 3. Отображение XML
с использованием XSLT

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

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

 

<?xml-stylesheet type="text/xsl" href="3.xslt"?>

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

Если вы не связали XML-документ ни с CSS-таблицей, ни с XSL-таблицей стилей, Internet Explorer 5 отобразит документ с помощью встроенной XSL-таблицы, которая используется по умолчанию. Эта таблица стилей отображает исходный XML-текст в виде дерева с возможностью свертывания/развертывания уровней.

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

Каждая XSL-таблица стилей должна иметь элемент Документ, известный как корневой элемент, является XML-элементом верхнего уровня, который содержит все остальные элементы.

 

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheetversion="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

Элемент Документ xsl:stylesheet служит не только хранилищем других элементов, но также идентифицирует документ как XSL-таблицу стилей. Все XSL-элементы принадлежат пространству имен xsl – т. е. вы предваряете имя каждого XSL-элемента префиксом xsl:, обозначающим пространство имен.

Элемент Документ xsl:stylesheet XSL-таблицы стилей должен содержать один или несколько шаблонов элементов, которые для краткости будем называть шаблонами.

 

<xsl:template match="/">

<!-- дочерние элементы … -->

</xsl:template>

 

Браузер использует шаблон для отображения определенной ветви элементов в иерархии XML-документа, с которым вы связываете таблицу стилей. Атрибут match шаблона указывает на определенную ветвь.

Значение атрибута match носит название образца (pattern). Образец в данном примере ("/") представляет корневой элемент всего XML-документа.

Каждая XSL-таблица стилей должна содержать один и только один шаблон с атрибутом match, который имеет значение "/".

Корневой образец ("/") не представляет элемент Документ (или корневой элемент) XML-документа. Он представляет весь документ, для которого элемент Документ является дочерним. (Т. е. он аналогичен корневому узлу Document в объектной модели документа DOM)

 

Пример использования XSL-таблицы стилей для предоставления информации в виде таблицы:

 

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>

<body>

<h2> Список специальностей факультета ИТ</h2>

<table border="1">

<tr bgcolor="#9acd32">

<th style="text-align:center">Специальность</th>

<th style="text-align:center">Срок обучения</th>

<th style="text-align:center">Предметы ЦТ</th>

<th style="text-align:center">План набора</th>

<th style="text-align:center">Проходной балл</th>

</tr>

<xsl:for-each select="FACULTY/SPECIALIZATION">

<tr>

<td><xsl:value-of select="NAME"></td>

<td><xsl:value-of select="TIME"></td>

<td><xsl:value-of select="EXAM"></td>

<td><xsl:value-of select="PAGES"></td>

<td><xsl:value-of select="PASSING"></td>

</tr>

</xsl:for-each>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

 

Оператор пути в значении атрибута select относится к текущемуэлементу. Каждый контекст внутри XSL-таблицы стилей относится к текущему элементу. Если вы опустите атрибут select для XSL-элемента value-of, элемент будет осуществлять вывод текстового содержимого плюс текстовое содержимое всех дочерних элементов в текущий элемент.

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

Элемент for-each выполняет две основные задачи:

- осуществляет вывод блока элементов, содержащихся внутри элемента for-each, повторяя его для каждого XML-элемента в документе, отвечающего образцу, присвоенному атрибуту select элемента for-each;

- внутри элемента for-each задает текущий элемент, устанавливаемый атрибутом select элемента for-each.

Не нужно включать в XSL-шаблон элементы, представляющие элементы HTML или BODY, которые являются стандартными составными частями HTML-страницы, поскольку браузер сам эффективно их формирует.

Каждый из элементов, представляющих HTML-разметку, должен быть корректно сформированным XML-элементом, а также стандартным HTML-элементом. Не забывайте, что XSL-таблица стилей является XML-документом.

 

Задание к лабораторной работе № 3

 

Оформите задание лабораторной работы № 1 через подключение XSLT.


Поделиться с друзьями:

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

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.066 с.