la structure de données NVPAIR utilisée par les DTD SC_CALLBACK_REG et SC_EVENT n'est définie qu'une seule fois.
<!— Spécification du format XML de SC_CALLBACK_REG Copyright 2001-2003 Sun Microsystems, Inc. Tous droits réservés. Utilisation sous licence. Utilisation : Ce format XML permet à un client du protocole CRNP de se connecter initialement à un service, de se connecter ultérieurement à d'autres événements et de se déconnecter de plusieurs événements ou du service tout entier. Un client n'est identifié que par son port et son IP de rappel. Le port est défini dans l'élément SC_CALLBACK_REG et l'IP correspond à l'IP source de l'ouverture de session. L'attribut final de l'élément racine SC_CALLBACK_REG est ADD_CLIENT, ADD_EVENTS, REMOVE_CLIENT ou REMOVE_EVENTS, suivant la forme du message que le client utilise. SC_CALLBACK_REG contient aucun ou plusieurs sous-éléments SC_EVENT_REG. Un sous-élément SC_EVENT_REG spécifie un type d'événements. Un client peut ne spécifier que le type CLASS (un attribut de l'élément SC_EVENT_REG) ou indiquer une sous classe SUBCLASS (un attribut en option) pour bénéficier d'une précision accrue. Par ailleurs, SC_EVENT_REG comprend aucun ou plusieurs sous-éléments NVPAIR servant à spécifier encore davantage l'événement. Par conséquent, le client peut spécifier jusqu'à quel niveau de précision il souhaite être notifié des événements. Veuillez noter qu'un client ne peut, dans le même message, spécifier vouloir et ne pas vouloir être notifié des événements. Par contre, un client peut se connecter au service et à des événements dans le même message. Note de version : l'attribut VERSION de chaque élément racine est défini comme étant fixe, c'est-à-dire que la version doit être spécifiée pour tous les messages qui se conforment à ces DTD. Lorsqu'une nouvelle version du protocole est créée, l'attribut VERSION fixe des DTD modifiées possède une nouvelle valeur, de sorte que tous les messages se conformant à la nouvelle version doivent posséder le nouveau numéro de version. —> <!— Définition de SC_CALLBACK_REG L'élément racine du document XML est un message d'enregistrement qui comprend les ports de rappel et la version du protocole comme attribut ainsi qu'un attribut ADD_CLIENT, ADD_EVENTS, REMOVE_CLIENT ou REMOVE_EVENTS, indiquant le type d'enregistrement. Les types ADD_CLIENT, ADD_EVENTS et REMOVE_EVENTS doivent inclure un ou plusieurs sous-éléments SC_EVENT_REG. REMOVE_CLIENT ne doit pas être défini comme un sous-élément de SC_EVENT_REG. ATTRIBUTS : VERSION Version du protocole CRNP du message. PORT Port de rappel. REG_TYPE Type d'enregistrement : ADD_CLIENT, ADD_EVENTS, REMOVE_CLIENT ou REMOVE_EVENTS CONTENUS : SOUS-ÉLÉMENTS : SC_EVENT_REG (0 ou plusieurs) —> <!ELEMENT SC_CALLBACK_REG (SC_EVENT_REG*)> <!ATTLIST SC_CALLBACK_REG VERSION NMTOKEN #FIXED PORT NMTOKEN #REQUIRED REG_TYPE (ADD_CLIENT|ADD_EVENTS|REMOVE_CLIENT|REMOVE_EVENTS) #REQUIRED > <!— Définition de SC_EVENT_REG SC_EVENT_REG définit un événement pour lequel le client a notifié son désir ou son refus de recevoir des notifications d'événement. L'enregistrement peut concerner n'importe quel niveau de précision (d'une seule classe d'événements à des paires nom/valeurs spécifiques dont la présence est indispensable). Par conséquent, le seul attribut requis est CLASS. L'attribut SUBCLASS et les sous-éléments NVPAIRS sont optionnels et permettent d'obtenir une plus grande précision. Les enregistrements spécifiant les paires nom/valeurs pour lesquelles le client souhaite recevoir une notification indiquent l'acceptation des notifications de message de la classe/sous-classe spécifiée comportant TOUTES les paires nom/valeurs présentes. Les enregistrements spécifiant les paires nom/valeurs pour lesquelles le client ne souhaite pas recevoir de notification indiquent le rejet des notifications qui comportent EXACTEMENT les paires nom/valeurs de la précision spécifiée précédemment. Les enregistrements ne spécifiant pas les paires nom/valeurs pour lesquelles le client ne souhaite pas recevoir de notification indiquent le rejet de TOUTES les notifications de la classe/sous-classe spécifiée. ATTRIBUTS : CLASS: Classe d'événements pour laquelle l'élément est enregistré ou non. SUBCLASS: Sous-classe d'un événement (facultatif). CONTENU : SUBELEMENTS: 0 ou plusieurs NVPAIR. —> <!ELEMENT SC_EVENT_REG (NVPAIR*)> <!ATTLIST SC_EVENT_REG CLASS CDATA #REQUIRED SUBCLASS CDATA #IMPLIED >