<?xml version="1.0" encoding="utf-8" ?> <!-- DOCTYPE application PUBLIC "-//CYGNETS//DTD ADL 0.1//EN" "http://www.cygnets.co.uk/schemas/adl-0.1.1.dtd" --> <!-- DOCTYPE application SYSTEM "file:/C:/Projects/ADL/schemas/adl-0.dtd" --> <!-- Application Description Language framework testapp.adl.xml the object of this file is to exercise as many aspects of ADL as possible; it isn't expected to describe an application which does anything useful Copyright (c) 2008 Cygnet Solutions Ltd $Author: sb $ $Revision: 1.1 $ $Date: 2008-06-18 15:55:49 $ --> <application name="adltestapp" xmlns="http://cygnets.co.uk/schemas/adl-1.2"> <content> <head> </head> <top> </top> <foot> </foot> </content> <typedef name="postcode" type="string" size="10" pattern="^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"> <documentation> a postcode follows arcane rules; this specification from http://regexlib.com/REDetails.aspx?regexp_id=260. </documentation> </typedef> <typedef name="age" type="integer" minimum="0" maximum="120"> <documentation> We don't believe people who claim to be over 120. </documentation> </typedef> <group name="public"/> <group name="admin" parent="public"/> <entity name="person"> <property name="LastName" type="string" required="true" size="100" distinct="user"> <prompt locale="en-UK" prompt="Surname"/> </property> <property name="ForeNames" type="string" required="true" size="100" distinct="user"> <prompt locale="en-UK" prompt="Fore names"/> </property> <property name="Partner" type="entity" entity="person"/> <property name="Gender" type="string" size="1" required="true"> <option value="M"> <prompt locale="en-GB" prompt="Male"/> </option> <option value="F"> <prompt locale="en-GB" prompt="Female"/> </option> </property> <property name="age" type="defined" typedef="age"/> <property name="Address" type="entity" entity="address" distinct="user"/> <property name="Friends" type="link" entity="person"/> <form name="edit" properties="listed"> <fieldgroup name="Personal Data"> <documentation> Basic data about the person </documentation> <field property="ForeNames"> <prompt locale="en-GB" prompt="Fore names"/> </field> <field property="LastName"> <prompt locale="en-GB" prompt="Surname"/> <help locale="en-GB"> Family name of this person, conventionally their last name </help> </field> <field property="Partner"/> <field property="Gender"/> <field property="Address"/> </fieldgroup> <fieldgroup name="Community"> <field property="Friends"/> </fieldgroup> </form> </entity> <entity name="address"> <key> <property name="Number" type="string" size="8" distinct="all"> <prompt locale="en-GB" prompt="House number"/> <help locale="en-GB"> House or building number </help> </property> <property name="Postcode" type="defined" typedef="postcode" required="false" distinct="all"> <prompt locale="en-UK" prompt="Post code"/> </property> </key> <property name="Address1" type="string" required="true" size="255"> <prompt locale="en-UK" prompt="Address"/> </property> <property name="Address2" type="string" required="false" size="255"> <prompt locale="en-UK" prompt="Line 2"/> </property> <property name="Address3" type="string" required="false" size="255"> <prompt locale="en-UK" prompt="Line 3"/> </property> <property name="City" type="string" required="false" size="255"> <prompt locale="en-UK" prompt="Post town"/> </property> <property name="County" type="string" required="false" size="255" /> <form name="edit" properties="all"/> <list name="list" properties="user-distinct"/> </entity> </application>