A továbbiak az XML (Extensible Markup Language) 1.0-as és az UML (Universal Modeling Language) 1.3-as verziójú szabványok alapján íródnak. Az UML szabványnak csak az objektum-típusok leírására vonatkozó részét használom, mivel a modellen belül lezajló folyamatok (pl. üzenetterjedés) az aspektusok számára nem lényegesek.
Az alábbiakban a hierarchiát leíró nyelv aspektusok nélküli változata következik, a további fejezetekben ezt fogjuk kiegészíteni a szükséges többletinformációkkal. Ez a módszer azért szerencsés, mert mindegyik implementálandó aspektus követi az objektum-hierarchiát (elképzelhető lenne olyan aspektus is, ami nem követ semmilyen a domain modellre jellemző hierarchiát, példának a kivételkezelést lehetne említeni.)
Feltételezem az XML (vagy SGML) alapfokú ismeretét a továbbiakban. Álljon itt egy rövid összefoglalás az általunk használt XML struktúrákról:
| Szintaxis | <CLASS> ... </CLASS> |
|---|---|
| Attribútumok |
|
| Tartalom | Nulla. vagy több ATTRIBUTE vagy METHOD tag |
| Helye | Dokumentum törzs |
A CLASS elem definiál egy osztályt. A kötelező NAME mező tartalmazza az osztály nevét. Ha az osztálynak van őse, akkor azt az ANCESTOR attribútummal adható meg. Az ős megadása nem kötelező, ha az ősnek nincsenek számunkra lényeges változói vagy metódusai. Ha vannak, akkor az őst is definiálni kell egy CLASS elemmel. Ha a CLASS-nak vannak leszármazott típusai, azokat kötelező egy-egy CLASS tag-gel definiálni.
A COMMENT mező tartalmát az aspektusokat implementáló program nem használja, ezt csak a hierarchiát emberek számára megjelenítő program számára kellhet.
| Szintaxis | <METHOD> ... </METHOD> |
|---|---|
| Attribútumok |
|
| Tartalom | Nulla, vagy több PARAM; Nulla vagy egy RETURN |
| Helye | CLASS |
A METHOD elem definiálja egy osztály egy metódusát. Nem szükséges az osztály összes metódusát definiálni, de ha egy metódus valamelyik aspektusunk szempontjából lényeges (pl. távolról elérhetővé akarjuk tenni), akkor kell hozzá egy METHOD tag.
A metódus paramétereit és visszatérési értékét megfelelő tagekkel definiálni kell. A paramétereket a megfelelő sorrendben kell megadni. A RETURN tag bárhol lehet, de célszerű a legvégére tenni. Ha nincs RETURN tag, az azt jelenti, hogy a metódus visszatérési értéke void.
Amennyiben az osztálynak több metódusa van azonos névvel, mindet külön definiálni kell, azonos NAME tag-gel.
| Szintaxis | <PARAM/> |
|---|---|
| Attribútumok |
|
| Tartalom | Üres |
| Helye | METHOD |
A PARAM tag-ek egy metódus paramétereit határozzák meg. Minden paraméterhez kell egy ilyen tag. A tag-ek sorrendje lényeges!
| Szintaxis | <RETURN/> |
|---|---|
| Attribútumok |
|
| Tartalom | Üres |
| Helye | METHOD |
A metódus visszatérési értéke. Ha ez a tag hiányzik, az azt jelenti, hogy a metódus visszatérési értéke void.
| Szintaxis | <ATTRIBUTE/> |
|---|---|
| Attribútumok |
|
| Tartalom | Üres |
| Helye | CLASS |