Языки

» Html
» Java Script

» PHP

» Perl

» ASP

» CGI

» Xml

» Dhtml

» VBScript

» Java

» Css

Уроки

» Photoshop

» Corel Draw

» Dreamwawer

» Flash MX

Скачать

» Программы

» Книги

Шаблоны

» Сайтов

» Flash

» Скрипты

Extensible Markup Language

» Xml для новичков

     » Главная страница

     » К оглавлению

 

Корневое правило

Разбор любого XSL- документа всегда начинается с правила для корневого элемента, в котором определяется область всего разбираемого XML документа и поэтому тэги форматирования, помещенные сюда, будут действовать на весь документ в целом. Для обозначения корневого правила необходимо включить в него элемент <root/>;. Например, для того, чтобы задать тэг <body> для формируемой нами выходной HTML- страницы, мы можем использовать следующий фрагмент:

<xsl>
<rule>
<root/>
<html><head><title> Flowers</title></head>
<body bgcolor="white" link="blue" alink="darkblue" 
vlink="darckblue">
<children/>
</body>
</html>
</rule>
</xsl>

В этом примере при помощи инструкций <root/> и <children/> мы определили ряд начальных и конечных HTML-тэгов для нашей страницы, между которыми затем в процессе рекурсивного обхода XSL- анализатора будут помещены остальные элемента документа.

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

Дочерние элементы в XML-документе всегда находятся внутри области, определяемой тэгами родительского по отношению к ним элемента. Для того, чтобы точно указать месторасположение обрабатываемого элемента в дереве XML, в XSL используется дополнительный тэг <element>;. При помощи него можно указать, какие элементы должны предшествовать текущему, а какие - следовать после него. Например, в следующем фрагменте определяется, что форматирование элемента <title> будет зависеть от его месторасположения внутри XML-документа:

<xsl>
<rule>
<element type="journal">
	    <target-element type="title"/>
         	</element>
<center>
<hr width=80%>
<children/>
<hr width=80%>
</center>    
</rule>
<rule>
<element type="article">
	    <target-element type="title"/>
         	</element>
<td align="center"><p color="blue" font-size="14"
 font-style="italic"><children/>
</td>
</rule>
</xsl>

Как видно из примера, если в XML- документе будет найден элемент <title>, являющийся дочерним по отношению к элементу <article> (название статьи), то его форматирование будет несколько отличаться от элемента <title>, расположенного внутри тэгов <journal> Приоритеты правил

В том случае, если внутри XSL- документа встречается несколько правил для одного и того же элемента, то msxsl будет использовать то из них, которое более точно определяет позицию данного элемента. Т.е. если XSL- документ содержит следующие правила:

<rule>
<element type="journal">
	    <target-element type="title"/>
         	</element>
<center>
<hr width=80%>
<children/>
<hr width=80%>
</center>
</rule>
<rule>
	<target-element type="title"/>
<b>
<children/>
</b>    
</rule>

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

В общем случае приоритет правил определяется следующим образом (в порядке убывания приоритета):

  • правила, помеченные специальным тэгом <importance>
  • правила с наибольшим значением атрибута id, если он определен
  • правила с наибольшим значением атрибута class, если он определен
  • правила, имеющие наибольшую вложенность, определяемую тэгом <element>
  • правила, использующие атрибут type совместно с <target-element>
  • правила, в которых отсутствует атрибут type в <target-element> или <element>
  • правила с более высоким приоритетом, задаваемым атрибутом priority тэга <rule>
  • правила с наибольшим значением квалификаторов <only>, <position>, <attribute>

Следующий урок

 


Общение
» Чат

» Форум

Реклама 

Здесь может быть Ваша реклама

Поиск

» Поиск

Статистика 

Связь
» Web дизайнер

» Ваша реклама

» Отзывы

» О проекте



Сайт управляется системой uCoz