Еврейский календарь

Добавлено Дата: 29 December, 2010 категория: XSLT

Задача

Требуется работать с датами в еврейской системе летоисчисления.

Решение

Для эффективной работы с еврейским календарем понадобятся несколько вспомогательных шаблонов. В еврейском календаре обычный год состоит из 12 месяцев, а високосный – из 13. Високосными считаются 3, 6, 8, 11, 14, 17 и 19 года метонова цикла (см. ниже раздел «Обсуждение»). Точная формулировка условия високосности такова: 7y + 1 mod 19 < 7. Это позволяет написать шаблон для опре­деления последнего месяца года по еврейскому календарю:

Читать »

Класс UlTypeEditor

Добавлено Дата: 29 December, 2010 категория: C#, Компоненты

Создание нового редактора типа заключается в создании наследника класса System.Drawing.Design.UlTypeEditor, который привязывается к редактируемому свойству с помощью атрибута Edit or At tribute:

[Editor (typeof (MyPropertyEditor), typeof (UlTypeEditor) ) ] public byte MyProperty

Читать »

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

Добавлено Дата: 28 December, 2010 категория: C#, Компоненты

производится с помощью сервиса

iEventBindingService. Вот его основные методы:

?         метод string             CreateUniqueMethodName (IComponent           component, EventDescriptor e} генерирует уникальное имя события;

Читать »

Создание графического представления деревьев

Добавлено Дата: 28 December, 2010 категория: XSLT

Задача

Требуется представить иерархическую структуру данных в виде дерева.

Решение

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

Если бы дерево было сбалансированным, то нарисовать его было бы просто; надо лишь разделить имеющее горизонтальное пространство на количество узлов на каждом уровне, а вертикальное – на число уровней1. К сожалению, реальные деревья не всегда симметричны. Поэтому алгоритм должен учитывать ширину каждой ветви.

Читать »

Замена текста

Добавлено Дата: 28 December, 2010 категория: XSLT

Задача

Требуется заменить все вхождения заданной подстроки другой строкой.

Решение XSLT 1.0

Следующий рекурсивный шаблон заменяет все вхождения искомой строки на строку замены.

<xsl:template name="search-and-replace"> <xsl:param name="input"/> <xsl:param name="search-string"/> <xsl:param name="replace-string"/> <xsl:choose>

Читать »

Добавление закладки в редактор свойств

Добавлено Дата: 28 December, 2010 категория: C#, Компоненты

Стандартный редактор свойств нмеет две кнопки, переключающие его закладки. При нажатии на одну из ннх открывается список свойств компонента, а при нажатин на другую — список обработчиков событий. В этом разделе я хочу рассказать, как добавить свою кнопку и закладку в редактор свойств. Сама закладка редактора свойств описывается с помощью класса System.Windows. Forms. Design.PropertyTab. Для реализации своей закладки нужно перекрыть несколько свойств н методов (листинг 12.7):

Читать »

Безопасность на уровне XML

Добавлено Дата: 28 December, 2010 категория: Java, Web, XML

Для того чтобы зашифровать не всё SOAP-послание, а только его отдельные части, придется перейти на уровень языка XML и пойти привычным путем — ввести дополнительные элементы XML, описывающие зашифрованную часть послания.

Разработка средств описания зашифрованных XML-документов и их отдельных частей ведется консорциумом W3C давно и независимо от протокола SOAP и Web-служб, причем этим занимается сразу несколько рабочих групп.

Читать »

Установка Web-службы в контейнер

Добавлено Дата: 27 December, 2010 категория: Java, Web, XML

Поскольку по спецификации "Web Services for J2EE" Web-служба реализуется с помощью сервлетов или session-компонентов, ее надо установить (deploy) в Web- или EJB-контейнер как всякий компонент J2EE- приложения. В процессе установки создаются клиентские заглушки и серверные связки системы RMI, каталоги для их размещения, пути к ним и переменные окружения, составляющие контекст приложения. Правила установки описаны, например, в книге [10]. Производители 12ЕЕ-серверов предоставляют утилиты установки, облегчающие этот процесс. В стандартную поставку пакета J2EE SDK входит графическая утилита deploytool, которая открывает последовательно несколько диалоговых окон, собирая сведения об устанавливаемом компоненте, и затем устанавливает компонент в контейнер.

Читать »

Округление чисел с заданной точностью

Добавлено Дата: 26 December, 2010 категория: XSLT

Задача

Требуется округлить число до заданного числа десятичных знаков после за­пятой. Однако функции XSLT round, ceiling и floor всегда возвращают це­лое число.

10.00   =    1 •

3.50   =        Г.

4.44   =          t.

77.78   =   V V

Читать »

MDB-компоненты

Добавлено Дата: 26 December, 2010 категория: Java, Web, XML

Компоненты типа MDB (Message Driven Beans) работают асинхронно под управлением EJB-контейнера. Контейнер получает сообщение от клиента, точнее говоря, от службы сообщений, через которую действует клиент, активизирует MDB-компонент и обращается к его методам. Клиент никак не связан с MDB-компонентом, более того, клиент не подозревает о его существовании. Клиент обращается только к службе сообщений. Поэтому для MDB-компонента не нужны ни remote- ни home-интерфейсы, он состоит только из одного или нескольких классов. Класс MDB-компонента должен реализовать                 MessageDrivenBean.

Читать »

Пример: схема адресной книги

Добавлено Дата: 25 December, 2010 категория: Java, Web, XML

В листинге 1.4 записана схема документа, приведенного в листинге 1.2

; Лис I ин1 1,4. С         мен на XML                                             

<?xml version=" 1.0" ?>

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

Читать »

Вывод текста в области заданной ширины с заданным выравниванием

Добавлено Дата: 25 December, 2010 категория: XSLT

Задача

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

Решение

Вот решение, в котором перенос и выравнивание достигаются за счет повтор­ного использования шаблона text:justify из рецепта 7.3. Для пущей гибкости ширину области выравнивания можно задавать независимо от ширины области переноса, считая, что по умолчанию они совпадают.

Читать »

Соединения

Добавлено Дата: 25 December, 2010 категория: XSLT

Задача

Требуется соотнести элементы в некотором документе с другими элементами в том же или ином документе.

Решение

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

Читать »

Компоненты или элементы управления?

Добавлено Дата: 25 December, 2010 категория: C#, Компоненты

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

Читать »

Стандартный набор значений

Добавлено Дата: 25 December, 2010 категория: C#, Компоненты

Для enum-типов в редакторе свойств отображается выпадающий список с перечислением всех возможных значений этого типа. Это происходит автоматически, т. к. редактор типа знает, что других значений быть не может. Для других типов, не имеющих определенного набора значений, можно реализовать стандартный набор значений (standard values).

Читать »