Objektum elemek: Az olyan XAML tageket, amik nem egy attribútumot definiálnak (lásd. később) objektum elemeknek nevezzük. Az objektum elemek tulajdonképpen egy a mögöttes alkalmazás logikában definiált osztály egy példánya.
v Az XAML egy szabály halmaz, ami leképezi az objektum elemeket osztályokra vagy struktúrákra, az attribútumokat tulajdonságokra vagy eseményekre, és az XML névtereket CLR névterekre. Az XAML elemek leképeződnek Microsoft .NET típusokra ahogy azok a kapcsolodó assembly-kben definiálva vannak, és az attribútumok pedig ezen típusok tagjai (member) lesznek.
Az osztály tulajdonságok (attribútumok) XAML-ben egy objektum elem tulajdonságaival egyeznek meg. A tulajdonság megadása több féle szintaxisban is történhet, ami mindig az aktuális tulajdonság karakterisztikájától függ.
Néhány tulajdonság megadása egyszerű attribútum szintaxissal (ahogy az XML-ben is szokás) nem lehetséges, mivel az objektum, vagy az információ amit át kell adni nem fejezhető ki egy egyszerű string segítségével. Ezekben az esetekben más szintaxist kell használnunk, mint a megszokott XML tulajdonság megadási mód. Ilyenkor a tulajdonság megadása egy speciális tag-el történik. Ennek a tagnek a tartalma lesz maga az attribútumnak értékül adandó objektum. Ezen tag szintaxisa <TypeName.Property>. Ezután a tulajdonság megadása szükséges. Ha az megtörtént a taget le kell zárni a </TypeName.Property> alakban. Azokban az esetekben, ha mind a két tulajdonság megadási mód támogatott, akkor bármelyiket is választjuk, általában ugyan arra az eredményre vezetnek. Azonban az olyan finomságok, mint például a white-space kezelés lényegesen eltér a két esetben. (lásd később) Azonban, ha lehet a klasszikus XML-szerű szintaxis használata ajánlott, hisz az sokkal kompaktabb, átláthatóbb kódot eredményez, de ez csak kódolási stílus kérdése, nem egy technikai szabály.
A következő példa megmutatja hogyan lehet az előző példa tulajdonságait attribútum szintaxis segítségével megadni.
Az XAML attribútumok között megjelenő tulajdonságokat a WPF elemek sokszor előre definiált alap osztályokból öröklik. Például az előző példa Background tulajdonsága nem közvetlenül a Button osztályban lett definiálva, hanem az osztály egy Control nevű alaposztályból származtatják, aminek létezik egy Background tulajdonsága.
Ez az öröklési viselkedés egy másik alapvető különbség az XML és a XAML értelmezése között. Az osztály öröklődés (legfőképpen amikor egy közreműködő osztály absztrakt) az oka annak, hogy az XAML elemek és az ő elérhető attribútumaik reprezentációja bonyolult séma típusok segítségével, amit az XML programozáshoz használnak. (Például DTD és XSD formátum). Azonban az X az XAML nevében kiterjeszthetőt jelent, és a kiterjeszthetőség megköveteli minden megadott reprezentáció teljességét.
A leírás kiterjesztéseket az XAML-ben kapcsos zárójelek ({ és }) közé kell tenni. Ez a jelölés átirányítja az XAML feldolgozót egy string általános feldolgozásról a string tartalmának feldolgozására, értelmezésére.
Amikor a tulajdonságok referencia típus értéket vesznek fel akkor gyakran megkövetelnek egy attribútum szintaxisú elem definíciót (ami mindig új példányt hoz létre az objektumból), vagy egy objektum referenciát a leíráson keresztül. A leírás kiterjesztés képes visszatérni egy már korábban példányosított objektumra mutató referenciával, így egy korábban objektum elemmel létrehozott objektum is átadható paraméterként.
Amikor leírás kiterjesztést használunk arra, hogy egy attribútumnak értéket adjunk, az attribútum érték behelyettesítési értékét az alkalmazás logika releváns osztálya szolgáltatja. A leggyakoribb leírás kiterjesztések a WPF alkalmazásokban a Binding, ami adatok hozzárendelésére használható és az erőforrás referenciák a StaticResource és a DynamicResource.
A következő példa Style tulajdonság értéke attribútum szintaxist használ. A Style tulajdonság felveszi egy példányát a Style osztálynak, egy referencia típusnak, ami alapvetően nem lehetne megadható egy attribútum szintaxis során. Ebben az esetben, az attribútum referencia egy leírás kiterjesztés, StaticResource. Amikor a leírás kiterjesztés feldolgozásra kerül, visszatér egy referenciával arra a Style objektumra ami korábban definiálva lett, az ún. erőforrás könyvtárban.
Sok WPF típus vagy azok attribútumai kiterjesztik az alapvető string feldolgozási szabályt, így string segítségével komplexebb típusok megadása is lehetséges. Alkalmazás kód szinten ez a feldolgozás CLR típus konverterek bevezetésével történik, amik feldolgozzák a string értékét. A Thickness struktúra típust általában arra használják, hogy megadja egy négyszögletes terület mértékét, mint például a Margin(margó)-nál. Ebben a példában látható az, hogy egy speciális típuskonvertált attribútum kifejezhető egy string segítségével, ami könnyebé teszé az XAML leírás használatát.