Archive

Posts Tagged ‘Java’

JiBX 1.2: Часть 2. От XML-схемы к коду Java

August 13th, 2010

JiBX — это инструмент для установления соответствия между данными XML и объектами Java. JiBX давно известен как самый быстрый и гибкий способ установления соответствия между кодом Java и XML. Однако сложность этих определений соответствия и ограниченная поддержка все более широко используемых определений XML-схемы иногда расхолаживали пользователей. К счастью, в версии JiBX 1.2 сделано многое для решения этих проблем. Из этого руководства вы узнаете об использовании новых функций JiBX 1.2 для простой генерации кода Java из существующего определения XML-схемы и для чтения/записи XML-документов в соответствии со сгенерированными определениями схемы — и все это без необходимости вдаваться в детали определений соответствия JiBX.

В первой части был описан обратный процесс преобразования кода Java в определения XML-схемы.

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

Смотрите другие материалы о Java на IBM developerWorks Россия

программирование , ,

JiBX 1.2: Часть 1. От кода Java к XML-схеме

August 4th, 2010

JiBX – это инструмент для установления соответствия между данными XML и объектами Java. JiBX давно известен как самый быстрый и гибкий способ установления соответствия между кодом Java и XML. Однако сложность этих определений соответствия и ограниченная поддержка все более широко используемых определений XML-схемы иногда расхолаживали пользователей. К счастью, в версии JiBX 1.2 многое сделано для решения этих проблем. Из этого руководства вы узнаете об использовании новых функций JiBX 1.2 для простой генерации определений XML-схемы из существующего кода Java и чтении и записи XML-документов в соответствии со сгенерированными определениями схемы – и все это без необходимости вдаваться в детали определений соответствия JiBX. Во второй части описан обратный процесс преобразования определений XML-схемы в код Java.

Это руководство проведет вас по процессу использования JiBX для генерации определений XML-схемы из кода Java. Сначала вы увидите, как на основе простой модели данных Java сгенерировать соответствующую этой модели схему с параметрами по умолчанию. Оттолкнувшись от этой платформы, вы научитесь легко применять целый ряд настроек для управления фактическими значениями, которые используют и к которым обращаются ваши классы Java, будь то обязательные или опциональные значения, используемые в XML имена и пространства имен и даже сгенерированная структура определений схемы. В процессе чтения вы увидите, как JiBX повышает ценность сгенерированных вами схем, используя ваши инвестиции в Javadocs для автоматического документирования определений схемы. Проведя работу с приведенными здесь примерами, вы сможете использовать JiBX для генерации качественных определений XML-схемы из своих собственных классов структуры данных Java.

Подробнее на IBM developerWorks Россия

программирование , ,

Новые математические возможности Java

July 7th, 2010

В этой серии из двух статей Эллиотта Гарольда рассматриваются “старые-новые” возможности хорошо известного класса java.lang.Math. Первая часть посвящена исключительно математическим функциям, а во второй речь пойдет о функциях, созданных для работы с числами с плавающей точкой.

В пятой версии спецификации языка Java™ (Java Language Specification) было добавлено 10 новых методов в классы java.lang.Math и java.lang.StrictMath. Еще 10 методов появилось в шестой версии. В первой статье серии были рассмотрены методы, имеющие четкое математическое определение, знакомое математикам, жившим до изобретения компьютеров. В этой статье основное внимание будет уделено методам, смысл которых становится ясен только при осознании того, что они оперируют с числами с плавающей точкой, а не c абстрактными вещественными числами.

В первой части отмечалось важное отличие вещественных чисел, таких как e или 0.2, от их машинного представления, например, типа данных double в Java. Точное представление вещественного числа может быть бесконечно длинным, в то время как в Java на представление отводится фиксированное число битов (32 для float и 64 для double). Максимальным числом, представимым в формате float, является примерно 3.4*1038. Этого в некоторых случаях может не хватить, например, для числа электронов во Вселенной.

Тип данных double способен представлять числа до 1.8*10308, чего, как мне кажется, должно хватать для практически всех физических величин. Однако при вычислении абстрактных математических значений можно выйти за пределы этого ограничения. Например, число 171! (171 * 170 * 169 * 168 * … * 1) больше максимального числа, представимого в формате double, а float не хватает уже для вычисления 35!. Малые числа (числа, близкие к нулю) также могут представлять собой проблему, поэтому вычисления, в которых участвуют очень большие либо очень малые числа, являются потенциально небезопасными.

В стандарте IEEE 754 для операций с плавающей точкой (см. раздел Ресурсы) вводятся специальные величины: Inf для представления бесконечности и NaN (Not a Number) для представления всего, что не является числом. В этом стандарте также определены положительные и отрицательные нули (в обычной математике ноль не обладает знаком, а в компьютерной – может обладать любым знаком). Эти значения являются настоящим бедствием при доказательстве классических теорем. В частности, закон исключенного среднего (law of exluded middle) не выполняется в присутствии NaN, поскольку утверждение x == y или x != y оказывается ложным, если x или y равен NaN.

Часть 1. Вещественные числа
Часть 2. Числа с плавающей точкой

программирование

JavaScript EE: Часть 1. Исполнение файлов JavaScript на стороне сервера

June 30th, 2010

Комбинирование JavaScript с кодом Java™ на сервере позволяет свободно использовать одни и те же программы JavaScript как в серверных, так и в клиентских системах. Кроме того, методы, представленные в этой серии статей, позволяют работать с одной и той же базой кода как на Ajax-, так и на не-Ajax клиентских системах. Так как большая часть кода для сервера все равно пишется на языке Java, функции Java Platform, Enterprise Edition (Java EE) желательно сделать доступными для JavaScript. В этих статьях показано, как исполнять файлы JavaScript со стороны сервера, вызывать функции JavaScript с помощью Ajax и использовать API Java Scripting с технологией JavaServer Pages (JSP).

На стороне клиента типичные приложения Ajax используют JavaScript, а на стороне сервера — другие языки, такие как Java. В результате разработчикам приходится создавать некоторые программы дважды, используя для Web-браузера JavaScript, а для сервера другой язык. Этой двойной работы можно избежать, воспользовавшись на стороне сервера языком JavaScript в сочетании с Java, чтобы получить полную поддержку языков сценариев через API javax.script. К тому же Java SE Development Kit (JDK) 6 уже содержит механизм JavaScript Rhino от Mozilla, поэтому дополнительно устанавливать ничего не нужно.

В этой первой статье данной серии мы воспользуемся простым сценарием, который позволяет исполнять файлы JavaScript внутри приложений Java ЕЕ. Сценарии будут иметь доступ к так называемым “неявным объектам” (implicit objects), которые используются в страницах JSP, таким как application, session, request и response. Большинство примеров состоит из многократно используемого кода, так что вам будет легко перейти к применению JavaScript на сервере в своих собственных приложениях.

Подробнее на IBM developerWorks Россия

программирование , , ,

Создание высокопроизводительных Java-приложений для доступа к данным: Часть 3. Практические приемы работы с API pureQuery в Data Studio

June 9th, 2010

pureQuery – это высокопроизводительная Java™-платформа для доступа к данным, предназначенная для упрощения решения задач по разработке, управлению и оптимизации приложений и служб, которые обращаются к данным. Она состоит из инструментальных средств, API и среды исполнения. В предыдущих статьях этой серии были представлены два стиля программирования, которые помогают обращаться к базе данных посредством простых, но мощных API. В этой статье приводятся некоторые практические рекомендации по разработке с применением API pureQuery и содержатся реальные сценарии, демонстрирующие, как пользоваться этими рекомендациями.

Первые две статьи данной серии содержали подробное описание двух стилей API, предлагаемых IBM pureQuery: на основе встроенных методов и на основе аннотированных методов. В третьей статье мы рассмотрим разнообразные практические приемы разработки с использованием API pureQuery. В большинстве этих приемов применяются сложные функции API pureQuery. По возможности, для иллюстрации использования описываемых функций приводятся примеры из реальной жизни. Фрагменты кода включены исключительно в демонстрационных целях, но должны дать вам представление о том, как использовать API.

Источник IBM developerWorks Россия

программирование , ,