Инструменты создания описаний WSDL

Добавлено Дата: 10 January, 2011 категория: Java, Web, XML

Описание WSDL написано в листинге 2.6 вручную. Однако строгость описания позволяет автоматизировать этот процесс. Многие инструментальные средства создания Web-служб содержат утилиты, которые автоматически создают WSDL-файлы, описывающие готовые Web-службы. Например, уже упоминавшееся средство создания Web-служб Apache Axis содержит в своем, составе класс Java2WSDL, создающий WSDL-файл по классу или интерфейсу Java. Пакет IBM WSTK, в состав которого входит Axis, содержит утилиту java2wsdl, создающую объект этого класса и работающую из командной строки. Достаточно набрать в командной строке

Читать »

Класс Component

Добавлено Дата: 9 January, 2011 категория: C#, Компоненты

Что же такое компонент? С точки зрения кода, компонент— это класс, реализующий интерфейс System. ComponentModel. IComponent. "Минимальный" базовый класс, реализующий этот интерфейс, — это System.Component- Model. Component, т.е. он является базовым классом для всех компонентов, поддерживающих режим разработки. Этот класс реализует три интерфейса:

Читать »

Добавляем информацию о свойствах

Добавлено Дата: 9 January, 2011 категория: C#, Компоненты

Откроем окно свойств нашего компонента (например, с помощью меню Property по щелчку правой кнопки мыши). Как видно из рис. 5.4, два наших новых свойства видны в списке, но, к сожалению, совершенно неинформативны.

Добавить информацию о свойствах позволяют специальные атрибуты

Читать »

Эффективное использование xsl:message

Добавлено Дата: 9 January, 2011 категория: XSLT

Задача

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

ф ‘ Часто бывает, что вы применяете к документу таблицу стилей, а она либо ничего не выводит, либо выводит только текст без каких бы то ни было эле­ментов. В моей практике это почти всегда означало проблему с простран­ствами имен. Очень легко забыть о префиксах элементов в команде xsl:template или допустить расхождение между URI пространства имен в документе и в таблице стилей. Напомним, что существенным является именно URI пространства имен, а не префикс. Ошибка хотя бы в одной бук­ве приведет к неприятностям. Если URI длинный, я обычно копирую объяв­ление пространства имен из документа в таблицу стилей, чтобы они га­рантированно совпадали.

Читать »

Более сложные приемы ZObrist-ключи

Добавлено Дата: 9 January, 2011 категория: Игры, Теория

 

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

Читать »

Строки XSLT – Введение

Добавлено Дата: 8 January, 2011 категория: XSLT

В деле манипуляции строками XSLT 1.0, конечно же, не хватает тяжелой ар­тиллерии Perl. Язык XSLT оптимизирован для обработки XML-разметки, а не строк. Но, поскольку XML – это просто структурированный текстовый формат, то строки с неизбежностью появляются во всех задачах преобразования, кроме самых простых. К сожалению, в XSLT 1.0 есть всего девять стандартных функций для обработки строк. Напротив, в Java их около двух десятков, а в Perl – бесспор­ном короле современных языков для обработки текстов – пара десятков плюс чрезвычайно богатый механизм регулярных выражений.

Читать »

Редакторы свойств

Добавлено Дата: 8 January, 2011 категория: C#, Компоненты

Каждое свойство, в зависимости от его типа, имеет свой редактор свойств. Среда VS предоставляет редакторы для всех стандартных свойств, которые показаны на рис. 2.9—2.15:

О простой редактор текстовых и числовых полей позволяет изменять все свойства с типом string, int: и т. п.;

Читать »

Конкретизация описания WSDL

Добавлено Дата: 8 January, 2011 категория: Java, Web, XML

Спецификация WSDL 1.2 задает правила описания адреса Web-службы и предоставляемых ею услуг для протокола SOAP, методов GET и POST протокола HTTP и — для пересылки документов с различными МШЕ-типами. Эти правила записываются дополнительными элементами XML, специфичными для каждого протокола.

Читать »

Атака дальнобойных фигур

Добавлено Дата: 7 January, 2011 категория: Алгоритмы, Игры

Давней мечтой шахматных программистов является генерация взятий даль­нобойных фигур, не строя линии. Генерация взятий является самым кри­тичным по времени выполнения фрагментом программы. Дело в том, что больщинство позиций можно отсечь только взятиями, и даже не обязатель­но иметь весь список перемещений. Кроме того, взятия в форсированном поиске рассматриваются до конца. Генерация перемещений на глубине 20 намного больше влияет на скорость выполнения программы, чем на глуби­не 5. Для ускорения получения взятий существует много методик. Мы рас­смотрим только один старый и очень простой прием. Идея следующая: ос­новная масса перемещений после хода некоторой стороны не изменяется, за исключением некоторых ходов, связанных с последней ходившей фигу­рой. Например, если пешка пересекла линию ферзя, то ферзь уже не может бить по этой линии. Остальная масса перемещений осталась без изменений. Изменились только ходы пешки и ферзя, которому она перекрыла линию. Мы сейчас, для простоты, не будем рассматривать, как можно корректиро­вать перемещения всех фигур при ходе, а рассмотрим только дальнобойные фигуры. Введем некоторый массив, где будут представлены все фигуры на доске, независимо от цвета и веса. Их можно представить как ферзи без учета цвета. Даже если это пешка, мы ее будем рассматривать как ферзя, потому что она так же может перекрыть линию дальнобойной фигуре. Ферзь, как известно, объединяет в себе ходы всех дальнобойных фигур. Каждая клетка нашего нововведенного массива будет иметь 8 ссылок на ближайшие фигуры по всем лучам. Наш массив будет иметь размерность не 8 х 8, а 10 х 10. По краям находятся лишние описатели. Даже если по ли­нии фигуры нет, ссылка все равно будет указывать на некоторый элемент, а именно на ближайший за пределами доски. Если нам нужно убрать некото­рую фигуру, мы просто должны восстановить все перекрестные ссылки. Фигура справа, например, будет ссылаться на фигуру слева. Чтобы поста­вить фигуру в новое место, мы должны просканировать 8 лучей во всех на­правлениях до первой фигуры или до края доски и навести перекрестные ссылки. В действительности, нам нужно сканировать не 8 лучей, а 4. Когда мы нашли фигуру справа, она уже ссылается на фигуру слева, и ее искать и строить линию не нужно. Таким образом, при каждом ходе мы строим до­полнительно только 4 луча, но можем выбирать взятия дальнобойных фи­гур, не строя линии. Если это ладья, то нужно просто проверить ссылки по вертикали и горизонтали, не указывают ли они на фигуры противника. Об­ратите внимание, что если одна фигура бьет другую, то все остается без из­менений, и никаких лучей строить не нужно. Когда на глубине идет поиск одних взятий, это позволяет очень быстро вычислять результат размена дальнобойных фигур. При некоторой изощренной технике можно брать взятия с фронта. Мы просто просматриваем список фигур противника, на­чиная с самых ценных, и сразу видно, какие фигуры их бьют. Далее приве­ден пример кода, дающего возможность брать взятия дальнобойных фигур, не строя линий:

Читать »

Нахождение минимума и максимума

Добавлено Дата: 7 January, 2011 категория: XSLT

Задача

В наборе узлов требуется найти узел (или узлы) с минимальным (или макси­мальным) числовым значением.

Решение

XPath 1.0

В проекте EXSLT определены следующие функции для выполнения этих операций: exsl:min, exsl:max, exsl:lowest и exsl:highest. Функции min и max ищут узел с минимальным и максимальным числовым значением соответственно. В EXSLT функция exsl:min специфицирована следующим образом:

Читать »

Безопасность предоставления услуг

Добавлено Дата: 7 January, 2011 категория: Java, Web, XML

Сфера применения Web-служб стремительно расширяется. В настоящее время в нее вовлекаются банковские транзакции, финансовые операции, медицинские консультации — те Web-услуги, которые требуют секретности, точности, достоверности. Это заставляет обращать особенное внимание на безопасность предоставления услуг.

Читать »

Тестирование и отладка – Введение

Добавлено Дата: 7 January, 2011 категория: XSLT

Многие XSLT-сценарии пишутся для однократного применения – просто что­бы преобразовать хорошо известные входные данные. Здесь тестирование сводит­ся к выполнению преобразования и просмотру результата. Но даже в таком про­стом случае как поступить с таблицей стилей, которая делает не то, что вы хотели? Обычно для отыскания ошибки достаточно внимательно проглядеть код. Но такой способ отладки не слишком эффективен, если разработчик плохо знаком с XSLT, а к таковым следует отнести и тех, кто много работает с XML, но на проце­дурных языках. В этой главе вы познакомитесь с основными методами отладки, помогающими быстро находить типичные ошибки, а заодно лучше разобраться в XSLT.

Читать »

Выпадающий диалог

Добавлено Дата: 7 January, 2011 категория: C#, Компоненты

Как я уже говорил, выпадающий диалог оформляется в виде визуального компонента (наследника класса control) и регистрируется с помощью вызова метода сервиса DropDownControl (myEditorcontroi). Диалог обычно закрывается, когда пользователь выберет новое значение или откажется от выбора (например, нажмет клавишу <Esc>). Программное закрытие окна можно выполнить, вызвав метод CloseDropDown () .

Читать »

Проще некуда (оценочная функция)

Добавлено Дата: 7 January, 2011 категория: Игры, Теория

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

Читать »

Реализация на XSLT сценариев, приведенных в спецификации W3C XML Query

Добавлено Дата: 7 January, 2011 категория: XSLT

Задача

Требуется выполнить запрос, аналогичный одному из приведенных в качестве при­меров в документе http://www.w3.org/TR/2001/WD-xmlquery-use-cases-20011220, но вместо языка XQuery (http://www.w3.org/TR/xquery/) использовать XSLT.

Читать »