Teaching Reading

5.3.8.1. Элемент xsl:element

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

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

Для создания элемента с вычисляемым названием используется элемент xsl:element, который имеет следующий синтаксис:

<xsl:element

name="имя"

namespace="пространство-имен"

inherit-namespaces="yes" | "no"

use-attribute-sets="имена"

type="имя-типа"

validation="strict" | "lax" | "preserve" | "strip"

>

<!--

Содержимое: конструктор последовательности

-->

</xsl:element>

Здесь обязательный атрибут name указывает имя создаваемого элемента. Этот атрибут может содержать шаблон значения, а значит, имя элемента может быть вычислено во время выполнения. Все остальные атрибуты элемента являются необязательными.

Атрибут namespace указывает URI пространства имен создаваемого элемента. Точно так же, как и name, этот атрибут может содержать шаблон значения, что позволяет вычислять пространство имен создаваемого элемента при помощи выражений.

В качестве значений атрибутов name и namespace могут быть использованы вычисляемые выражения, т.е. выражения, заключенные в фигурные скобки "{" и "}".

Атрибут inherit-namespaces задает ("yes") или отменяет ("no") наследование узлов пространства имен для потомков создаваемого элемента. По умолчанию значение этого атрибута равно "yes".

Атрибут use-attribute-sets перечисляет (через пробел) имена наборов атрибутов, кото­рые должны быть включены в создаваемый элемент.

Атрибут type задает проверку создаваемого элемента на соответствие простому или комплексному типу, заданному в значении атрибута и определенному в схеме документа.

Атрибут validation определяет действия по проверке действительности создаваемого элемента. Значение "strip" этого атрибута указывает, что новый элемент и все содержащиеся в нем узлы должны иметь тип xs:untyped. Значение "preserve" указывает, что копируемые элементы сохраняют свой тип, а создаваемые элементы будут иметь тип xs:untyped. Значение "strict" указывает, что создаваемые и копируемые элементы должны строго соответствовать своему типу, определенному в схеме документа (в случае такого несоответствия выдается сообщение об ошибке). Значение "lax" аналогично значению "strict", за исключением того, что в случае несоответствия сообщения об ошибке не выдается, а создаваемые или копируемые элементы будут иметь тип xs:untyped.

Атрибуты type и validation являются взаимоисключающими, т.е. в элементе может быть задан только один из этих атрибутов.

Содержимым xsl:element является конструктор последовательности, который создается процес­сором и затем включается в создаваемый элемент.

5.3.8.2. Элемент xsl:attribute

Атрибутам того или иного элемента соответствуют узлы атрибутов. Считает­ся, что узел элемента является родителем узла своего атрибута, но вместе с тем узел атрибута не является дочерним узлом узла его элемента. Такая си­туация отличает дерево документа в XSLT от дере­ва в DOM – отношение между элементом и атрибутом не является отношением наследования, а отношением ассоциации. Говорят, что узел атрибу­та ассоциируется с узлом элемента.

Узел атрибута задается конструкцией вида:

<xsl:attribute

name="имя"

namespace="пространство-имен"

select="выражение"

separator?="строка"

type="имя-типа"

validation="strict" | "lax" | "preserve" | "strip"

>

<!--

Содержимое: конструктор последовательности

-->

</xsl:attribute>

Использование элементов xsl:attribute и xsl:element во многом аналогично. Обязательный атрибут name задает имя атрибута, а все остальные атрибуты также являются необязательными.

Атрибут namespace задает URI пространства имен создаваемого атрибута.

Атрибут select задает строковое значение нового атрибута (альтернативным является задание значения атрибута в конструкторе последовательности элемента xsl:attribute).

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

В качестве значений атрибутов name, namespace и separator могут быть использованы вычисляемые выражения, т.е. выражения, заключенные в фигурные скобки "{" и "}".

Атрибут type задает проверку создаваемого атрибута на соответствие простому или комплексному типу, заданному в значении атрибута и определенному в схеме документа.

Атрибут validation определяет действия по проверке действительности создаваемого узла документа. Значение "strip" этого атрибута указывает, что новый атрибут должен иметь тип xs:untypedAtomic. Значение "preserve" указывает, что копируемые атрибуты сохраняют свой тип, а создаваемые атрибуты будут иметь тип xs:untypedAtomic. Значение "strict" указывает, что создаваемые и копируемые атрибуты должны строго соответствовать своему типу, определенному в схеме документа (в случае такого несоответствия выдается сообщение об ошибке). Значение "lax" аналогично значению "strict", за исключением того, что в случае несоответствия сообщения об ошибке не выдается, а создаваемые или копируемые атрибуты будут иметь тип xs:untypedAtomic.

Атрибуты type и validation являются взаимоисключающими, т.е. в элементе может быть задан только один из этих атрибутов.

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

Использование элемента xsl:attribute имеет следующие основные особенности:

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

· атрибуты могут содержать только текстовые узлы (процессор может либо выдать ошибку, либо проигнорировать нетекстовые узлы);

· узлы атрибутов должны быть первыми узлами, которые создаются в эле­ментах (XSLT не разрешает создавать атрибуты после того, как в элемент включены дочерние узлы других типов);

· элемент не может использоваться для генерации объявлений пространств имен;

· элемент не может создавать атрибуты, имена которых имеют префикс xmlns;

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

Элемент xsl:attribute может быть использован в содержимом любого из следующих родителей:

· литерального элемента результата;

· элемента xsl:element;

· элемента xsl:copy в случае, если текущий, копируемый узел является элементом;

· элемента xsl:attribute-set в случае определения именованного набора атрибутов.

Элемент xsl:attribute обычно используется, если:

· требуется создать атрибут с не известным заранее именем или простран­ством имен;

· требуется создать атрибут в пространстве имен, которое является для процессора значащим (например, в пространстве имен XSLT);

· требуется создать атрибут, вычисление значения которого не может быть реализовано одним или несколькими выражениями XPath (например, ус­ловный вывод атрибута).

5.3.8.3. Элемент xsl:attribute-set

Для того чтобы упростить создание в элементах целых наборов атрибутов, можно заранее определить их в элементе xsl:attribute-set, который имеет следующий синтаксис:

<xsl:attribute-set

name="имя"

use-attribute-sets="имена"

>

<!--

Содержимое: элементы xsl:attribute

-->

</xsl:attribute-set>

Обязательный атрибут name задает имя набора атрибутов. В атрибуте use-attribute-sets через про­бел перечисляются имена наборов атрибутов, которые должны быть исполь­зованы в данном элементе.

Элемент xsl:attribute-set со­держит последовательность, состоящую из нуля или более элементов xsl:attribute.

Именованные наборы атрибутов можно использовать, указывая их имена в значении атрибута use-attribute-sets, который может присутствовать в элементах xsl:element, xsl:copy и xsl:attribute-set, а также в литеральных результирующих элементах.

Включение набора атрибутов в элемент равносильно простому копированию элементов xsl:attribute, определенных в соответствующих элементах xsl:attribute-set.

 

Пример использования элементов xsl:element, xsl:attribute и xsl:attribute-set:

Следующая таблица стилей формирует документ HTML для вывода тем сообщений в документе XML message.xml:

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

<xsl:stylesheet version="2.0"

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

<xsl:output method="html" version="4.0"

encoding="windows-1251" indent="yes"/>

<xsl:attribute-set name="hrAttrs">

<xsl:attribute name="width">25%</xsl:attribute>

<xsl:attribute name="color">green</xsl:attribute>

<xsl:attribute name="align">left</xsl:attribute>

</xsl:attribute-set>

<!-- Формирование выходного документа HTML -->

<xsl:template match="/">

<html>

<head>

<title>Вывод тем сообщений</title>

<style type="text/css">

.red {color:red}

.bold {font-weight:bold}

</style>

</head>

<body>

<!-- Применение правила шаблона для элемента message -->

<xsl:apply-templates

select="email-folder/message"/>

<!-- Задание элемента hr -->

<xsl:element name="hr"

use-attribute-sets="hrAttrs"/>

</body>

</html>

</xsl:template>

<!-- Задание правила шаблона для элемента message -->

<xsl:template match="message">

<!-- Задание элемента hr -->

<xsl:element name="hr"

use-attribute-sets="hrAttrs"/>

<!-- Задание элемента p -->

<p class="bold">Тема:

<!-- Задание элемента span -->

<xsl:element name="span">

<!-- Задание атрибута class для элемента span -->

<xsl:attribute

name="class">red</xsl:attribute>

<!-- Получение значения для элемента subject -->

<xsl:apply-templates

select="./header/subject/text()"/>

</xsl:element>

</p>

</xsl:template>

</xsl:stylesheet>

В результате преобразования документ HTML будет иметь следующий вид:

<html>

<head>

<meta http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<title>Вывод тем сообщений</title>

<style type="text/css">

.red {color:red}

.bold {font-weight:bold}

</style>

</head>

<body>

<hr width="25%" color="green" align="left">

<p class="bold">Тема:<span

class="red">Поздравление</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Напоминание</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Отказ</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Вопрос</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Ответ</span></p>

<hr width="25%" color="green" align="left">

</body>

</html>

и в Web-браузере будет выведено:

 

 

Teaching Reading

 

 

In the study of English, reading has often been at the center of debate among teachers and scholars.

What is reading?

What words will you use to give a definition of reading?

(a) understand, interpret, meaning, sense etc.

(b) decode, decipher, identify etc.

(c) articulate, speak, pronounce etc.

If you use the ideas reflected in group (b) you want to say, probably, that unless we can correctly recognize the words we meet in print, we cannot even begin to read.

If you use the words from group (c) you mean that the reading lesson is used as an opportunity to teach pronunciation, encourage fluent and expressive speaking and so on.

For early readers reading aloud is of course an important aid, beginners have to discover how writing is associated with the spoken words they have already learned to use.

But the early reading stage does not last long – two or three years at most, normally. What is the function of reading aloud after that?

Reading aloud is not common outside the classroom. Most of our reading is done silently, unless there are special circumstances such as reading to someone who has lost the spectacles.

If you use the words from the group (a) you mean that you read because you want to get something from the text: facts, ideas, enjoyment; whatever it is, you want to get message that the writer expressed.

So the words in group (a) turn to be the most important ones, if we are thinking of a definition of reading.

There are many definitions of reading given by researchers. I’ll give you the definition, given by С.К. Фомкина and З.И. Клычникова:

«Чтение –процесс восприятия и активной переработки информации, закодированной по системе того или иного языка». (З.И. Клычникова. Психология особенности обучения чтению на иностранном языке. М. 1973)








Дата добавления: 2015-03-20; просмотров: 717;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.043 сек.