start = zoo block = p | info | danger | attention inline = b | i | em | strong | stabilo | img attractions = aquarium?, vivarium?, enclos?, volière? animal = (animal-attr), nom, sexe, taille, poids, commentaire? animal-attr = attribute id { xsd:ID }, attribute espèce { text }?, attribute nom-savant { text }?, attribute photo { xsd:anyURI }?, attribute date-naissance { xsd:date } p = element p { (text | inline)* } info = element info { (text | inline)* } danger = element danger { (text | inline)* } attention = element attention { (text | inline)* } b = element b { (text | inline)* } i = element i { (text | inline)* } em = element em { (text | inline)* } strong = element strong { (text | inline)* } stabilo = element stabilo { (text | inline)* } img = element img { attribute src { xsd:anyURI }, empty } zoo = element zoo { block*, attractions } aquarium = element aquarium { mammifères-marins?, poissons? } mammifères-marins = element mammifères-marins { dauphins?, baleines?, orques? } poissons = element poissons { sélaciens? } vivarium = element vivarium { serpents?, arachnéens? } serpents = element serpents { boas? } arachnéens = element arachnéens { mygales? } enclos = element enclos { primates?, fauves? } primates = element primates { gorilles?, orangs-outans? } fauves = element fauves { tigres?, lions? } volière = element volière { oiseaux-terrestres?, oiseaux-aquatiques?, rapaces? } oiseaux-terrestres = element oiseaux-terrestres { autruches? } oiseaux-aquatiques = element oiseaux-aquatiques { pingoins?, manchots? } rapaces = element rapaces { aigles? } dauphins = element dauphins { (block | dauphin)+ } dauphin = element dauphin { animal } baleines = element baleines { (block | baleine)+ } baleine = element baleine { animal } orques = element orques { (block | orque)+ } orque = element orque { animal } sélaciens = element sélaciens { (block | requin)+ } requin = element requin { animal } boas = element boas { (block | boa)+ } boa = element boa { animal } mygales = element mygales { (block | mygale)+ } mygale = element mygale { animal } gorilles = element gorilles { (block | gorille)+ } gorille = element gorille { animal } orangs-outans = element orangs-outans { (block | orang-outan)+ } orang-outan = element orang-outan { animal } tigres = element tigres { (block | tigre)+ } tigre = element tigre { animal } lions = element lions { (block | lion)+ } lion = element lion { animal } autruches = element autruches { (block | autruche)+ } autruche = element autruche { animal } pingoins = element pingoins { (block | pingoin)+ } pingoin = element pingoin { animal } manchots = element manchots { (block | manchot)+ } manchot = element manchot { animal } aigles = element aigles { (block | aigle)+ } aigle = element aigle { animal } nom = element nom { text } sexe = element sexe { "M" | "F" | "?" } taille = element taille { attribute unité { "μm" | "mm" | "cm" | "dm" | "m" | "dam" }, attribute status { text }?, xsd:float { minInclusive = "0" } } poids = element poids { attribute unité { "μg" | "mg" | "cg" | "dg" | "g" | "dag" | "hg" | "kg" | "t" }, attribute status { text }?, xsd:float { minInclusive = "0" } } commentaire = element commentaire { commentaire-attlist, (text | block)* } commentaire-attlist &= empty