SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
TELECOM BRETAGNE - F2B506 – 29/02/2012


Description d’un dispositif UPnP
La description d’un dispositif UPnP se fait de façon relativement simple grâce à un fichier description.xml. Celui-ci est de la forme :
Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf



<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0" configId="configuration number">
        <!--configId spécifie le numéro de la configuration à laquelle cette description appartient-->
        <specVersion>
        <!-- Spécifie la plus petite version de l'architecture supportée UPnP Device par le dispositif-->
                 <major>1</major>
                 <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut '1' pour l'architecture 1.0-->
                 <minor>0</minor>
                 <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut '0' pour l'architecture 1.0-->
        </specVersion>
        <device>
        <!--Balise contenant la description du dispositif -->
                 <deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType>
                 <!--Obligatoire; URI indiquant le type de dispositif UPnP.
                 Pour les dispositifs standards, URI de la forme : 'urn:schemas-upnp-org:device:' + deviceType + ':' + n°Version.
                 Les fonctions définis dans le type standard doivent alors être implémentées dans le device.
                 Pour les dispositifs non standards, URI de la forme : 'urn:' + vendorDomainName + ':device:' + deviceType + ':' + n°Version.
                 Dans les 2 cas, deviceType ne doit pas comporter plus de 64 caractères. -->
                 <friendlyName>short user-friendly title</friendlyName>
                 <!--Obligatoire; Nom du dispositif pour les utilisateurs : une string de moins de 64 caractères-->
                 <manufacturer>manufacturer name</manufacturer>
                 <!--Obligatoire; Nom du fabricant : une string de moins de 64 caractères-->
                 <manufacturerURL>URL to manufacturer site</manufacturerURL>
                 <!--Optionnel; url du site web du fabricant-->
                 <modelDescription>long user-friendly title</modelDescription>
                 <!-- Recommandé; Description du modèle du dispositif : une string de moins 128 caractères-->

                                                                                    1
<modelName>model name</modelName>
<!--Obligatoire; Nom du modèle : une string de moins de 32 caractères-->
<modelNumber>model number</modelNumber>
<!-- Recommandé; Numéro du modèle : une string de moins de 32 caractères-->
<modelURL>URL to model site</modelURL>
<!---Optionnel; url du site web du modèle-->
<serialNumber>manufacturer's serial number</serialNumber>
<!--Recommandé; numéro de série : une string de moins de 64 caractères-->
<UDN>uuid:UUID</UDN>
<!--Obligatoire; identifiant unique du dispositif : une string commençant par "uuid:" suivi d'un suffixe au format UUID-->
<UPC>Universal Product Code</UPC>
<!--Optionnel; numéro universel du produit : un nombre de 12 chiffres-->
<iconList>
         <!--Obligatoire si et seulement si le dispositif a une ou plusieurs icônes. Contient une balise 'icon' par image-->
         <icon>
         <!--Recommandé; contient la description d'une icône représentant le dispositif-->
                  <mimetype>image/format</mimetype>
                  <!--Obligatoire; mime type de l'icone-->
                  <width>horizontal pixels</width>
                  <!--Obligatoire; largeur de l'image en pixels : un entier-->
                  <height>vertical pixels</height>
                  <!--Obligatoire; hauteur de l'image en pixels : un entier-->
                  <depth>color depth</depth>
                  <!--Obligatoire; nombre de bits colorés par pixel : un entier-->
                  <url>URL to icon</url>
                  <!--Obligatoire; url pointant vers le fichier image de l'icône. Doit être relative par rapport au fichier courant -->
         </icon>
</iconList>
<serviceList>
<!--Optionnel; contient la liste des services offerts par le dispositif-->
         <service>
         <!--Optionnel; contient la description d'un service-->
                  <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>


                                                                    2
<!--Obligatoire; URI indiquant type de service UPnP ne devant pas contenir de ‘#’
                                   Pour les dispositifs standards, URI de la forme 'urn:schemas-upnp-org:service:' + serviceType + ':' + n°Version.
                                   (rattachement du service à un service standard)
                                   Pour les non standards, URI de la forme 'urn:' + vendorDomainName + ':service:' + serviceType + ':' + n°Version
                                   Dans les 2 cas, serviceType ne doit pas comporter plus de 64 caractères. -->
                                   <serviceId>urn:upnp-org:serviceId:serviceID</serviceId>
                                   <!--Obligatoire; URI identifiant du service. Doit être unique dans la description du dispositif.
                                   Pour les dispositifs standards, URI de la forme 'urn:upnp-org:serviceId:' + serviceId
                                   Pour les non standards, URI de la forme ‘urn:’ + vendorDomainName + ':serviceId:' + serviceId
                                   Dans les 2 cas, serviceId ne doit pas comporter plus de 64 caractères. -->
                                   <SCPDURL>URL to service description</SCPDURL>
                                   <!--Obligatoire: url vers le fichier description du service. Doit être relative par rapport au fichier courant -->
                                   <controlURL>URL for control</controlURL>
                                   <!--Obligatoire: url vers le répertoire control du service. Doit être relative par rapport au fichier courant.
                                   URL utilisée pour s'abonner et pour faire des actions.
                                   Si pas de répertoire control, balise vide -->
                                   <eventSubURL>URL for eventing</eventSubURL>
                                   <!--Obligatoire: url vers le répertoire eventSub du service. Doit être relative par rapport au fichier courant.
                                   URL utilisée pour s’abonner à des évènements. Deux services ne peuvent pas avoir la même url d’eventSub -->
                                   Si pas de répertoire control, balise vide -->
                          </service>
                 </serviceList>
                 <deviceList>
                 <!--Obligatoire si et seulement si le dispositif possède des dispositifs intégrés. Contient des balises 'device' -->
                 </deviceList>
                 <presentationURL>URL for presentation</presentationURL>
                 <!-- Recommandé; url vers le fichier presentation.html du dispositif. Doit être relative par rapport au fichier courant -->
          </device>
</root>




                                                                                    3
Description d’un service d’un dispositif UPnP
La description d’un service d’un dispositif UPnP se fait également grâce à un fichier description.xml. Celui-ci est de la forme :
Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf

<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0" xmlns:dt1="urn:domain-name:more-datatypes"
        xmlns:dt2="urn:domain-name:vendor-datatypes" configId="configuration number">
        <specVersion>
        <!-- Spécifie la plus petite version de l'architecture supportée UPnP Device par le dispositif-->
                 <major>1</major>
                 <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut '1' pour l'architecture 1.0-->
                 <minor>0</minor>
                 <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut '0' pour l'architecture 1.0-->
        </specVersion>
        <actionList>
        <!-- Obligatoire si et seulement si le service offre des actions. Contient des balises ‘action’-->
                 <action>
                           <name>actionName</name>
                           <!--Obligatoire; Nom de l’action. Ne doit pas contenir de ‘#’ ou de ‘-‘. Sensible à la casse. Les trois premières ne doivent pas être ‘xml’.
                           Doit commencer par une lettre (‘A’-‘Z’, ‘a’-‘z’), un chiffre (‘0’-‘9’), ou un ‘_’
                           Le reste doit être composé de lettres (‘A’-‘Z’, ‘a’-‘z’), chiffres (‘0’-‘9’), ‘_’ ou ‘.’
                           Pour les actions standards, ne doit pas commencer par ‘X_’ ou ‘A_’.
                           Pour les actions non standards, doit être de la forme : ‘X_’ + vendorDomain + ‘_’ + vendorAssignedActionName
                           Le tout est une string de moins de 32 caractères. -->
                           <argumentList>
                           <!-- Liste des arguments de l’action. Contient des balises argument. -->
                                    <argument>
                                             <name>argumentNameIn1</name>
                                             <!-- Obligatoire; Nom de l’argument. Soumis aux mêmes règles que la balise action-name-->
                                             <direction>in</direction>
                                             <!--Obligatoire ; deux valeurs possibles : ‘in’ ou ‘out’ (jamais les deux)
                                             Indique si l’argument est un input ou un output. Les arguments ‘in’ doivent être déclarés avec les arguments ‘out’ -->


                                                                                      4
<retval></retval>
                                           <!-- Optionnelle; Valeur de retour. Identifie au moins un argument output-->
                                           <relatedStateVariable>stateVariableName</relatedStateVariable>
                                           <!--Obligatoire ; Doit être le nom d’une variable d’état -->
                                  </argument>
                        </argumentList>
               </action>
       </actionList>
       <serviceStateTable>
               <!-- Contient la liste des variables d’états du service. -->
               <stateVariable sendEvents="yes"|"no" multicast="yes"|"no">
               <!-- sendEvents (« yes » ou « no », « yes » par défaut) définit si des évènements seront générés quand la valeur de cette variable sera modifiée.
               multicast (« yes ou « no », « no » par défaut) définit si des évènements seront générés avec du multicast-->
                        <name>variableName</name>
                        <!--Obligatoire ; Nom de la variable. Soumis aux mêmes règles que le nom de l’action -->
                        <dataType>basic data type</dataType>
                        <!-- Obligatoire ; type de la variable. La liste des types possibles est disponible dans le document source page 53-->
                        <defaultValue>default value</defaultValue>
                        <!-- Recommandé. Valeur initiale de la variable. Doit correspondre au type de la variable.
                        Doit respecter les contraintes des balises allowedValueRange et allowedValueList -->
                        <allowedValueRange>
                        <!-- Recommandé ; Définit les limites de valeurs pour une variable numérique. Ne doit être présente que pour types integer ou float-->
                                  <minimum>minimum value</minimum>
                                  <maximum>maximum value</maximum>
                                  <step>increment value</step>
                        </allowedValueRange>
                        <allowedValueList>
                        <!-- Recommandé ; Enumère les valeurs possibles de la variableCette balise ne doit être utilisée que pour une variable de type string-->
                                  <allowedValue>enumerated value</allowedValue>
                        </allowedValueList>
               </stateVariable>
       </serviceStateTable>
</scpd>


                                                                                 5

Mais conteúdo relacionado

Destaque

CQPNL Formation Coaching
CQPNL Formation CoachingCQPNL Formation Coaching
CQPNL Formation CoachingEmiliedavid
 
Busquedas egovermente sesion3
Busquedas egovermente sesion3Busquedas egovermente sesion3
Busquedas egovermente sesion3Alejandro Caro
 
9 mois après
9 mois après9 mois après
9 mois aprèssandre07
 
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013Levacomm
 
121112 steute presentation inovallee
121112 steute presentation inovallee121112 steute presentation inovallee
121112 steute presentation inovalleeClaire Chanterelle
 
Comment configurer un courriel de server en 2 min avec thunderbird - oolong ...
Comment configurer un courriel de server en 2 min avec thunderbird -  oolong ...Comment configurer un courriel de server en 2 min avec thunderbird -  oolong ...
Comment configurer un courriel de server en 2 min avec thunderbird - oolong ...Oolong Media
 
Presentación de Pablo Llanos
Presentación de Pablo LlanosPresentación de Pablo Llanos
Presentación de Pablo LlanosPablo Llanos
 
Communique de presse : porte-bebe-physiologique
Communique de  presse : porte-bebe-physiologiqueCommunique de  presse : porte-bebe-physiologique
Communique de presse : porte-bebe-physiologiqueRomu
 
Club de rencontre
Club de rencontreClub de rencontre
Club de rencontresandre07
 
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)Arnaud Robin
 
Planeacion de español de la primera jornada de practica
Planeacion de español de la primera jornada de practicaPlaneacion de español de la primera jornada de practica
Planeacion de español de la primera jornada de practicajose enrique tellez pacheco
 
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyron
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'AveyronRéunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyron
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyronudotsi12
 
Commune de Awans - Présentation socio-économique (SPI)
Commune de Awans - Présentation socio-économique (SPI)Commune de Awans - Présentation socio-économique (SPI)
Commune de Awans - Présentation socio-économique (SPI)CCICONNECT
 
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...Minnovarc
 
Présentacion versailles
Présentacion versaillesPrésentacion versailles
Présentacion versaillespilarmota
 
Stahlharter Käfig? Social Media Einsatz in bürokratisch strukturierten Orga...
Stahlharter Käfig? Social Media Einsatz in 	bürokratisch strukturierten Orga...Stahlharter Käfig? Social Media Einsatz in 	bürokratisch strukturierten Orga...
Stahlharter Käfig? Social Media Einsatz in bürokratisch strukturierten Orga...Austrian Red Cross
 
Auto apprentissage des langues avec les tice
Auto apprentissage des langues avec les ticeAuto apprentissage des langues avec les tice
Auto apprentissage des langues avec les ticeaudea
 
Transformer une photo en photo humoristique
Transformer une photo en photo humoristiqueTransformer une photo en photo humoristique
Transformer une photo en photo humoristiqueEPN Gouvy
 

Destaque (20)

CQPNL Formation Coaching
CQPNL Formation CoachingCQPNL Formation Coaching
CQPNL Formation Coaching
 
Busquedas egovermente sesion3
Busquedas egovermente sesion3Busquedas egovermente sesion3
Busquedas egovermente sesion3
 
9 mois après
9 mois après9 mois après
9 mois après
 
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013
VisioConférence de Christian Bodier sur Ecommerce Live en janv 2013
 
121112 steute presentation inovallee
121112 steute presentation inovallee121112 steute presentation inovallee
121112 steute presentation inovallee
 
Comment configurer un courriel de server en 2 min avec thunderbird - oolong ...
Comment configurer un courriel de server en 2 min avec thunderbird -  oolong ...Comment configurer un courriel de server en 2 min avec thunderbird -  oolong ...
Comment configurer un courriel de server en 2 min avec thunderbird - oolong ...
 
Presentación de Pablo Llanos
Presentación de Pablo LlanosPresentación de Pablo Llanos
Presentación de Pablo Llanos
 
Communique de presse : porte-bebe-physiologique
Communique de  presse : porte-bebe-physiologiqueCommunique de  presse : porte-bebe-physiologique
Communique de presse : porte-bebe-physiologique
 
Club de rencontre
Club de rencontreClub de rencontre
Club de rencontre
 
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)
Les DO&rsquo;s et DON&rsquo;T&rsquo;s du Social Analytics (par Christophe Lauer)
 
Planeacion de español de la primera jornada de practica
Planeacion de español de la primera jornada de practicaPlaneacion de español de la primera jornada de practica
Planeacion de español de la primera jornada de practica
 
Fête de mères 2012
Fête de mères 2012Fête de mères 2012
Fête de mères 2012
 
test
testtest
test
 
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyron
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'AveyronRéunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyron
Réunion Esprit d'Initiatives du 16 juin 2011 de l'UDOTSI de l'Aveyron
 
Commune de Awans - Présentation socio-économique (SPI)
Commune de Awans - Présentation socio-économique (SPI)Commune de Awans - Présentation socio-économique (SPI)
Commune de Awans - Présentation socio-économique (SPI)
 
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...
La méthode Tissot - Comment passer d’une dynamique d’innovation réussie à une...
 
Présentacion versailles
Présentacion versaillesPrésentacion versailles
Présentacion versailles
 
Stahlharter Käfig? Social Media Einsatz in bürokratisch strukturierten Orga...
Stahlharter Käfig? Social Media Einsatz in 	bürokratisch strukturierten Orga...Stahlharter Käfig? Social Media Einsatz in 	bürokratisch strukturierten Orga...
Stahlharter Käfig? Social Media Einsatz in bürokratisch strukturierten Orga...
 
Auto apprentissage des langues avec les tice
Auto apprentissage des langues avec les ticeAuto apprentissage des langues avec les tice
Auto apprentissage des langues avec les tice
 
Transformer une photo en photo humoristique
Transformer une photo en photo humoristiqueTransformer une photo en photo humoristique
Transformer une photo en photo humoristique
 

Description d'un dispositif et d'un service UPnP

  • 1. TELECOM BRETAGNE - F2B506 – 29/02/2012 Description d’un dispositif UPnP La description d’un dispositif UPnP se fait de façon relativement simple grâce à un fichier description.xml. Celui-ci est de la forme : Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf <?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0" configId="configuration number"> <!--configId spécifie le numéro de la configuration à laquelle cette description appartient--> <specVersion> <!-- Spécifie la plus petite version de l'architecture supportée UPnP Device par le dispositif--> <major>1</major> <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut '1' pour l'architecture 1.0--> <minor>0</minor> <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut '0' pour l'architecture 1.0--> </specVersion> <device> <!--Balise contenant la description du dispositif --> <deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType> <!--Obligatoire; URI indiquant le type de dispositif UPnP. Pour les dispositifs standards, URI de la forme : 'urn:schemas-upnp-org:device:' + deviceType + ':' + n°Version. Les fonctions définis dans le type standard doivent alors être implémentées dans le device. Pour les dispositifs non standards, URI de la forme : 'urn:' + vendorDomainName + ':device:' + deviceType + ':' + n°Version. Dans les 2 cas, deviceType ne doit pas comporter plus de 64 caractères. --> <friendlyName>short user-friendly title</friendlyName> <!--Obligatoire; Nom du dispositif pour les utilisateurs : une string de moins de 64 caractères--> <manufacturer>manufacturer name</manufacturer> <!--Obligatoire; Nom du fabricant : une string de moins de 64 caractères--> <manufacturerURL>URL to manufacturer site</manufacturerURL> <!--Optionnel; url du site web du fabricant--> <modelDescription>long user-friendly title</modelDescription> <!-- Recommandé; Description du modèle du dispositif : une string de moins 128 caractères--> 1
  • 2. <modelName>model name</modelName> <!--Obligatoire; Nom du modèle : une string de moins de 32 caractères--> <modelNumber>model number</modelNumber> <!-- Recommandé; Numéro du modèle : une string de moins de 32 caractères--> <modelURL>URL to model site</modelURL> <!---Optionnel; url du site web du modèle--> <serialNumber>manufacturer's serial number</serialNumber> <!--Recommandé; numéro de série : une string de moins de 64 caractères--> <UDN>uuid:UUID</UDN> <!--Obligatoire; identifiant unique du dispositif : une string commençant par "uuid:" suivi d'un suffixe au format UUID--> <UPC>Universal Product Code</UPC> <!--Optionnel; numéro universel du produit : un nombre de 12 chiffres--> <iconList> <!--Obligatoire si et seulement si le dispositif a une ou plusieurs icônes. Contient une balise 'icon' par image--> <icon> <!--Recommandé; contient la description d'une icône représentant le dispositif--> <mimetype>image/format</mimetype> <!--Obligatoire; mime type de l'icone--> <width>horizontal pixels</width> <!--Obligatoire; largeur de l'image en pixels : un entier--> <height>vertical pixels</height> <!--Obligatoire; hauteur de l'image en pixels : un entier--> <depth>color depth</depth> <!--Obligatoire; nombre de bits colorés par pixel : un entier--> <url>URL to icon</url> <!--Obligatoire; url pointant vers le fichier image de l'icône. Doit être relative par rapport au fichier courant --> </icon> </iconList> <serviceList> <!--Optionnel; contient la liste des services offerts par le dispositif--> <service> <!--Optionnel; contient la description d'un service--> <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType> 2
  • 3. <!--Obligatoire; URI indiquant type de service UPnP ne devant pas contenir de ‘#’ Pour les dispositifs standards, URI de la forme 'urn:schemas-upnp-org:service:' + serviceType + ':' + n°Version. (rattachement du service à un service standard) Pour les non standards, URI de la forme 'urn:' + vendorDomainName + ':service:' + serviceType + ':' + n°Version Dans les 2 cas, serviceType ne doit pas comporter plus de 64 caractères. --> <serviceId>urn:upnp-org:serviceId:serviceID</serviceId> <!--Obligatoire; URI identifiant du service. Doit être unique dans la description du dispositif. Pour les dispositifs standards, URI de la forme 'urn:upnp-org:serviceId:' + serviceId Pour les non standards, URI de la forme ‘urn:’ + vendorDomainName + ':serviceId:' + serviceId Dans les 2 cas, serviceId ne doit pas comporter plus de 64 caractères. --> <SCPDURL>URL to service description</SCPDURL> <!--Obligatoire: url vers le fichier description du service. Doit être relative par rapport au fichier courant --> <controlURL>URL for control</controlURL> <!--Obligatoire: url vers le répertoire control du service. Doit être relative par rapport au fichier courant. URL utilisée pour s'abonner et pour faire des actions. Si pas de répertoire control, balise vide --> <eventSubURL>URL for eventing</eventSubURL> <!--Obligatoire: url vers le répertoire eventSub du service. Doit être relative par rapport au fichier courant. URL utilisée pour s’abonner à des évènements. Deux services ne peuvent pas avoir la même url d’eventSub --> Si pas de répertoire control, balise vide --> </service> </serviceList> <deviceList> <!--Obligatoire si et seulement si le dispositif possède des dispositifs intégrés. Contient des balises 'device' --> </deviceList> <presentationURL>URL for presentation</presentationURL> <!-- Recommandé; url vers le fichier presentation.html du dispositif. Doit être relative par rapport au fichier courant --> </device> </root> 3
  • 4. Description d’un service d’un dispositif UPnP La description d’un service d’un dispositif UPnP se fait également grâce à un fichier description.xml. Celui-ci est de la forme : Source : http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf <?xml version="1.0"?> <scpd xmlns="urn:schemas-upnp-org:service-1-0" xmlns:dt1="urn:domain-name:more-datatypes" xmlns:dt2="urn:domain-name:vendor-datatypes" configId="configuration number"> <specVersion> <!-- Spécifie la plus petite version de l'architecture supportée UPnP Device par le dispositif--> <major>1</major> <!--Obligatoire; Numéro de version principal (avant le point) ; Vaut '1' pour l'architecture 1.0--> <minor>0</minor> <!--Obligatoire; Numéro de version secondaire (avant le point) ; Vaut '0' pour l'architecture 1.0--> </specVersion> <actionList> <!-- Obligatoire si et seulement si le service offre des actions. Contient des balises ‘action’--> <action> <name>actionName</name> <!--Obligatoire; Nom de l’action. Ne doit pas contenir de ‘#’ ou de ‘-‘. Sensible à la casse. Les trois premières ne doivent pas être ‘xml’. Doit commencer par une lettre (‘A’-‘Z’, ‘a’-‘z’), un chiffre (‘0’-‘9’), ou un ‘_’ Le reste doit être composé de lettres (‘A’-‘Z’, ‘a’-‘z’), chiffres (‘0’-‘9’), ‘_’ ou ‘.’ Pour les actions standards, ne doit pas commencer par ‘X_’ ou ‘A_’. Pour les actions non standards, doit être de la forme : ‘X_’ + vendorDomain + ‘_’ + vendorAssignedActionName Le tout est une string de moins de 32 caractères. --> <argumentList> <!-- Liste des arguments de l’action. Contient des balises argument. --> <argument> <name>argumentNameIn1</name> <!-- Obligatoire; Nom de l’argument. Soumis aux mêmes règles que la balise action-name--> <direction>in</direction> <!--Obligatoire ; deux valeurs possibles : ‘in’ ou ‘out’ (jamais les deux) Indique si l’argument est un input ou un output. Les arguments ‘in’ doivent être déclarés avec les arguments ‘out’ --> 4
  • 5. <retval></retval> <!-- Optionnelle; Valeur de retour. Identifie au moins un argument output--> <relatedStateVariable>stateVariableName</relatedStateVariable> <!--Obligatoire ; Doit être le nom d’une variable d’état --> </argument> </argumentList> </action> </actionList> <serviceStateTable> <!-- Contient la liste des variables d’états du service. --> <stateVariable sendEvents="yes"|"no" multicast="yes"|"no"> <!-- sendEvents (« yes » ou « no », « yes » par défaut) définit si des évènements seront générés quand la valeur de cette variable sera modifiée. multicast (« yes ou « no », « no » par défaut) définit si des évènements seront générés avec du multicast--> <name>variableName</name> <!--Obligatoire ; Nom de la variable. Soumis aux mêmes règles que le nom de l’action --> <dataType>basic data type</dataType> <!-- Obligatoire ; type de la variable. La liste des types possibles est disponible dans le document source page 53--> <defaultValue>default value</defaultValue> <!-- Recommandé. Valeur initiale de la variable. Doit correspondre au type de la variable. Doit respecter les contraintes des balises allowedValueRange et allowedValueList --> <allowedValueRange> <!-- Recommandé ; Définit les limites de valeurs pour une variable numérique. Ne doit être présente que pour types integer ou float--> <minimum>minimum value</minimum> <maximum>maximum value</maximum> <step>increment value</step> </allowedValueRange> <allowedValueList> <!-- Recommandé ; Enumère les valeurs possibles de la variableCette balise ne doit être utilisée que pour une variable de type string--> <allowedValue>enumerated value</allowedValue> </allowedValueList> </stateVariable> </serviceStateTable> </scpd> 5