# Kwalify 0.7.2 - parser, schema validator, and data binding for YAML and JSON

**URL:** <https://www.ruby-forum.com/t/kwalify-0-7-2-parser-schema-validator-and-data-binding-for-yaml-and-json/191763>\
**Category:** Ruby\
**Created:** [July 18, 2010, 2:55am UTC](https://www.ruby-forum.com/t/kwalify-0-7-2-parser-schema-validator-and-data-binding-for-yaml-and-json/191763 "2010-07-18T02:55:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![makoto\_kuwata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a4c791/32.png) [@makoto\_kuwata](https://www.ruby-forum.com/u/makoto_kuwata)\
**Post date:** [July 18, 2010, 2:55am UTC](https://www.ruby-forum.com/t/kwalify-0-7-2-parser-schema-validator-and-data-binding-for-yaml-and-json/191763/1 "2010-07-18T02:55:42Z")

</div>

Hi,

I released Kwalify 0.7.2. This is a bug fix release.  
[http://www.kuwata-lab.com/kwalify/](http://www.kuwata-lab.com/kwalify/)

## Overview

Kwalify is an integrated tool for YAML and JSON.  
Kwalify contains parser, schema validator, and data binding tool.

See User’s Guide for details.  
[http://www.kuwata-lab.com/kwalify/ruby/users-guide.html](http://www.kuwata-lab.com/kwalify/ruby/users-guide.html)

## Example

Schema example (schema.yaml):

```
type: seq
sequence:
  - type: map
    class: Member
    mapping:
     "name": { type: str, required: true }
     "gender": { type: str, required: true, enum: [M, F] }
     "role": { type: str, required: false }

```

YAML data example (data.yaml):

```
- name: Haruhi Suzumiya
  gender: F
  role: Leader of SOS Brigade
- name: Mikuru Asahina
  gender: W
  role: Time Traveler
- namae: Yuki Nagato
  gender: F
  role: Humanoid Interface

```

Schema validation example:

```
$ kwalify -lf sos.schema sos.data
sos.data#0: INVALID
  - (line 5) [/1/gender] 'W': invalid gender value.
  - (line 7) [/2] key 'name:' is required.
  - (line 7) [/2/namae] key 'namae:' is undefined.

```

Class generation example:

```
$ kwalify -a genclass-java -f schema.yaml
generating ./Member.java...done.
$ cat ./Member.java
// generated by kwalify from schema.yaml

import java.util.*;

/**
 *
 */
public class Member {

    private String _name;
    private String _gender;
    private String _role;

    public Member() {}

    public Member(Map map) {
        _name = (String)map.get("name");
        _gender = (String)map.get("gender");
        _role = (String)map.get("role");
    }

    public String getName() { return _name; }
    public void setName(String name_) { _name = name_; }
    public String getGender() { return _gender; }
    public void setGender(String gender_) { _gender = gender_; }
    public String getRole() { return _role; }
    public void setRole(String role_) { _role = role_; }
}

```

## Changes from 0.7.1

- [bugfix] fix kwalify command not to raise error when YAML document  
is empty (thanks to Nuttall).
- [bugfix] fix Kwalify::Util.untabify() not to remove tailing empty  
strings.
