Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

Client Serveur – DTD Intégration

Programmation Client Serveur



Introduction:

  • Au cours des derniers chapitres, nous avons étudié tout ce qu’il faut savoir ou presque sur les DTD.
  • Il vous reste cependant encore une chose à apprendre avant que vous puissiez être indépendant et passer à la pratique : où écrire les DTD ?
  • Ce dernier chapitre avant un TP sera également l’occasion de vous révéler qu’il existe en réalité plusieurs sortes de DTD.

Les DTD internes:

  • Une DTD interne est une DTD qui est écrite dans le même fichier que le document XML.
  • Elle est généralement spécifique au document XML dans lequel elle est écrite.

La syntaxe

  • Une DTD interne s’écrit dans ce qu’on appelle le DOCTYPE.
  • On le place sous le prologue du document et au dessus du contenu XML.
  • Voyons plus précisément la syntaxe : <!DOCTYPE racine [ ]>
  • La DTD interne est ensuite écrite entre les [].
  • Dans ce DOCTYPE, le mot racine doit être remplacé par le nom de la balise qui forme la racine du document XML.

Exemple

  • Une boutique possède plusieurs téléphones.
  • Chaque téléphone est d’une certaine marque et d’un certain modèle représenté par une chaîne de caractère.
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
<boutique>
  <telephone>
    <marque>Samsung</marque>
    <modele>Galaxy S3</modele>
  </telephone>
  <telephone>
    <marque>Apple</marque>
    <modele>iPhone 4</modele>
  </telephone>
  <telephone>
    <marque>Nokia</marque>
    <modele>Lumia 800</modele>
  </telephone>
</boutique>
<!ELEMENT boutique (telephone*)>
<!ELEMENT telephone (marque, modele)>
<!ELEMENT marque (#PCDATA)>
<!ELEMENT modele (#PCDATA)>
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boutique [
  <!ELEMENT boutique (telephone*)>
  <!ELEMENT telephone (marque, modele)>
  <!ELEMENT marque (#PCDATA)>
  <!ELEMENT modele (#PCDATA)>
]>
<boutique>
  <telephone>
    <marque>Samsung</marque>
    <modele>Galaxy S3</modele>
  </telephone>
  <telephone>
    <marque>Apple</marque>
    <modele>iPhone 4</modele>
  </telephone>
  <telephone>
    <marque>Nokia</marque>
    <modele>Lumia 800</modele>
  </telephone>
</boutique>

Les DTD externes:

  • Une DTD externe est une DTD qui est écrite dans un autre document que le document XML.
  • Si elle est écrite dans un autre document, c’est que souvent, elle est commune à plusieurs documents XML qui l’exploitent.
  • De manière générale, afin de bien séparer le contenu XML de sa définition DTD, on prendra l’habitude de créer plusieurs fichiers afin de les séparer.
  • Un fichier contenant uniquement une DTD porte l’extension .dtd.

La syntaxe

  • L’étude de la syntaxe d’une DTD externe est l’occasion de vous révéler qu’il existe en réalité 2 types de DTD : les DTD externes PUBLIC et les DTD externes SYSTEM.
  • Dans les 2 cas et comme pour une DTD interne, c’est dans le DOCTYPE que cela se passe.

PUBLIC

  • Les DTD externes PUBLIC sont généralement utilisées lorsque la DTD est une norme.
  • C’est par exemple cas dans les documents xHTML 1.0.
  • La syntaxe est la suivante : <!DOCTYPE racine PUBLIC “identifiant” “url”>
  • Si on l’applique à un document xHTML, on obtient alors le DOCTYPE suivant: ü
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

SYSTEM

  • Une DTD externe SYSTEM permet d’indiquer au document XML l’adresse du document DTD.
  • Cette adresse peut-être relative ou absolue.
  • Voyons plus précisément la syntaxe : <!DOCTYPE racine SYSTEM “URI”>

SYSTEM, Exemple

  • Une boutique possède plusieurs téléphones.
  • Chaque téléphone est d’une certaine marque et d’un certain modèle.
  • Tous les deux, marque et modèle, représentés par une chaîne de caractère.
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
<boutique>
  <telephone>
    <marque>Samsung</marque>
    <modele>Galaxy S3</modele>
  </telephone>
  <telephone>
    <marque>Apple</marque>
    <modele>iPhone 4</modele>
  </telephone>
  <telephone>
    <marque>Nokia</marque>
    <modele>Lumia 800</modele>
  </telephone>
</boutique>
<!ELEMENT boutique (telephone*)>
<!ELEMENT telephone (marque, modele)>
<!ELEMENT marque (#PCDATA)>
<!ELEMENT modele (#PCDATA)> 
Doc1.dtd

<!ELEMENT boutique (telephone*)>
<!ELEMENT telephone (marque, modele)>
<!ELEMENT marque (#PCDATA)>
<!ELEMENT modele (#PCDATA)> 
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boutique SYSTEM "doc1.dtd">
<boutique>
  <telephone>
    <marque>Samsung</marque>
    <modele>Galaxy S3</modele>
  </telephone>
  <telephone>
    <marque>Apple</marque>
    <modele>iPhone 4</modele>
  </telephone>
  <telephone>
    <marque>Nokia</marque>
    <modele>Lumia 800</modele>
  </telephone>
</boutique> 

Retour sur le prologue

  • Dans le cas d’une DTD externe, nos documents XML ne sont plus autonomes, en effet, ils font référence à un autre fichier qui fournit la DTD.
  • Afin que le document contenant la DTD soit bien pris en compte, nous devons l’indiquer en passant simplement la valeur de l’attribut standalone à “no“.
<?xml version = "1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE boutique SYSTEM "doc1.dtd">
<boutique>
  <telephone>
    <marque>Samsung</marque>
    <modele>Galaxy S3</modele>
  </telephone>
  <telephone>
    <marque>Apple</marque>
    <modele>iPhone 4</modele>
  </telephone>
  <telephone>
    <marque>Nokia</marque>
    <modele>Lumia 800</modele>
  </telephone>
</boutique>

Résumé:

  • Les DTD internes s’écrivent dans le document XML.
  • Les DTD externes s’écrivent dans un fichier différent de celui du document XML dont l’extension est.dtd.



Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More