L'objet IXMLDOMNotation contient une notation déclarée dans la Définition de Type de Document (DTD) ou dans le schéma.

Déclaration XSchema
<xs:notation name="nom_notation"
           public="ID_Public" system="URI" />
L'appel XSchema de la notation
<xs:element name="nom_element">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:hexBinary">
        <xs:attribute name="nom_attribut">
          <xs:simpleType>
            <xs:restriction base="xs:NOTATION">
              <xs:enumeration value="nom_notation"/>
              ...
              <xs:enumeration value="nom_notationN"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>
Utilisation dans le document XML
<nom_element nom_attribut="nom_notation">...</nom_element>
Déclaration DTD
<!NOTATION nom_notation SYSTEM "ID_Externe">
<!NOTATION nom_notation PUBLIC "ID_Public" "URI">
L'appel DTD de la notation
<!ENTITY nom_entité SYSTEM "URI" NDATA nom_notation>

<nom_element nom_attribut="&nom_entité;"/>

Les notations identifient par un nom le format d'entités non-analysées, le format des éléments qui porte un attribut de notation ou l'application à laquelle une instruction de traitement est adressée.

Un objet IXMLDOMNotation peut être créé au moyen de la méthode createNode appliquée à l'objet DOMDocument avec le type de noeud fixé à 12.

Set Objet_Notation = _
         Objet_Document.createNode(12, nom, URI_espace_noms)

La liste des notations dans une déclaration de type de document ou d'un schéma peut être extraite à partir de la propriété notations appliquée à l'objet IXMLDocumentType.

Set Objet_NamedNodeMap = Objet_DocumentType.notations

Set Objet_NamedNodeMap = Objet_Schema.notations
Set Objet_Notation = Objet_NamedNodeMap.item(index)

L'objet IXMLDOMEntity contenant une référence à une notation, peut livrer le nom de cette dernière par l'intermédiaire de la propriété notationName.

Chaîne = Objet_Entity.notationName

Un objet IXMLDOMNotation se distingue par un type de noeud spécifique, en l'occurrence par la valeur numérique 7 ou la chaîne de caractères notation en utilisant respectivement les propriétés nodeType et nodeTypeString.

Valeur_numérique = Objet_Notation.nodeType
Chaîne = Objet_Notation.nodeTypeString

Deux propriétés spécifiques à l'objet IXMLDOMNotation permettent de retourner l'identificateur public (publicID) ou système (systemID) de la notation.

Chaîne = Objet_Notation.systemID

Chaîne = Objet_Notation.publicID
Les Propriétés
Propriété
Description
Set Objet_NamedNodeMap = Objet_Notation.attributes
contient la liste des attributs pour ce noeud en lecture seule.
Chaîne = Objet_Notation.baseName
retourne le nom de base pour le nom qualifié avec l'espace de noms en lecture seule.
Set Objet_NodeList = Objet_Notation.childNodes
contient une liste de noeuds contenant les enfants en lecture seule.
Valeur = Objet_Notation.dataType
indique le type de données pour ce noeud en lecture et écriture.
Set Objet_Node = Objet_Notation.definition
retourne la définition d'un noeud dans le DTD ou le schéma en lecture seule.
Set Objet_Node = Objet_Notation.firstChild
contient le premier enfant de ce noeud en lecture seule.
Set Objet_Node = Objet_Notation.lastChild
contient le dernier noeud enfant en lecture seule.
Chaîne = Objet_Notation.namespaceURI
retourne l'URI (Uniform Resource Identifier) pour l'espace de noms en lecture seule.
Set Objet_Node = Objet_Notation.nextSibling
contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule.
Chaîne = Objet_Notation.nodeName
contient le nom qualifié de la référence d'entité, en lecture seule.
Valeur = Objet_Notation.nodeType
spécifie le type de noeud XML DOM qui détermine des valeurs valides et si le noeud peut avoir des noeuds enfants en lecture seule.
Objet_Valeur = Objet_Notation.nodeTypedValue
contient la valeur de ce noeud exprimée dans son type de donnée défini en lecture et écriture.
Chaîne = Objet_Notation.nodeTypeString
retourne le type de noeud dans une forme de chaîne de caractères en lecture seule.
Valeur = Objet_Notation.nodeValue
contient le texte associé avec le noeud en lecture et écriture.
Set Objet_Document = Objet_Notation.ownerDocument
retourne la racine du document qui contient ce noeud en lecture seule.
Set Objet_Node = Objet_Notation.parentNode
contient le noeud parent en lecture seule.
True | False = Objet_Notation.parsed
contient la valeur True si le noeud et tous ses descendants ont été analysées et instanciées, ou False si n'importe quels noeuds restent à être analysées en lecture seule.
Valeur = Objet_Notation.prefix
retourne le préfixe d'espace de noms en lecture seule.
Set Objet_Node = Objet_Notation.previousSibling
contient le frère gauche de ce noeud en lecture seule.
Chaîne = Objet_Notation.publicId
contient l'identificateur public associé avec l'entité, en lecture seule.
True | False = Objet_Notation.specified
indique si le noeud est explicitement spécifié ou dérivé d'une valeur par défaut dans le DTD ou le schéma en lecture seule.
True | False = Objet_Notation.systemId
contient l'identificateur du système pour la notation, en lecture seule.
Chaîne = Objet_Notation.text
contient le contenu textuel du noeud et de sa sous-arborescence en lecture et écriture.
Valeur = Objet_Notation.xml
contient la représentation XML du noeud et de tous ses descendants en lecture seule.
Les Méthodes
Méthode
Description
Set Objet_Node = Objet_Notation.appendChild(Nouvel_Enfant)
ajoute un nouvel enfant comme le dernier enfant de ce noeud.
Set Objet_Node = Objet_Notation.cloneNode(Bool_Profondeur)
crée un nouveau noeud qui est un double exact de ce noeud.
True | False = Objet_Notation.hasChildNodes()
retourne True si le noeud a des enfants.
Set Objet_Node = Objet_Notation.insertBefore(Nouvel_Enfant, Référence)
insère un noeud enfant à la gauche du noeud spécifié ou à la fin de la liste.
Set Objet_Node = Objet_Notation.removeChild(Noeud_Enfant)
enlève le noeud enfant spécifié de la liste d'enfant et le retourne.
Set Objet_Node = Objet_Notation.replaceChild(Nouvel_Enfant, Ancien_Enfant)
remplace l'ancien noeud enfant spécifié par le nouveau noeud enfant fourni dans le jeu d'enfants de ce noeud.
Set Objet_NodeList = Objet_Notation.selectNodes(Expression_Pattern)
applique l'opération de mise en correspondance de modèles indiquée au contexte de ce noeud et retourne la liste de noeuds correspondants.
Set Objet_Node = Objet_Notation.selectSingleNode(Chaîne_Requête)
applique l'opération de mise en correspondance de modèles indiquée au contexte de ce noeud et retourne la liste de premier noeud correspondant.
Chaîne = Objet_Notation.transformNode(Objet_StyleSheet)
traite ce noeud et ses enfants utilisant la feuille de style de tranformation (XSLT) indiquée et retourne la transformation résultante.
Objet_Notation.transformNodeToObject(Feuille_Style, Objet)
traite ce noeud et ses enfants utilisant la feuille de style de tranformation (XSLT) indiquée et retourne la transformation résultante dans l'objet fourni.
Exemple [voir]
<html>
  <head>
    <%
      Dim Objet_Document, fichier
      Dim affichage

      Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument.4.0")

      Objet_Document.async = false
      fichier = Server.MapPath("fichier.xml")
      Objet_Document.load fichier

      affichage = Visualise_Noeud(Objet_Document, 0)

      Function Visualise_Noeud(Objet_Noeud, nb_espaces)
        Const NODE_NOTATION = 12
        Dim resultat, i, nombre, nb_noeuds, Objet_Node
        resultat = ""

        For i = 1 To nb_espaces
          resultat = resultat & "  "
        Next

        resultat = resultat & "<b style='color: blue; font-weight: bold'>" _
                  & Objet_Noeud.nodeName _
                  & "</b>(" & Objet_Noeud.nodeTypeString & ") : " _
                  & Objet_Noeud.nodeValue

        If Objet_Noeud.nodeType = NODE_NOTATION Then
          resultat = resultat & "<b style='color:red'>[ SystemID = '" _
                       & Objet_Noeud.systemID & "' - PublicID = '" _
                       & Objet_Noeud.publicID & "' ]</b><br>"
        Else
          resultat = resultat & "<br>"
        End If

        nb_noeuds = Objet_Noeud.childNodes.length

        For nombre = 0 To nb_noeuds - 1
          Set Objet_Node = Objet_Noeud.childNodes(nombre)
          resultat = resultat & Visualise_Noeud(Objet_Node, nb_espaces + 2)
        Next

        Visualise_Noeud = resultat
      End Function
  %>
  </head>
  <body>
    <div><%= affichage %></div>
  </body>
</html>
Fichier : fichier.dtd
<?xml version="1.0" encoding="iso-8859-1"?>
<!ELEMENT vacance (document+)>
<!ELEMENT document EMPTY>
<!ATTLIST document source ENTITY #REQUIRED>
<!NOTATION avi SYSTEM "video/avi">
<!NOTATION mpeg SYSTEM "video/mpeg">
<!NOTATION mov SYSTEM "video/quicktime">
<!NOTATION jpeg SYSTEM "image/jpeg">
<!NOTATION gif SYSTEM "image/gif">
<!ENTITY vacanceavi SYSTEM "video.avi" NDATA avi>
<!ENTITY vacancempg SYSTEM "video.mpg" NDATA mpeg>
<!ENTITY vacancegif SYSTEM "photo.gif" NDATA gif>
<!ENTITY vacancejpeg SYSTEM "image.jpg" NDATA jpeg>
<!ENTITY vacancemov SYSTEM "video.mov" NDATA mov>
Fichier : fichier.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE videotheque SYSTEM "fichier.dtd">
<vacance>
  <document source="&vacanceavi;"/>
  <document source="&vacancegif;"/>
  <document source="&vacancejpeg;"/>
  <document source="&vacancemov;"/>
  <document source="&vacancempg;"/>
</vacance>