на главную | войти | регистрация | DMCA | контакты | справка | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


моя полка | жанры | рекомендуем | рейтинг книг | рейтинг авторов | впечатления | новое | форум | сборники | читалки | авторам | добавить











Листинг 10.7. Результирующий SVG-документ

 PUBLIC "-//W3C//DTD SVG 1.0//EN"

 "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">


 xmlns="http://www.w3.org/2000/svg"

 xmlns:math="java:java.lang.Math"

 width="200"

 height="200">

 Simple line-based figure

 

 

   x1="81.68060041188197" y1="31.70359014757173"

   x2="168.29640985242827" y2="81.68060041188197"/>

 

   x1="168.29640985242827" y1="81.68060041188197"

   x2="118.31939958811803" y2="168.29640985242827"/>

 

   x1="118.31939958811803" y1="168.29640985242827"

   x2="31.70359014757173" y2="118.31939958811803"/>

 

   x1="31.70359014757173" y1="118.31939958811803"

   x2="81.68060041188197" y2="31.70359014757173"/>

 

Визуальное представление этого документа демонстрирует рис. 10.2, где представлен поворот, выполненный на 30°:

Технология XSLT

Рис. 10.2. Визуальное представление полученного SVG-документа

Анализируя полученный документ, мы можем заметить объявление пространства имен с префиксом math, которое было в него включено:

 xmlns="http://www.w3.org/2000/svg"

 xmlns:math="java:java.lang.Math"

 width="200"

 height="200">

 ...

Это тот самый случай, когда объявление пространства имен используется в самом преобразовании, но является лишним в выходящем документе. Для того чтобы избавиться от него, нужно просто включить префикс math в атрибут exclude-result-prefixes элемента xsl:stylesheet.

 version="1.0"

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

 xmlns="http://www.w3.org/2000/svg"

 xmlns:math="java:java.lang.Math"

 exclude-result-prefixes="math">

 ...

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


Листинг 10.6. Преобразование, осуществляющее поворот | Технология XSLT | Листинг 10.8. Класс, вычисляющий координаты точки после поворота