CurlyML


To-Do List (TODO)

Stuff in the pipeline for CurlyML.

Annotations-powered Serializer

This seems a natural way to go. Look at how much Hibernate version 3 has been simplified by the replacement of cumbersome XML mapping files with neat annotations right there in the Java source.

Schema Language and Validator

These things also are a lot simpler in a simple language like CurlyML. I don't know about you but I think XML DTDs and Schemas aren't the easiest things in the world to read.

I'm thinking that something like this might be a good way of expressing schemas...

person {
	name { $ }
	address {
		street { $ }
		city { $ }
		state { $ }
		zip { $ }
	}
	?friends {
		*friend {
			name { $ }
		}
	}
	occupation { |{doctor engineer chef} }
	interest { 
		|{
			art{ |{ music photography painting } }
			cars{ |{racing collecting toy} }
			computers{ ?{ type { $ } }
		}
	}
}

This says: A person is defined as having a name node, (containing a string), followed by an address node which is composed of nodes named street, city, state and zip, which all contain a single string. A person furthermore may or may not contain a single node named "friends", which may contain any number of nodes named "friend", which in turn must contain a string.

A person must contain an occupation node, which contains a choice of texts which could be doctor, engineer, or chef.

Lastly we have an interest node, which contains a choice of art, music, or computers. Art and music have a sub node themselves which is in turn a choice. The computers node contains an optional type node.

x y zOrdered sequence
$String
?xx is optional
*xx may be repeated 0 or more times
+xx is repeated 1 or more times
x{ }x is a parent node which may contain other nodes between the curlies
|{x y z}choice of one of x, y or z

SourceForge.net Logo