<grammar
xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<define name=“pattern1”>
<data type="string"> <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)</param> </data>
</define>
<start>
<element name="elem1"> <attribute name="attr1"> <list> <ref name="pattern1"/> </list> </attribute> </element>
</start>
</grammar>