Inclusion de schémas d'en-tête SOAP dans le référentiel SDO

Cette tâche vous permet d'améliorer les performances de médiation en insérant le schéma d'en-tête SOAP dans le référentiel SDO.

Pourquoi et quand exécuter cette tâche

Les médiations accédant aux en-têtes SOAP doivent s'assurer que le schéma d'en-tête SOAP est disponible pour le référentiel SDO. Cela simplifie l'accès aux zones d'en-tête (voir Exemple de code de services Web) et peut améliorer considérablement les performances. Généralement, le schéma (fichier .xsd) d'un en-tête SOAP est déjà accessible au développeur de l'application.

Voici un exemple d'en-tête (utilisé pour le routage) qui est transmis dans le message SOAP :
<soapenv:Header>
<hns0:myClientToken xmlns:hns0="http://www.ibm.com/wbc">
         		<UseRoutingId>true</ UseRoutingId >
         		<RoutingID>5</ RoutingID >
      	</hns0: myClientToken >
</soapenv:Header>
Voici un exemple d'un schéma d'en-tête associé :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="http://www.ibm.com/wbc" 
           elementFormDefault="unqualified">
<xs:element name=" myClientToken">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="UseRoutingId" type="xs:string"/>
      <xs:element name="RoutingID" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

Pour insérer le schéma dans le référentiel SDO, procédez comme suit :

Procédure

  1. Créez un script contenant le code suivant :
    • Pour Jython, créez le script sdoXSDImport.py:
      #
      xsdFile=sys.argv[0]
      xsdKey=sys.argv[1]
      sdoRep=AdminControl.queryNames("*,type=SdoRepository,node=%s" % AdminControl.
      getNode)
      print AdminControl.invoke(sdoRep , importResource([xsdKey , xsdFile]))
    • Pour Jacl, créez le script sdoXSDImport.jacl:
      #
      set xsdFile [lindex $argv 0]
      set xsdKey [lindex $argv 1]
      set sdoRep [$AdminControl queryNames *,type=SdoRepository,node=[$AdminControl getNode]]
      puts [$AdminControl invoke $sdoRep importResource [list $xsdKey $xsdFile]]
    Remarque : Pour créer un script équivalent permettant de supprimer une ressource du référentiel SDO, faites une copie de ce script et modifiez la dernière ligne, comme suit :
    • En langage Jython :
      AdminControl.invoke(sdoRep , "removeResource" , [[xsdKey , "false"]])
    • Langage Jacl :
      $AdminControl invoke $sdoRep removeResource [list $xsdKey false]
  2. Utilisez le client de scriptage wsadmin pour insérer le schéma dans le référentiel SDO à l'aide de la commande ci-après.
    [IBM i]Remarque : Exécutez la commande à partir de l'interface QShell.
    • Pour utiliser le script Jython :
      wsadmin -lang jython -f sdoXSDImport.py your_header.xsd
      your_header_namespace
    • Pour utiliser le script Jacl :
      wsadmin -f sdoXSDImport.jacl your_header.xsd your_header_namespace
    • your_header.xsd correspond au nom de du fichier contenant votre schéma d'en-tête.
    • your_header_namespace correspond à l'espace de nom cible pour votre en-tête. Par exemple, http://yourCompany.com/yourNamespace.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjw_tune_xsd
Nom du fichier : tjw_tune_xsd.html