Project Index | Documentation | Relax NG | Sample XML File
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <element name="raves-database"> <oneOrMore> <element name="production"> <attribute name="id"/> <oneOrMore> <ref name="Event"/> </oneOrMore> </element> </oneOrMore> </element> </start> <define name="Event"> <element name="event"> <attribute name="id"> <data type="ID"/> </attribute> <element name="date"> <data type="string"> <param name="pattern">\d{2}-\d{2}-\d{4}</param> </data> </element> <element name="cost"> <data type="decimal"/> </element> <element name="eventName"> <text /> </element> <choice> <element name="contact-info"> <oneOrMore> <ref name="Contact"/> </oneOrMore> </element> <ref name="Contact"/> </choice> <element name="time"> <text /> </element> <element name="location"> <text /> </element> <element name="ages"> <text /> </element> <optional> <element name="info"> <interleave> <text /> <zeroOrMore> <element name="rooms"><text/></element> </zeroOrMore> <zeroOrMore> <element name="featuring"><text/></element> </zeroOrMore> <zeroOrMore> <element name="website"><text/></element> </zeroOrMore> </interleave> </element> </optional> </element> </define> <define name="Contact"> <element name="contact"> <element name="person"> <text/> </element> <oneOrMore> <element name="phone"> <text/> <attribute name="type"> <choice> <value type="string">home</value> <value type="string">work</value> <value type="string">cell</value> </choice> </attribute> </element> </oneOrMore> <zeroOrMore> <element name="email"> <text/> </element> </zeroOrMore> </element> </define> </grammar>