<?xml version=“1.0”?> <grammar xmlns=“relaxng.org/ns/structure/1.0” datatypeLibrary=“www.w3.org/2001/XMLSchema-datatypes” ns=“riddl.org/ns/datatypes/1.0”>
<define name="riddl-datatype-relpath"> <data type="string"> <param name="pattern">[@\]\[()\|\c+\-*?.,\\{}0-9 ]+</param> </data> </define> <define name="riddl-datatype-pathtemplate"> <data type="string"> <param name="pattern">/|(/([@\[\]()\|\c+\-*?.,\\{}0-9 ]+|\{\}))*</param> </data> </define> <define name="riddl-datatype-name-star"> <data type="string"> <param name="pattern">\i\c*|\*</param> </data> </define> <define name="riddl-datatype-name"> <data type="string"> <param name="pattern">\i\c*</param> </data> </define> <define name="riddl-att-name"> <attribute name="name"> <ref name="riddl-datatype-name"/> </attribute> </define> <define name="riddl-att-col-remove"> <optional> <ref name="riddl-att-name-star"/> </optional> <optional> <attribute name="type"> <choice> <value>header</value> <value>parameter</value> </choice> </attribute> </optional> </define> <define name="riddl-att-name-star"> <attribute name="name"> <ref name="riddl-datatype-name-star"/> </attribute> </define> <define name="riddl-att-method"> <attribute name="method"> <data type="string"> <param name="pattern">[a-z]+</param> </data> </attribute> </define> <define name="riddl-atts-request"> <choice> <attribute name="pass"> <ref name="riddl-datatype-name-star"/> </attribute> <attribute name="transformation"> <ref name="riddl-datatype-name"/> </attribute> <group> <optional> <attribute name="in"> <ref name="riddl-datatype-name-star"/> </attribute> </optional> <optional> <attribute name="out"> <ref name="riddl-datatype-name"/> </attribute> </optional> </group> </choice> </define>
</grammar>