Add schemas code

http://www.artima.com/pins1ed/abstract-members.html#20.8