XML Schema

A HupWiki-ből...

XML-nyelvtanok megadására jó típusleírónyelv. Maga is XML-nyelvtan.

Nagyszámú primitív típust ismer (string, boolean, egész számok, valós számok, pozitív számok, karakterek, dátumok, pénzösszegek, stb., stb.), ezek közt igen sokféle bővítést és szűkítést is megenged (például reguláris kifejezések használatával, típusok közti metszetekkel és uniókkal, stb.). Mindezeket a tartalmakat elemtörzsekben és attribútumértékekben is megszabhatjuk.

Ez volt csak a kezdet. Elemtartalmakban sokféle kikötést tehetünk a tartalmazott elemek sorrendjére, kötelező vagy lehetséges előfordulására, azok számosságára, alternatívákra és sorozatokra. Típusok közt megadhatunk öröklési és behelyettesítési viszonyokat is, ezekben akár szűkítéseket is tehetünk (de ez eléggé komplikálja a helyzetet).

Mint e kiragadott példákból látható, elég sokoldalú nyelvről van szó. Hátránya, hogy hamar nagy terjedelművé dagad, és egyes határeseteket nehéz benne lekezelni. Ezek orvoslására fejlesztette ki James Clark a Relax NG nevű típusleírónyelvet.