XML et DTD

Pour commencer

Si vous avez un doute sur la syntaxe, allez voir:

Voici la recette des spaghettis bolognaise :

Recette de Spaghettis à la sauce Bolognaise
pour 6 personnes
ingrédients : 
- 900 gr spaghettis
- 6 tomates
- 3 oignons
- 300 gr boeuf haché
- 300 gr porc haché
- huile d'olive
- ail
- thym
- sel
- poivre
- parmesan
Préparation : 20 minutes
Cuisson : 2h
Difficulté : facile

- Emincez les oignons. Faites les revenir dans une poële à
  l'huile d'olive. Ajoutez la viande mélangée. Laissez 5 min sur feu vif.

- Ajoutez les tomates fraîches coupées en cubes, avec une gousse
  d'ail hachée et du thym. Salez, poivrez. Laissez mijoter environ 2
  heures sur feu doux

- Faites cuire les 900 gr. de spaghettis dans un grand volume
  d'eau bouillante salée, avec une cuiller à soupe d'huile
  d'olive. Surveillez la cuisson et arrêtez la quand les pâtes sont
  cuites mais craquent légèrement sous la dent ("al dente").

- Servez les spaghettis avec la sauce chaude et du parmesan
  frais rapé. Bon appétit!

Proposez une structuration en un document XML de cette recette (vous pouvez bien sûr reprendre ce que nous avons fait mardi en cours). Conservez le résultat dans spaghettisBolo.xml.

Vous lui associerez une feuille de style pour lui donner une légère mise en forme. Regardez le rendu de votre document avec Firefox.

Ecrivez votre CV en XML dans un document cv.xml. Vous ferez attention à l'organisation de votre document. Votre CV doit contenir, outre votre état-civil, une partie sur vos diplômes et études, une partie sur vos expériences professionnelles, et une partie sur ... tout le reste qui vous semble pertinent (langues étrangères, ...).

Ajoutez une feuille de style pour effectuer la mise en forme. Regardez également le rendu de votre document avec Firefox.

Définition de Type de Document

Pour vérifier la validation de documents XML, nous allons utiliser xmllint. xmllint est une commande en ligne qui permet d'analyser en document XML et, entre autres, de vérifier sa validité par rapport à une DTD. Utilisez l'option --valid (et le manuel d'aide man xmllint).

Ecrivez une DTD pour votre recette dans recette.dtd. Ajoutez à spaghettiBolo.xml une déclaration de type de document faisant référence à recette.dtd. Validez votre document.

Voici une recette de tajine d'agneau aux pruneaux :

Recette : tajine d'agneau aux pruneaux
Préparation : 20 mn
Cuisson : 1h30
Difficulté : simple
Prix : 3

Ingrédients (pour 6 personnes) :

- 500 g de pruneaux
- du thé chaud
- 500 g oignons
- huile d'olive
- 1,5 kg d'épaule d'agneau coupée en morceaux
- 2 gousses d'ail
- 1/2 cuillère à café de cannelle
- 1/2 cuillère à café de gingembre
- 1 dosette de safran
- quelques grains de coriandre écrasés
- 100 g amandes émondées
- 3 cuillères à soupe de miel


Préparation :

Faites tremper les 500 g de pruneaux dans du thé chaud. Faites revenir
les oignons émincés dans l'huile d'olive. Quand ils sont dorés,
retirez-les et remplacez-les par la viande.

Lorsque les morceaux sont bien dorés, mettez-les dans une cocotte avec
les oignons. Salez et poivrez. Ajoutez l'ail écrasé, la cannelle, le
gingembre, le safran et les grains de coriandre. Couvrez d'eau et
faites cuire 1 heure à feu doux.

Ajoutez ensuite les pruneaux égouttés, puis poursuivez la cuisson 20
min à couvert.

Faites revenir les amandes dans un peu de beurre chaud. Egouttez-les
puis ajoutez-les à la viande avec le miel.

Laissez cuire encore 5 min sans couvrir.

Servez accompagné de semoule de couscous.
	

Écrivez une version XML de cette recette dans le fichier tajine.xml. Vérifiez sa validité par rapport à la DTD recette.dtd.

Ecrivez une DTD pour votre CV dans cv.dtd. Ajoutez à cv.xml une déclaration de type de document faisant référence à cv.dtd. Validez votre document.

Ouvrez OpenOffice et créez un petit document, avec un peu de mise en forme. Enregistrez ce document au format OpenOffice (.odt).

Dans une console, décompressez le document avec la commande unzip. Observez le résultat.

Regardez le contenu du fichier content.xml avec Firefox.

La DTD des documents OpenOffice se trouve sur /usr/lib/openOffice2.0/share/dtd/officedocument/1_0. Jetez un oeil à office.dtd et à office.mod.

Travailler avec des entités

Dans votre recette, déclarez une entité générale interne qui contient du texte. Validez votre document avec xmllint. Que se passe-t-il? Utilisez maintenant l'option --noent. Regardez également le rendu de votre document avec Firefox.

Maintenant, votre entité doit être une entité externe : elle fait référence à un document dedans.xml (n'oubliez pas de préciser SYSTEM entre le nom de l'entité et son contenu). Recommencez les étapes de validation avec xmllint et Firefox.

Que se passe-t-il ? Firefox n'accède pas aux entités externes pour des raisons de sécurité.