Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Annexe F Définitions de type de document pour le protocole CRNP

Cette annexe présente les DTD (définitions de type de document) du protocole CRNP (Cluster Reconfiguration Notification Protocol).

DTD XML SC_CALLBACK_REG


Remarque :

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
>

DTD XML NVPAIR

<!— Spécification du format XML de NVPAIR

        Copyright 2001-2003 Sun Microsystems, Inc. Tous droits réservés.
        Utilisation sous licence.

        Utilisation :
             Un élément nvpair est utilisé dans un élément SC_EVENT ou SC_CALLBACK_REG. 
—>

<!— Définition de NVPAIR

       NVPAIR est une paire nom/valeurs servant à représenter des combinaisons arbitraires
       de nom/valeurs.
       Un élément nvpair représente la traduction directe et générique de la structure
       nvpair_t de Solaris utilisée par la structure sysevent. Aucun type de données n'est
       associé au nom et à la valeur (qui ne sont que du texte arbitraire) dans cet élément xml. 

       NVPAIR comprend uniquement un élément NAME et un ou plusieurs éléments VALUE.
       Un élément VALUE représente une valeur scalaire, tandis que plusieurs éléments VALUE
       représentent un ensemble de valeurs.

       ATTRIBUTS :

       CONTENU :
               SUBELEMENTS: NAME(1), VALUE(1 ou plusieurs)
—> 

<!ELEMENT NVPAIR (NAME,VALUE+)>
<!— Définition de NAME

        NAME représente simplement une chaîne dont la longueur est arbitraire.

        ATTRIBUTS :

        CONTENU :
                Données texte arbitraires à introduire entre <![CDATA[...]]> pour être
                ignorées par l'analyse XML. 
—> 
<!ELEMENT NAME (#PCDATA)>

<!— Définition de VALUE 
        VALUE représente simplement une chaîne dont la longueur est arbitraire.

        ATTRIBUTS :

        CONTENU :
                Données texte arbitraires à introduire entre <![CDATA[...]]> pour être
                ignorées par l'analyse XML. 
—>

<!ELEMENT VALUE (#PCDATA)>

DTD XML SC_REPLY

<!— Spécification du format XML de SC_REPLY

        Copyright 2001-2003 Sun Microsystems, Inc. Tous droits réservés.
        Utilisation sous licence.
—>

<!— Définition de SC_REPLY

        L'élément racine du document XML représente une réponse à un message. Cette
        réponse contient un code et un message d'état.

        ATTRIBUTS :
                VERSION:        Version du protocole CRNP du message.
                STATUS_CODE:    Code de retour du message. Il peut s'agir de l'un des codes
                                suivants : OK, RETRY, LOW_RESOURCES, SYSTEM_ERROR, FAIL,
                                MALFORMED, INVALID_XML, VERSION_TOO_HIGH ou VERSION_TOO_LOW.

                CONTENU :
                        SUBELEMENTS: SC_STATUS_MSG(1)
—> 

<!ELEMENT SC_REPLY (SC_STATUS_MSG)>
<!ATTLIST SC_REPLY
        VERSION        NMTOKEN                                        #FIXED   "1.0"
        STATUS_CODE    OK|RETRY|LOW_RESOURCE|SYSTEM_ERROR|FAIL|MALFORMED|INVALID,\
                       VERSION_TOO_HIGH, VERSION_TOO_LOW) #REQUIRED
> 

<!— Définition de SC_STATUS_MSG
        SC_STATUS_MSG est simplement une chaîne de texte arbitraire expliquant le code d'état.
        À introduire entre <![CDATA[...]]> pour être ignoré par l'analyse XML.

        ATTRIBUTS :

        CONTENU :
                Chaîne arbitraire.
—>

<!ELEMENT SC_STATUS_MSG (#PCDATA)>

DTD XML SC_EVENT


Remarque :

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_EVENT

        Copyright 2001-2003 Sun Microsystems, Inc. Tous droits réservés.
        Utilisation sous licence.

        L'élément racine du document XML représente la traduction directe et générique
        du format de message syseventd de Solaris. Il a des attributs représentant la classe,
        la sous-classe, le fournisseur et l'éditeur et contient un nombre illimité
        d'éléments NVPAIR.

        ATTRIBUTS : 
                VERSION:        Version du protocole CRNP du message.
                CLASS:          Classe sysevent de l'événement
                SUBCLASS:       Sous-classe de l'événement
                VENDOR:         Fournisseur associé à l'événement
                PUBLISHER:      Éditeur de l'événement
        CONTENU :
                SUBELEMENTS: NVPAIR (0 ou plusieurs)
—>

<!ELEMENT SC_EVENT (NVPAIR*)>
<!ATTLIST SC_EVENT
        VERSION        NMTOKEN        #FIXED "1.0"
        CLASS          CDATA          #REQUIRED
        SUBCLASS       CDATA          #REQUIRED
        VENDOR         CDATA          #REQUIRED
        PUBLISHER      CDATA          #REQUIRED
>