[ Content | View menu ]

Валидация YAML

16 May, 2008

Продолжая тему предыдущего поста.

Kwalify - парсер, валидатор и data binding (не знаю как перевести) для YAML и JSON. Реализация на Ruby и Java.

Data binding означает что вы можете связать схему с классом (прописать в схеме имя класса), и при валидации YAML файла валидатор вернет экземпляр этого класса с данными из файла.

Ruby - 0 Comments

Валидация JSON

Нашел в сети интересный проект — JSON Schema по валидации данных в формате JSON. Формат описания схемы — JSON, синтаксис ясный и понятный, особенно если Вам приходилось писать схемы для XML. Само описание схемы стандартное: базовые типы, сложные типы, минимальные/максимальные значения, RegExp, расширения на других схем. Т. е. взято все лучшее из XML схем.

Сейчас существует реализация валидатора на JavaScript, но думаю для других языков он и не очень нужен (хотя бывает полезен, и думаю появится).

Ссылки по теме:

JavaScript - 0 Comments

Агрегатные функции в PostgreSQL

12 May, 2008

Люблю PostgreSQL вот за такие вещи (думал написать сам, но погуглив нашел у Torchbox):

CREATE AGGREGATE to_array (
    sfunc = array_append,
    basetype = anyelement,
    stype = anyarray,
    initcond = '{}'
)

Теперь существует агрегатная функция to_array(), которая превращает выбраный столбец в массив.
Например, из таблицы:

 col_a | col_b
-------+-------
 a     | 1
 a     | 2
 a     | 3
 b     | 1
 b     | 5
 b     | 12

по запросу
SELECT col_a, to_array(col_b) FROM sometable GROUP BY col_a;
вернется

 col_a | to_array
-------+----------
 b     | {1,5,12}
 a     | {1,2,3}

Массив можно легко перевести в строку с помощью array_to_string(anyarray, text) и тогда по запросу
SELECT col_a, array_to_string(to_array(col_b), '; ') FROM sometable GROUP BY col_a;
получается красота вроде:

 col_a | array_to_string
-------+-----------------
 b     | 1; 5; 12
 a     | 1; 2; 3

В обратную сторону, кстати тоже можно :)

SQL - 0 Comments

[link] рефакторинг XSLT шаблонов

24 April, 2008

Интересная статья про рефакторинг XSLT шаблонов от Jeni Tennison

XML - 0 Comments