Valid XHTML     Valid CSS2    

XML en L2, université d'Angers

    gilles.hunault@univ-angers.fr

 

T.P. numéro 2 : structuration

 

Table des matières cliquable

  1. Structuration de services

  2. Structuration de personnes, VCARD et XCARD

  3. Structuration de séquences Fasta

  4. Structuration de personnes et de services et entités

  5. Bases de données et XML ; espaces de noms

  6. Formats XML usuels en bioinformatique

 

Il est possible d'afficher toutes les solutions via  ?solutions=1  et de les masquer via  ?solutions=0 .

1. Structuration de services

On veut modéliser des services dans une entreprise comme Achats, Direction, Courrier... Ecrire le fichier serv00.xml défini à l'aide des seuls éléments services et service ; les noms de services seront intégrés comme des contenus-texte d'éléments. Comment vérifier que le fichier est bien formé ? Ajouter le service Représentation après avoir remarqué qu'il y a un caractère accentué. On nommera serv01.xml le fichier avec accent.

Ecrire le fichier serv02.xml défini à l'aide des éléments services et service et du sous-élément nomDeService dont le contenu-texte est un nom de service puis écrire le fichier serv03.xml défini à l'aide des éléments services et service et de l'attribut nomDeService.

On décide maintenant d'ajouter un identifiant de service (comme pour une base de données). Faut-il utiliser l'initiale des services ou un entier auto-incrémenté ? Si on nomme numService cette donnée, comment l'implémenter ? Vous écrirez dans serv04.xml à partir de serv02.xml la solution avec sous-élément et dans serv05.xml la solution avec attribut. Y a-t-il pour l'instant une meilleure solution ?

Solution :  

 

2. Structuration de personnes, VCARD et XCARD

On admettra qu'on peut définir sommairement une personne par un nom, un prénom et une ddn (date de naissance) que l'on réduira pour l'instant à une année de naissance. Ecrire, à partir des éléments personnes et personne dans le fichier pers01.xml une solution tout élément puis dans pers02.xml une solution tout attribut. Enfin, écrire dans pers03.xml une solution «panachée» où nom et prénom sont des éléments et où ddn est un attribut.

On insérera les personnes Isabelle DUPUIS, née en 1965, Jean DUPONT, né en 1963, Jack DUPONT, né en 1968.

Peut-on avoir à la fois un élément ddn et un attribut ddn ?

Y a-t-il une structuration meilleure qu'une autre pour cet exemple ?

Qu'est-ce que XCARD ? Quel rapport avec VCARD et XML ? Que sont RFC-6350 et RFC-63511 ?

Solution :  

 

3. Structuration de séquences Fasta

Une séquence Fasta traditionnelle se compose d'un identifiant comme 1YYCA et d'une suite d'acides aminés comme VKGFFAECKLA ou de nucléotides comme TATAAGCCTGCCAAGC. On se restreint pour ce qui suit aux protéines (définies comme des suites d'acides aminés). Si on nomme id et aa les données, comment structurer dans un fichier XML ces informations ? On pourra utiliser le fichier texte fasta_xmp.txt pour constituer un fichier XML de 3 séquences Fasta.

Que peut-on ajouter comme aide à la vérification ? Sous quelle forme, élément ou attribut ?

Solution :  

 

4. Structuration de personnes et de services et entités

Ecrire dans agences01.xml une solution tout élément qui intégre un fichier XML de personnes (auquel on aura ajouté un numéro de service nommé numService) et un fichier XML de services puis fournir dans agences02.xml une solution tout attribut. On pourra utiliser pers06.xml et serv06.xml pour constituer agences01.xml puis pers07.xml et serv07.xml pour constituer agences02.xml.

Si on utilise des entités de type caractères dans une DTD interne, est-ce que les logiciels rxp, xmllint ou xmlstarlet en tiennent compte ? Et le navigateur ? Comment le vérifier ?

Solution :  

 

5. Bases de données et XML ; espaces de noms

Peut-on facilement exporter une base de données MySQL en XML ?

Application : exporter la base GESTION qui contient les 4 tables FOUR, CLI, ART et CMD de notre tuteur MySql. Un script qui permet de recréer les tables et leur contenu est BD_gestion_mysql.

Pour les plus fort(e)s, on utilisera le docker nommé _php7 afin de créer BD_gestion_mysql.xml à l'aide de http://localhost/phpmyadmin ou en ligne de commandes. Pour les autres, on se contentera de rapatrier BD_gestion_mysql.xml.

On peut imaginer qu'une mauvaise conception d'une base de données ait abouti à un champ NOM pour le nom d'un fournisseur, à un champ NOM pour le nom d'un client et à un champ NOM pour le nom d'un article. Si on veut que ces trois noms soient désignés de façon différente, trouver une solution avec des attributs qui conserve la désignation <NOM> puis montrer comment les notions de namespace et de XML namespace permettent de «bien» gérer cette mauvaise conception. On pourra, pour tester la solution, utilisera comme point de départ le fichier de test noms.xml.

Solution :  

 

6. Formats XML usuels en bioinformatique

Le NCBI est un institut national américain qui fournit de nombreuses ressources en bioinformatique. Cherchez sur la page principale du site dans la base de données des protéines, le mot AAA18335 puis le mot 424143. Comment est affichée la séquence en acides aminés de la protéine correspondante ?

Afin d'éviter d'encombrer les serveurs, le NCBI propose un script pour accéder aux protéines nommé efetch. Après avoir lu la documentation correspondante, trouvez la syntaxe associée à la demande du fichier XML complet («Genpept») pour la protéine précédente. Comment est stockée la séquence en acides aminés de la protéine correspondante ? Et si on se focalise sur la séquence Fasta (via le format «TinySeq»), que faut-il changer au niveau du script ?

UNIPROT est un un autre centre international dédié à la bioinformatique. Cherchez la protéine précédente dans la base de connaissances des protéines. Comment fait-on pour voir le fichier XML correspondant ? Comment est stockée la séquence en acides aminés de la protéine correspondante ? A quoi correspond le format RDF proposé en haut et à droite du format XML dans la page Web de visualisation de la protéine ?

Décrire puis donner la structure du fichier P14602.xml et du fichier P14602.rdf.

Solution :  

 

Code-source php de cette page.

 

 

retour gH    Retour à la page principale de   (gH)