L'ilôt de données inséré dans un document HTML est représenté par un objet spécifique possédant ses propres propriétés, méthodes et événements.

<XML id="Identificateur_Ilot">...</XML>
<script language="Javascript">
  Objet_XML = Identificateur_Ilot

  Objet_XML.Propriété | Méthode | Evénement
</script>

L'objet DHTML Document contient une méthode XMLDocument permettant de retourner un ilôt de données contenu dans le document HTML.

Objet_XML = document.XMLDocument;

A partir de la palette d'outils dédiée à l'objet Data Islands XML, il est possible de manipuler l'arborescence de l'ilôt de données XML.

Les éléments du DOM (Document Object Model) sont, pour la plupart, utilisables sur l'objet d'ilôt de données XML.

Les Propriétés
Propriété
Description
Objet_XML.Objet_XML.canHaveHTML = True | False
fixe ou récupère la valeur indiquant si l'objet peut contenir un balisage HTML.
Chaîne_de_caractères = Objet_XML.id
récupère la chaîne de caractères identifiant (ID) l'objet.
True | False = Objet_XML.isContentEditable
récupère la valeur indiquant si l'utilisateur édite le contenu de l'objet.
True | False = Objet_XML.isDisabled
récupère la valeur indiquant si l'utilisateur peut interagir sur l'objet.
True | False = Objet_XML.isMultiLine
récupère la valeur indiquant si le contenu de l'objet contient une ou plusieurs lignes.
Set Objet_Element = Objet_XML.parentElement
récupère l'objet parent dans l'arborescence de l'objet XML.
enumReadyState = Objet_XML.readyState
récupère l'état courant de l'objet.
Objet_XML.recordset = Objet_Recordset
fixe ou retourne à partir d'un objet source de données une référence vers le jeu d'enregistrements par défaut.
Nom = Objet_XML.scopeName
retourne l'espace de noms défini pour l'élément.
Objet_XML.src = Adresse
fixe ou retourne une adresse URL permettant de charger l'objet.
Objet_XML.tagUrn = URN
fixe ou retourne l'URN (Uniform Resource Name) spécifié dans la déclaration d'espace de noms.
Set Objet_DOMDocument = Objet_XML.XMLDocument
retourne une référence vers le DOM XML (XML Document Object Model) affichée par l'objet.
Les Méthodes
Méthode
Description
Identifiant = Objet_XML.addBehavior(Adresse_URL)
attribue un comportement à l'élément.
Composant = Objet_XML.componentFromPoint(Coord_X, Coord_Y)
retourne le composant localisé aux coordonnées spécifiées via certains événements.
True | False = Objet_XML.fireEvent(Evénement[, Objet_Evénement])
lance un événement spécifié sur l'objet.
Set Objet_Attribut = Objet_XML.getAttributeNode(Nom)
retourne un objet attribut référencé par la propriété attribute.name.
Set Objet_Recordset = Objet_XML.namedRecordset(Nom[, Chemin])
retourne l'objet recordset correspondant au membre de données nommé à partir d'un objet source de données (DSO).
Objet_XML.normalize()
fusionne les objets TextNodepour produire un modèle d'objet de document normalisé.
Information = Objet_XML.parseError.Propriété
retourne par l'intermédiaire de ses propriétés les information à propos de l'erreur en cours.
Ref_Objet_Attribut = Objet_XML.removeAttributeNode(Objet_Attribut)
enlève un objet attribute à partir de l'objet.
True | False = Objet_XML.removeBehavior(ID)
sépare un comportement de l'élément.
Ref_Objet_Attribut = Objet_XML.setAttributeNode(Objet_Attribut)
fixe un objet attribute comme une partie de l'objet.
Les Evénements
Evénement
Description
ondataavailable
est lancé périodiquement lorsque les données arrivent à partir des sources de données qui transmettent d'une façon asynchrone leurs données.
ondatasetchanged
est lancé lorsqe le jeu de données exposé par un objet source de données change.
ondatasetcomplete
est lancé pour indiquer que toutes les données sont disponibles à partir de l'objet source de données.
onreadystatechange
est lancé lorsque l'état de l'objet a changé.
onrowenter
est lancé pour indiquer que la ligne courante a été modifiée dans la source de onnées et les nouvelles valeurs de données sont disponibles sur l'objet.
onrowexit
est lancé juste avant le contrôle de source de données modifie la ligne courante dans l'objet.
onrowsdelete
est lancé lorsque les lignes ont été supprimées du jeu d'enregistrements.
onrowsinserted
est lancé juste après que de nouvelles lignes soient insérées dans le jeu d'enregistrements courant.

Les événements sont utilisable de diverses manières.

<ELEMENT Evénement="Gestionnaire" ... >
Utilisable sur toutes les plateformes.

Objet_XML.Evénement="Gestionnaire"
Utilisable en JScript et Javascript.

Objet.Evénement = GetRef("Gestionnaire")
utilisable sous VBScript.

<script for="objet" event="Evénemement">...</script>
Utilisable uniquement sur Internet Explorer.
Exemple [voir]
<html>
  <head>
    <title>Affichage des caractéristiques d'une arborescence XML</title>
  </head>
  <body>
    <XML id="Donnee_XML" src="logitheque.xml"></XML>
    <a href="javascript:Analyse()">Lancer l'analyse du document</a>
    <SPAN id="Affichage"></SPAN>
    <script language="Javascript" type="text/javascript">
      var Tab_TypeNoeud = new Array('ELEMENT', 'ATTRIBUT', 'TEXTE',
                              'CDATA SECTION', 'ENTITY REFERENCE', 'ENTITY',
                              'PROCESSING INSTRUCTION', 'COMMENT', 'DOCUMENT',
                              'DOCUMENT TYPE', 'DOCUMENT FRAGMENT', 'NOTATION');
      function Analyse()
      {
        var tab1 = '<table border="1" cellpadding="3"'
              + 'cellspacing="3" width="60%">'
              + '<tr><th width="10%">Niveau</th>'
              + '<th width="45%">Nom du Noeud</th>'
              + '<th width="45%">Type du Noeud</th></tr><tr>'
              + '<th colspan="3">Valeur du Noeud</th></tr>';
        var tab2 = '</table>';
        var Info;
        var Fichier_XML = Donnee_XML;
        if (Fichier_XML.parseError.errorCode != 0)
        {
          Info = '<h3>Le fichier XML est invalide.</h3>';
          Info += '<table><tr><td><b>Code d'erreur</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.errorCode + '</td></tr>';
          Info += '<tr><td><b>Description</b></td><td><b>: </b>' 
                    + Fichier_XML.parseError.reason + '</td></tr>';
          Info += '<tr><td><b>Fichier</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.filepos + '</td></tr>';
          Info += '<tr><td><b>Adresse du fichier</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.url + '</td></tr>';
          Info += '<tr><td><b>Ligne responsable</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.srcText + '</td></tr>';
          Info += '<tr><td><b>Numéro de Ligne</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.line + '</td></tr>';
          Info += '<tr><td><b>Numéro de Colonne</b></td><td><b>: </b>'
                    + Fichier_XML.parseError.linepos + '</td></tr></table>';
          document.write(Info);
          return;
        }
        Affichage.innerHTML = tab1 + AffichageNoeudEnfant(Fichier_XML, 0) + tab2;
      }

      function AffichageNoeudEnfant(Noeud, Niveau)
      {
        var Resultat = '';
        var Longueur = 0;
        var Num_Noeud = 0;
        var Liste_Attribut;
        var Num_Attribut;
        Resultat += '<tr><th>' + Niveau + '</th><td>' + Noeud.nodeName
               + '</td><td>' + Tab_TypeNoeud[Noeud.nodeType - 1] + '</td></tr>'
               + '<tr><td colspan="3">' + Noeud.nodeValue + '</td></tr>';
        Liste_Attribut = Noeud.attributes;
        if (Liste_Attribut != null)
        {
          Longueur = Liste_Attribut.length;
          if (Longueur > 0)
          {
            for (Num_Attribut = 0; Num_Attribut < Longueur; Num_Attribut++)
              Resultat += '<tr><th>' + Niveau + '</th>'
                     + '<td>' + Liste_Attribut(Num_Attribut).nodeName + '</td><td>'
                     + Tab_TypeNoeud[Liste_Attribut(Num_Attribut).nodeType - 1]
                     + '</td></tr><tr><td colspan="3">' 
                     + Liste_Attribut(Num_Attribut).nodeValue + '</td></tr>';
          }
        }
        Longueur = Noeud.childNodes.length;
        if (Longueur > 0)
          for (Num_Noeud = 0; Num_Noeud < Longueur; Num_Noeud++)
            Resultat += 
              AffichageNoeudEnfant(Noeud.childNodes(Num_Noeud), Niveau + 1);
        return Resultat;
      }
    </script>
  </body>
</html>